ash: cleanup part 3
This commit is contained in:
88
shell/ash.c
88
shell/ash.c
@@ -1190,9 +1190,9 @@ varcmp(const char *p, const char *q)
|
|||||||
q++;
|
q++;
|
||||||
}
|
}
|
||||||
if (c == '=')
|
if (c == '=')
|
||||||
c = 0;
|
c = '\0';
|
||||||
if (d == '=')
|
if (d == '=')
|
||||||
d = 0;
|
d = '\0';
|
||||||
out:
|
out:
|
||||||
return c - d;
|
return c - d;
|
||||||
}
|
}
|
||||||
@@ -1469,7 +1469,8 @@ listsetvar(struct strlist *list_set_var, int flags)
|
|||||||
INT_OFF;
|
INT_OFF;
|
||||||
do {
|
do {
|
||||||
setvareq(lp->text, flags);
|
setvareq(lp->text, flags);
|
||||||
} while ((lp = lp->next));
|
lp = lp->next;
|
||||||
|
} while (lp);
|
||||||
INT_ON;
|
INT_ON;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3790,7 +3791,8 @@ parse_command_args(char **argv, const char **path)
|
|||||||
/* run 'typecmd' for other options */
|
/* run 'typecmd' for other options */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} while ((c = *cp++));
|
c = *cp++;
|
||||||
|
} while (c);
|
||||||
}
|
}
|
||||||
return argv;
|
return argv;
|
||||||
}
|
}
|
||||||
@@ -6025,49 +6027,51 @@ ifsbreakup(char *string, struct arglist *arglist)
|
|||||||
q = p;
|
q = p;
|
||||||
if (*p == CTLESC)
|
if (*p == CTLESC)
|
||||||
p++;
|
p++;
|
||||||
if (strchr(ifs, *p)) {
|
if (!strchr(ifs, *p)) {
|
||||||
if (!nulonly)
|
|
||||||
ifsspc = (strchr(defifs, *p) != NULL);
|
|
||||||
/* Ignore IFS whitespace at start */
|
|
||||||
if (q == start && ifsspc) {
|
|
||||||
p++;
|
|
||||||
start = p;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
*q = '\0';
|
|
||||||
sp = stalloc(sizeof(*sp));
|
|
||||||
sp->text = start;
|
|
||||||
*arglist->lastp = sp;
|
|
||||||
arglist->lastp = &sp->next;
|
|
||||||
p++;
|
p++;
|
||||||
if (!nulonly) {
|
continue;
|
||||||
for (;;) {
|
}
|
||||||
if (p >= string + ifsp->endoff) {
|
if (!nulonly)
|
||||||
break;
|
ifsspc = (strchr(defifs, *p) != NULL);
|
||||||
}
|
/* Ignore IFS whitespace at start */
|
||||||
q = p;
|
if (q == start && ifsspc) {
|
||||||
if (*p == CTLESC)
|
p++;
|
||||||
|
start = p;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
*q = '\0';
|
||||||
|
sp = stalloc(sizeof(*sp));
|
||||||
|
sp->text = start;
|
||||||
|
*arglist->lastp = sp;
|
||||||
|
arglist->lastp = &sp->next;
|
||||||
|
p++;
|
||||||
|
if (!nulonly) {
|
||||||
|
for (;;) {
|
||||||
|
if (p >= string + ifsp->endoff) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
q = p;
|
||||||
|
if (*p == CTLESC)
|
||||||
|
p++;
|
||||||
|
if (strchr(ifs, *p) == NULL ) {
|
||||||
|
p = q;
|
||||||
|
break;
|
||||||
|
} else if (strchr(defifs, *p) == NULL) {
|
||||||
|
if (ifsspc) {
|
||||||
p++;
|
p++;
|
||||||
if (strchr(ifs, *p) == NULL ) {
|
ifsspc = 0;
|
||||||
|
} else {
|
||||||
p = q;
|
p = q;
|
||||||
break;
|
break;
|
||||||
} else if (strchr(defifs, *p) == NULL) {
|
}
|
||||||
if (ifsspc) {
|
} else
|
||||||
p++;
|
p++;
|
||||||
ifsspc = 0;
|
|
||||||
} else {
|
|
||||||
p = q;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
p++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
start = p;
|
}
|
||||||
} else
|
start = p;
|
||||||
p++;
|
} /* while */
|
||||||
}
|
ifsp = ifsp->next;
|
||||||
} while ((ifsp = ifsp->next) != NULL);
|
} while (ifsp != NULL);
|
||||||
if (nulonly)
|
if (nulonly)
|
||||||
goto add;
|
goto add;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user