windows-nt/Source/XPSP1/NT/net/tapi/skywalker/parser/sdpgen.cpp

71 lines
1.5 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*
Copyright (c) 1997-1999 Microsoft Corporation
*/
#include "sdppch.h"
#include "sdpgen.h"
// Isolates tokens by searching for one of the separators
// and returns the first separator thats found
CHAR *
GetToken(
IN CHAR *String,
IN BYTE NumSeparators,
IN const CHAR *SeparatorChars,
OUT CHAR &Separator
)
{
// validate the input parameters
ASSERT(NULL != String);
ASSERT(NULL != SeparatorChars);
ASSERT(0 != NumSeparators);
if ( (NULL == String) ||
(NULL == SeparatorChars) ||
(0 == NumSeparators) )
{
return NULL;
}
// advance character by character until the string ends or
// one of the separators is found
for ( UINT i=0; ; i++ )
{
// check each separator
for ( UINT j=0; j < NumSeparators; j++ )
{
// if the separator matches the current string character
if ( SeparatorChars[j] == String[i] )
{
// copy the separator character
Separator = String[i];
// terminate the token with an end of string character
String[i] = EOS;
// return the start of the token
return String;
}
}
// check if the end of string has been reached
if ( EOS == String[i] )
{
return NULL;
}
}
// should never reach here
ASSERT(FALSE);
return NULL;
}