45 const char *
const *tokens,
char **valuep)
51 if (**optionp ==
'\0')
56 while (*endp !=
'\0' && (inside_quote || (!inside_quote && *endp !=
',')))
59 inside_quote = !inside_quote;
64 vstart = memchr (*optionp,
'=', endp - *optionp);
70 for (cnt = 0; tokens[cnt] != NULL; ++cnt)
71 if (strncmp (*optionp, tokens[cnt], vstart - *optionp) == 0
72 && tokens[cnt][vstart - *optionp] ==
'\0')
75 *valuep = vstart != endp ? vstart + 1 : NULL;
77 while (*valuep && (**valuep ==
' ' ||
80 **valuep ==
'\n' || **valuep ==
'"'))
91 while (*endp ==
' ' ||
93 *endp ==
'\r' || *endp ==
'\n' || *endp ==
'"')
95 while (**optionp ==
' ' ||
96 **optionp ==
'\t' || **optionp ==
'\r' || **optionp ==
'\n')
108 while (**optionp ==
' ' ||
109 **optionp ==
'\t' || **optionp ==
'\r' || **optionp ==
'\n')
int digest_md5_getsubopt(char **optionp, const char *const *tokens, char **valuep)