aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-05-20 16:37:53 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2010-05-20 16:37:53 +0200
commitee0775dd13a84316f6fd49c930237e6dec241dba (patch)
tree91ab9fbce3c3f2a3125434c3b2c0f20dd23077b6
parente3be7842be3ccac389efd2ac51b18773c58852c5 (diff)
downloadbusybox-w32-ee0775dd13a84316f6fd49c930237e6dec241dba.tar.gz
busybox-w32-ee0775dd13a84316f6fd49c930237e6dec241dba.tar.bz2
busybox-w32-ee0775dd13a84316f6fd49c930237e6dec241dba.zip
hush: small code shrink
function old new delta expand_vars_to_list 2012 1999 -13 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--shell/hush.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/shell/hush.c b/shell/hush.c
index 824a5b52e..d5cea07a1 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -2569,7 +2569,7 @@ static NOINLINE int expand_vars_to_list(o_string *output, int n, char *arg, char
2569 default: /* <SPECIAL_VAR_SYMBOL>varname<SPECIAL_VAR_SYMBOL> */ 2569 default: /* <SPECIAL_VAR_SYMBOL>varname<SPECIAL_VAR_SYMBOL> */
2570 case_default: { 2570 case_default: {
2571 char *var = arg; 2571 char *var = arg;
2572 bool exp_len; 2572 char exp_len; /* '#' if it's ${#var} */
2573 char exp_op; 2573 char exp_op;
2574 char exp_save = exp_save; /* for compiler */ 2574 char exp_save = exp_save; /* for compiler */
2575 char *exp_saveptr = exp_saveptr; /* points to expansion operator */ 2575 char *exp_saveptr = exp_saveptr; /* points to expansion operator */
@@ -2579,12 +2579,11 @@ static NOINLINE int expand_vars_to_list(o_string *output, int n, char *arg, char
2579 arg[0] = first_ch & 0x7f; 2579 arg[0] = first_ch & 0x7f;
2580 2580
2581 /* prepare for expansions */ 2581 /* prepare for expansions */
2582 exp_len = false;
2583 exp_op = 0; 2582 exp_op = 0;
2584 if (var[0] == '#') { 2583 exp_len = var[0];
2584 if (exp_len == '#') {
2585 /* handle length expansion ${#var} */ 2585 /* handle length expansion ${#var} */
2586 exp_len = true; 2586 var++;
2587 ++var;
2588 } else { 2587 } else {
2589 /* maybe handle parameter expansion */ 2588 /* maybe handle parameter expansion */
2590 exp_saveptr = var + strcspn(var, ":-=+?%#"); 2589 exp_saveptr = var + strcspn(var, ":-=+?%#");
@@ -2609,8 +2608,8 @@ static NOINLINE int expand_vars_to_list(o_string *output, int n, char *arg, char
2609 val = get_local_var_value(var); 2608 val = get_local_var_value(var);
2610 2609
2611 /* handle any expansions */ 2610 /* handle any expansions */
2612 if (exp_len) { 2611 if (exp_len == '#') {
2613 debug_printf_expand("expand: length of '%s' = ", val); 2612 debug_printf_expand("expand: length(%s)=", val);
2614 val = utoa(val ? strlen(val) : 0); 2613 val = utoa(val ? strlen(val) : 0);
2615 debug_printf_expand("%s\n", val); 2614 debug_printf_expand("%s\n", val);
2616 } else if (exp_op) { 2615 } else if (exp_op) {