* strings.h (strechr): New function.

* uinfo.cc (pwdgrp::next_str): Search only for input char in string.  Return
EOS on failure.  Don't check for NULL since it shouldn't be possible.
(pwdgrp::add_line): Revert to replacing '\n' in input line with '\0'.
(pwdgrp::next_num): Pass explicit separator character to next_str.
* grp.cc (pwdgrp::parse_group): Ditto.
* passwd.cc (pwdgrp::parse_passwd): Ditto.  Revamp test for garbage input.
* pwdgrp.h (pwdgrp::next_str): Don't use default parameter.
This commit is contained in:
Christopher Faylor
2003-01-27 00:16:01 +00:00
parent 285d6b97b1
commit fea48988ea
6 changed files with 54 additions and 26 deletions

View File

@ -38,6 +38,27 @@ strchr (const char *s, int c)
return res;
}
#undef strechr
#define strechr cygwin_strechr
static inline __stdcall char *
strechr (const char *s, int c)
{
register char * res;
__asm__ __volatile__ ("\
movb %%al,%%ah\n\
1: movb (%1),%%al\n\
cmpb %%ah,%%al\n\
je 2f\n\
incl %1\n\
testb %%al,%%al\n\
jne 1b\n\
decl %1\n\
2: movl %1,%0\n\
":"=a" (res), "=r" (s)
:"0" (c), "1" (s));
return res;
}
extern const char isalpha_array[];
#undef strcasematch