Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

130 lines
3.8 KiB

/************************************************************************/
/* */
/* DISKUTIL.C */
/* */
/* Copyright (c) 1994, ATI Technologies Incorporated. */
/************************************************************************/
/********************** PolyTron RCS Utilities
$Revision: 1.0 $
$Date: 14 Sep 1994 15:33:02 $
$Author: RWOLFF $
$Log: S:/source/wnt/ms11/miniport/vcs/diskutil.c $
*
* Rev 1.0 14 Sep 1994 15:33:02 RWOLFF
* Initial revision.
End of PolyTron RCS section *****************/
#ifdef DOC
DISKUTIL.C - Source file for Windows NT routines used in reading
files from disk. These routines correspond roughly
to standard library routines which are not available
to Windows NT miniports.
#endif
// COMPILER INCLUDES
#include <string.h>
// NT INCLUDES
#include "miniport.h"
#include "video.h"
// APPLICATION INCLUDES
#include "stdtyp.h"
#include "amach1.h"
#include "atimp.h"
#include "diskutil.h"
/*
* Definitions used internally by routines in this module
*/
#define BIG_NUM 0xFFFFFFFFL /* Largest allowed 32 bit unsigned number */
/*
* Allow miniport to be swapped out when not needed.
*/
#if defined (ALLOC_PRAGMA)
#pragma alloc_text(PAGE_COM, SynthStrcspn)
#endif
/***************************************************************************
*
* char *SynthStrcspn(InputString, WhatToMatch);
*
* char *InputString; String to be searched
* char *WhatToMatch; Set of characters to look for in InputString
*
* DESCRIPTION:
* Replacement for strcspn(). Searches for first occurence of a
* character found in WhatToMatch in InputString
*
* RETURN VALUE:
* Pointer to first character from WhatToMatch in InputString
* NULL if no match found
*
* GLOBALS CHANGED:
* none
*
* CALLED BY:
* FreqTblCallback()
*
* AUTHOR:
* Robert Wolff
*
* CHANGE HISTORY:
*
* TEST HISTORY:
*
***************************************************************************/
char *SynthStrcspn(char *InputString, char *WhatToMatch)
{
ULONG FirstMatch = BIG_NUM; /* Location of first character from WhatToMatch in InputString */
ULONG CurrentMatch; /* Location of first instance of current character in InputString */
ULONG CharToMatch; /* Character from WhatToMatch currently under test */
/*
* Go through all the characters in WhatToMatch.
*/
for (CharToMatch = 0; WhatToMatch[CharToMatch] != '\x0'; CharToMatch++)
{
/*
* Find first instance of current character in InputString. If
* the current character is not present in InputString, strchr()
* will return NULL. Since NULL is less than any valid pointer,
* and we want the lowest valid pointer, replace NULL with a
* value larger than the highest possible valid pointer.
*/
CurrentMatch = (ULONG) strchr(InputString, WhatToMatch[CharToMatch]);
if (CurrentMatch == (ULONG)NULL)
CurrentMatch = BIG_NUM;
/*
* If the match on the current character occurs earlier than
* the previous earliest match we found, we have a new
* earliest match.
*/
if (CurrentMatch < FirstMatch)
FirstMatch = CurrentMatch;
} /* end for (search all characters in WhatToMatch) */
/*
* If we have not found a match, return NULL, otherwise return
* a pointer to the first matching character.
*/
if (FirstMatch == BIG_NUM)
return NULL;
else
return (char *)FirstMatch;
} /* SynthStrcspn() */