kernel32: Avoid using memchrW().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
feature/deterministic
Alexandre Julliard 2020-04-01 10:30:13 +02:00
parent ce30db504b
commit e71ffcde30
2 changed files with 11 additions and 13 deletions

View File

@ -311,7 +311,7 @@ static PROFILESECTION *PROFILE_Load(HANDLE hFile, ENCODING * pEncoding)
WCHAR * szFile;
const WCHAR *szLineStart, *szLineEnd;
const WCHAR *szValueStart, *szEnd, *next_line;
int line = 0, len;
int len;
PROFILESECTION *section, *first_section;
PROFILESECTION **next_section;
PROFILEKEY *key, *prev_key, **next_key;
@ -402,14 +402,10 @@ static PROFILESECTION *PROFILE_Load(HANDLE hFile, ENCODING * pEncoding)
while (next_line < szEnd)
{
szLineStart = next_line;
next_line = memchrW(szLineStart, '\n', szEnd - szLineStart);
if (!next_line) next_line = memchrW(szLineStart, '\r', szEnd - szLineStart);
if (!next_line) next_line = szEnd;
else next_line++;
while (next_line < szEnd && *next_line != '\n' && *next_line != '\r') next_line++;
while (next_line < szEnd && (*next_line == '\n' || *next_line == '\r')) next_line++;
szLineEnd = next_line;
line++;
/* get rid of white space */
while (szLineStart < szLineEnd && PROFILE_isspaceW(*szLineStart)) szLineStart++;
while ((szLineEnd > szLineStart) && PROFILE_isspaceW(szLineEnd[-1])) szLineEnd--;
@ -421,8 +417,8 @@ static PROFILESECTION *PROFILE_Load(HANDLE hFile, ENCODING * pEncoding)
for (len = szLineEnd - szLineStart; len > 0; len--) if (szLineStart[len - 1] == ']') break;
if (!len)
{
WARN("Invalid section header at line %d: %s\n",
line, debugstr_wn(szLineStart, (int)(szLineEnd - szLineStart)) );
WARN("Invalid section header: %s\n",
debugstr_wn(szLineStart, (int)(szLineEnd - szLineStart)) );
}
else
{
@ -450,7 +446,8 @@ static PROFILESECTION *PROFILE_Load(HANDLE hFile, ENCODING * pEncoding)
/* get rid of white space after the name and before the start
* of the value */
len = szLineEnd - szLineStart;
if ((szValueStart = memchrW( szLineStart, '=', szLineEnd - szLineStart )) != NULL)
for (szValueStart = szLineStart; szValueStart < szLineEnd; szValueStart++) if (*szValueStart == '=') break;
if (szValueStart < szLineEnd)
{
const WCHAR *szNameEnd = szValueStart;
while ((szNameEnd > szLineStart) && PROFILE_isspaceW(szNameEnd[-1])) szNameEnd--;
@ -458,6 +455,7 @@ static PROFILESECTION *PROFILE_Load(HANDLE hFile, ENCODING * pEncoding)
szValueStart++;
while (szValueStart < szLineEnd && PROFILE_isspaceW(*szValueStart)) szValueStart++;
}
else szValueStart = NULL;
if (len || !prev_key || *prev_key->name)
{

View File

@ -674,7 +674,7 @@ BOOL WINAPI GetVolumeInformationW( LPCWSTR root, LPWSTR label, DWORD label_len,
IO_STATUS_BLOCK io;
OBJECT_ATTRIBUTES attr;
FILE_FS_DEVICE_INFORMATION info;
WCHAR *p;
unsigned int i;
enum fs_type type = FS_UNKNOWN;
BOOL ret = FALSE;
@ -685,8 +685,8 @@ BOOL WINAPI GetVolumeInformationW( LPCWSTR root, LPWSTR label, DWORD label_len,
return FALSE;
}
/* there must be exactly one backslash in the name, at the end */
p = memchrW( nt_name.Buffer + 4, '\\', (nt_name.Length - 4) / sizeof(WCHAR) );
if (p != nt_name.Buffer + nt_name.Length / sizeof(WCHAR) - 1)
for (i = 4; i < nt_name.Length / sizeof(WCHAR); i++) if (nt_name.Buffer[i] == '\\') break;
if (i != nt_name.Length / sizeof(WCHAR) - 1)
{
/* check if root contains an explicit subdir */
if (root[0] && root[1] == ':') root += 2;