libbb: introduce and use strcpy_and_process_escape_sequences

function                                             old     new   delta
strcpy_and_process_escape_sequences                    -      50     +50
bb_process_escape_sequence                           148     138     -10
printf_main                                          789     776     -13
getty_main                                          1897    1831     -66
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/3 up/down: 50/-89)            Total: -39 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2010-10-23 21:06:06 +02:00
parent 6a0d7490ea
commit 5360059131
6 changed files with 44 additions and 61 deletions

View File

@ -122,16 +122,14 @@ static double my_xstrtod(const char *arg)
return result;
}
static void print_esc_string(char *str)
static void print_esc_string(const char *str)
{
while (*str) {
if (*str == '\\') {
str++;
bb_putchar(bb_process_escape_sequence((const char **)&str));
} else {
bb_putchar(*str);
str++;
}
char c;
while ((c = *str) != '\0') {
str++;
if (c == '\\')
c = bb_process_escape_sequence(&str);
putchar(c);
}
}
@ -344,7 +342,7 @@ static char **print_formatted(char *f, char **argv, int *conv_err)
f--;
break;
default:
bb_putchar(*f);
putchar(*f);
}
}