hush: code shrink

function                                             old     new   delta
run_list                                            1032    1012     -20

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2023-01-03 14:08:18 +01:00
parent d488a5218b
commit 969e008168

View File

@ -2460,10 +2460,15 @@ static int set_local_var(char *str, unsigned flags)
return retval; return retval;
} }
static int set_local_var0(char *str)
{
return set_local_var(str, 0);
}
static void FAST_FUNC set_local_var_from_halves(const char *name, const char *val) static void FAST_FUNC set_local_var_from_halves(const char *name, const char *val)
{ {
char *var = xasprintf("%s=%s", name, val); char *var = xasprintf("%s=%s", name, val);
set_local_var(var, /*flag:*/ 0); set_local_var0(var);
} }
/* Used at startup and after each cd */ /* Used at startup and after each cd */
@ -6964,7 +6969,7 @@ static NOINLINE int expand_one_var(o_string *output, int n,
val = NULL; val = NULL;
} else { } else {
char *new_var = xasprintf("%s=%s", var, val); char *new_var = xasprintf("%s=%s", var, val);
set_local_var(new_var, /*flag:*/ 0); set_local_var0(new_var);
} }
} }
} }
@ -9373,7 +9378,7 @@ static NOINLINE int run_pipe(struct pipe *pi)
} }
#endif #endif
debug_printf_env("set shell var:'%s'->'%s'\n", *argv, p); debug_printf_env("set shell var:'%s'->'%s'\n", *argv, p);
if (set_local_var(p, /*flag:*/ 0)) { if (set_local_var0(p)) {
/* assignment to readonly var / putenv error? */ /* assignment to readonly var / putenv error? */
rcode = 1; rcode = 1;
} }
@ -9856,7 +9861,7 @@ static int run_list(struct pipe *pi)
} }
/* Insert next value from for_lcur */ /* Insert next value from for_lcur */
/* note: *for_lcur already has quotes removed, $var expanded, etc */ /* note: *for_lcur already has quotes removed, $var expanded, etc */
set_local_var(xasprintf("%s=%s", pi->cmds[0].argv[0], *for_lcur++), /*flag:*/ 0); set_local_var_from_halves(pi->cmds[0].argv[0], *for_lcur++);
continue; continue;
} }
if (rword == RES_IN) { if (rword == RES_IN) {