ntdll: Avoid using memchrW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
6fc9088789
commit
186f189107
|
@ -1272,6 +1272,7 @@ static xmlstr_t find_xmlns( xmlbuf_t *xmlbuf, const xmlstr_t *name )
|
|||
static BOOL next_xml_attr(xmlbuf_t *xmlbuf, struct xml_attr *attr, BOOL *end)
|
||||
{
|
||||
const WCHAR* ptr;
|
||||
WCHAR quote;
|
||||
|
||||
if (xmlbuf->error) return FALSE;
|
||||
|
||||
|
@ -1319,11 +1320,12 @@ static BOOL next_xml_attr(xmlbuf_t *xmlbuf, struct xml_attr *attr, BOOL *end)
|
|||
|
||||
if (ptr == xmlbuf->end || (*ptr != '"' && *ptr != '\'')) return set_error( xmlbuf );
|
||||
|
||||
attr->value.ptr = ++ptr;
|
||||
quote = *ptr++;
|
||||
attr->value.ptr = ptr;
|
||||
if (ptr == xmlbuf->end) return set_error( xmlbuf );
|
||||
|
||||
ptr = memchrW(ptr, ptr[-1], xmlbuf->end - ptr);
|
||||
if (!ptr)
|
||||
while (ptr < xmlbuf->end && *ptr != quote) ptr++;
|
||||
if (ptr == xmlbuf->end)
|
||||
{
|
||||
xmlbuf->ptr = xmlbuf->end;
|
||||
return set_error( xmlbuf );
|
||||
|
@ -1369,8 +1371,8 @@ static BOOL next_xml_elem( xmlbuf_t *xmlbuf, struct xml_elem *elem, const struct
|
|||
|
||||
for (;;)
|
||||
{
|
||||
ptr = memchrW(xmlbuf->ptr, '<', xmlbuf->end - xmlbuf->ptr);
|
||||
if (!ptr)
|
||||
for (ptr = xmlbuf->ptr; ptr < xmlbuf->end; ptr++) if (*ptr == '<') break;
|
||||
if (ptr == xmlbuf->end)
|
||||
{
|
||||
xmlbuf->ptr = xmlbuf->end;
|
||||
return set_error( xmlbuf );
|
||||
|
@ -1447,7 +1449,8 @@ static BOOL parse_text_content(xmlbuf_t* xmlbuf, xmlstr_t* content)
|
|||
|
||||
if (xmlbuf->error) return FALSE;
|
||||
|
||||
if (!(ptr = memchrW(xmlbuf->ptr, '<', xmlbuf->end - xmlbuf->ptr))) return set_error( xmlbuf );
|
||||
for (ptr = xmlbuf->ptr; ptr < xmlbuf->end; ptr++) if (*ptr == '<') break;
|
||||
if (ptr == xmlbuf->end) return set_error( xmlbuf );
|
||||
|
||||
content->ptr = xmlbuf->ptr;
|
||||
content->len = ptr - xmlbuf->ptr;
|
||||
|
|
|
@ -305,9 +305,12 @@ static inline unsigned int dir_info_size( FILE_INFORMATION_CLASS class, unsigned
|
|||
|
||||
static inline BOOL has_wildcard( const UNICODE_STRING *mask )
|
||||
{
|
||||
return (!mask ||
|
||||
memchrW( mask->Buffer, '*', mask->Length / sizeof(WCHAR) ) ||
|
||||
memchrW( mask->Buffer, '?', mask->Length / sizeof(WCHAR) ));
|
||||
int i;
|
||||
|
||||
if (!mask) return TRUE;
|
||||
for (i = 0; i < mask->Length / sizeof(WCHAR); i++)
|
||||
if (mask->Buffer[i] == '*' || mask->Buffer[i] == '?') return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* get space from the current directory data buffer, allocating a new one if necessary */
|
||||
|
|
|
@ -1081,7 +1081,7 @@ NTSTATUS WINAPI RtlExpandEnvironmentStrings( const WCHAR *renv, WCHAR *src, SIZE
|
|||
WCHAR *dst, SIZE_T count, SIZE_T *plen )
|
||||
{
|
||||
SIZE_T len, total_size = 1; /* 1 for terminating '\0' */
|
||||
LPCWSTR env, p, var;
|
||||
LPCWSTR env, var;
|
||||
|
||||
if (!renv)
|
||||
{
|
||||
|
@ -1094,27 +1094,26 @@ NTSTATUS WINAPI RtlExpandEnvironmentStrings( const WCHAR *renv, WCHAR *src, SIZE
|
|||
{
|
||||
if (*src != '%')
|
||||
{
|
||||
if ((p = memchrW( src, '%', src_len ))) len = p - src;
|
||||
else len = src_len;
|
||||
for (len = 0; len < src_len; len++) if (src[len] == '%') break;
|
||||
var = src;
|
||||
src += len;
|
||||
src_len -= len;
|
||||
}
|
||||
else /* we are at the start of a variable */
|
||||
{
|
||||
if ((p = memchrW( src + 1, '%', src_len - 1 )))
|
||||
for (len = 1; len < src_len; len++) if (src[len] == '%') break;
|
||||
if (len < src_len)
|
||||
{
|
||||
len = p - src - 1; /* Length of the variable name */
|
||||
if ((var = ENV_FindVariable( env, src + 1, len )))
|
||||
if ((var = ENV_FindVariable( env, src + 1, len - 1 )))
|
||||
{
|
||||
src += len + 2; /* Skip the variable name */
|
||||
src_len -= len + 2;
|
||||
src += len + 1; /* Skip the variable name */
|
||||
src_len -= len + 1;
|
||||
len = strlenW(var);
|
||||
}
|
||||
else
|
||||
{
|
||||
var = src; /* Copy original name instead */
|
||||
len += 2;
|
||||
len++;
|
||||
src += len;
|
||||
src_len -= len;
|
||||
}
|
||||
|
@ -1122,7 +1121,6 @@ NTSTATUS WINAPI RtlExpandEnvironmentStrings( const WCHAR *renv, WCHAR *src, SIZE
|
|||
else /* unfinished variable name, ignore it */
|
||||
{
|
||||
var = src;
|
||||
len = src_len; /* Copy whole string */
|
||||
src += len;
|
||||
src_len = 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue