diff options
Diffstat (limited to 'libc/unistd/getsubopt.c')
-rw-r--r-- | libc/unistd/getsubopt.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libc/unistd/getsubopt.c b/libc/unistd/getsubopt.c index dca8144dc..3cac432ec 100644 --- a/libc/unistd/getsubopt.c +++ b/libc/unistd/getsubopt.c @@ -1,5 +1,5 @@ /* Parse comma separate list into words. - Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -22,7 +22,7 @@ #include <string.h> libc_hidden_proto(memchr) -libc_hidden_proto(memcmp) +libc_hidden_proto(strncmp) libc_hidden_proto(strchrnul) /* Parse comma separated suboption from *OPTIONP and match against @@ -31,7 +31,8 @@ libc_hidden_proto(strchrnul) not part of TOKENS return in *VALUEP beginning of unknown suboption. On exit *OPTIONP is set to the beginning of the next token or at the terminating NUL character. */ -int getsubopt(char **optionp, char *const *tokens, char **valuep) +int +getsubopt (char **optionp, char *const *tokens, char **valuep) { char *endp, *vstart; int cnt; @@ -50,7 +51,7 @@ int getsubopt(char **optionp, char *const *tokens, char **valuep) /* Try to match the characters between *OPTIONP and VSTART against one of the TOKENS. */ for (cnt = 0; tokens[cnt] != NULL; ++cnt) - if (memcmp (*optionp, tokens[cnt], vstart - *optionp) == 0 + if (strncmp (*optionp, tokens[cnt], vstart - *optionp) == 0 && tokens[cnt][vstart - *optionp] == '\0') { /* We found the current option in TOKENS. */ |