Added memchrW and memrchrW to the exported Unicode functions.
This commit is contained in:
parent
31f3221535
commit
5fdc57ef5c
|
@ -246,22 +246,6 @@ static void PROFILE_Free( PROFILESECTION *section )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* look for the requested character up to the specified memory location,
|
|
||||||
* returning NULL if not found */
|
|
||||||
static inline const WCHAR* PROFILE_memchrW( const WCHAR *mem_start, const WCHAR *mem_end, WCHAR ch)
|
|
||||||
{
|
|
||||||
for ( ; mem_start < mem_end; mem_start++) if (*mem_start == ch) return mem_start;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* look for the requested character from the specified end memory location,
|
|
||||||
* down to another memory location, returning NULL if not found */
|
|
||||||
static inline const WCHAR* PROFILE_memrchrW( const WCHAR *mem_start, const WCHAR *mem_end, WCHAR ch )
|
|
||||||
{
|
|
||||||
for ( ; mem_end >= mem_start; mem_end--) if (*mem_end == ch) return mem_end;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* returns 1 if a character white space else 0 */
|
/* returns 1 if a character white space else 0 */
|
||||||
static inline int PROFILE_isspaceW(WCHAR c)
|
static inline int PROFILE_isspaceW(WCHAR c)
|
||||||
{
|
{
|
||||||
|
@ -298,7 +282,7 @@ static inline ENCODING PROFILE_DetectTextEncoding(const void * buffer, int * len
|
||||||
|
|
||||||
static const WCHAR * PROFILE_GetLine(const WCHAR * szStart, const WCHAR * szEnd)
|
static const WCHAR * PROFILE_GetLine(const WCHAR * szStart, const WCHAR * szEnd)
|
||||||
{
|
{
|
||||||
return PROFILE_memchrW(szStart, szEnd, '\n');
|
return memchrW(szStart, '\n', szEnd - szStart);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
|
@ -417,7 +401,7 @@ static PROFILESECTION *PROFILE_Load(HANDLE hFile, ENCODING * pEncoding)
|
||||||
if (*szLineStart == '[') /* section start */
|
if (*szLineStart == '[') /* section start */
|
||||||
{
|
{
|
||||||
const WCHAR * szSectionEnd;
|
const WCHAR * szSectionEnd;
|
||||||
if (!(szSectionEnd = PROFILE_memrchrW( szLineStart, szLineEnd, ']' )))
|
if (!(szSectionEnd = memrchrW( szLineStart, ']', szLineEnd - szLineStart )))
|
||||||
{
|
{
|
||||||
WARN("Invalid section header at line %d: %s\n",
|
WARN("Invalid section header at line %d: %s\n",
|
||||||
line, debugstr_wn(szLineStart, (int)(szLineEnd - szLineStart)) );
|
line, debugstr_wn(szLineStart, (int)(szLineEnd - szLineStart)) );
|
||||||
|
@ -453,7 +437,7 @@ static PROFILESECTION *PROFILE_Load(HANDLE hFile, ENCODING * pEncoding)
|
||||||
|
|
||||||
/* get rid of white space after the name and before the start
|
/* get rid of white space after the name and before the start
|
||||||
* of the value */
|
* of the value */
|
||||||
if ((szNameEnd = szValueStart = PROFILE_memchrW( szLineStart, szLineEnd, '=' )) != NULL)
|
if ((szNameEnd = szValueStart = memchrW( szLineStart, '=', szLineEnd - szLineStart )) != NULL)
|
||||||
{
|
{
|
||||||
szNameEnd = szValueStart - 1;
|
szNameEnd = szValueStart - 1;
|
||||||
while ((szNameEnd > szLineStart) && PROFILE_isspaceW(*szNameEnd)) szNameEnd--;
|
while ((szNameEnd > szLineStart) && PROFILE_isspaceW(*szNameEnd)) szNameEnd--;
|
||||||
|
|
|
@ -287,6 +287,20 @@ static inline WCHAR *struprW( WCHAR *str )
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline WCHAR *memchrW( const WCHAR *ptr, WCHAR ch, size_t n )
|
||||||
|
{
|
||||||
|
const WCHAR *end;
|
||||||
|
for (end = ptr + n; ptr < end; ptr++) if (*ptr == ch) return (WCHAR *)ptr;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline WCHAR *memrchrW( const WCHAR *ptr, WCHAR ch, size_t n )
|
||||||
|
{
|
||||||
|
const WCHAR *end, *ret = NULL;
|
||||||
|
for (end = ptr + n; ptr < end; ptr++) if (*ptr == ch) ret = ptr;
|
||||||
|
return (WCHAR *)ret;
|
||||||
|
}
|
||||||
|
|
||||||
static inline long int atolW( const WCHAR *str )
|
static inline long int atolW( const WCHAR *str )
|
||||||
{
|
{
|
||||||
return strtolW( str, (WCHAR **)0, 10 );
|
return strtolW( str, (WCHAR **)0, 10 );
|
||||||
|
|
Loading…
Reference in New Issue