bc: code shrink
function old new delta
bc_program_name 67 63 -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-4) Total: -4 bytes
text data bss dec hex filename
981372 485 7296 989153 f17e1 busybox_old
981368 485 7296 989149 f17dd busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/miscutils/bc.c b/miscutils/bc.c
index 40bb299..eba8aa2 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -5174,17 +5174,19 @@
static char *bc_program_name(char *code, size_t *bgn)
{
size_t i;
- char *s, *str = code + *bgn, *ptr = strchr(str, BC_PARSE_STREND);
+ char *s;
- s = xmalloc(ptr - str + 1);
+ code += *bgn;
+ s = xmalloc(strchr(code, BC_PARSE_STREND) - code + 1);
i = 0;
for (;;) {
- char c = code[(*bgn)++];
- if (c == '\0' || c == BC_PARSE_STREND)
+ char c = *code++;
+ if (c == BC_PARSE_STREND)
break;
s[i++] = c;
}
s[i] = '\0';
+ *bgn += i + 1;
return s;
}