avoid using strok - eliminates use of hidden global variable

function                                             old     new   delta
udhcp_str2optset                                     616     650     +34
setpriv_main                                         950     975     +25
switch_root_main                                     688     706     +18
parse                                                958     970     +12
getopt_main                                          622     628      +6
parse_resolvconf                                     302     306      +4
mpstat_main                                         1139    1142      +3
static.p                                               4       -      -4
cdcmd                                                717     702     -15
strtok                                               148       -    -148
------------------------------------------------------------------------------
(add/remove: 0/3 grow/shrink: 7/1 up/down: 102/-167)          Total: -65 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2020-10-06 02:36:47 +02:00
parent 535a509846
commit 2496616b0a
11 changed files with 46 additions and 36 deletions

View File

@ -115,6 +115,7 @@ static int parse(const char *boundary, char **argv)
/* Split to tokens */
{
char *s, *p;
char *tokstate;
unsigned ntokens;
const char *delims = ";=\" \t\n";
@ -127,13 +128,13 @@ static int parse(const char *boundary, char **argv)
}
dbg_error_msg("L:'%s'", p);
ntokens = 0;
s = strtok(s, delims);
s = strtok_r(s, delims, &tokstate);
while (s) {
tokens[ntokens] = s;
if (ntokens < ARRAY_SIZE(tokens) - 1)
ntokens++;
dbg_error_msg("L[%d]='%s'", ntokens, s);
s = strtok(NULL, delims);
s = strtok_r(NULL, delims, &tokstate);
}
tokens[ntokens] = NULL;
dbg_error_msg("EMPTYLINE, ntokens:%d", ntokens);