introduce bb_putchar(). saves ~1800 on uclibc (less on glibc).
diff --git a/libbb/lineedit.c b/libbb/lineedit.c
index a66398a..2db85d0 100644
--- a/libbb/lineedit.c
+++ b/libbb/lineedit.c
@@ -111,15 +111,15 @@
#endif
{
if (initial_settings.c_lflag & ECHO)
- putchar(c);
+ bb_putchar(c);
}
if (++cmdedit_x >= cmdedit_termw) {
/* terminal is scrolled down */
cmdedit_y++;
cmdedit_x = 0;
/* destroy "(auto)margin" */
- putchar(next_char);
- putchar('\b');
+ bb_putchar(next_char);
+ bb_putchar('\b');
}
// Huh? What if command_ps[cursor] == '\0' (we are at the end already?)
cursor++;
@@ -137,7 +137,7 @@
{
input_end();
if (cmdedit_x)
- putchar('\n');
+ bb_putchar('\n');
}
@@ -149,7 +149,7 @@
static void beep(void)
{
- putchar('\007');
+ bb_putchar('\007');
}
/* Move back one character */
@@ -197,7 +197,7 @@
{
if (y > 0) /* up to start y */
printf("\033[%dA", y);
- putchar('\r');
+ bb_putchar('\r');
put_prompt();
input_end(); /* rewrite */
printf("\033[J"); /* erase after cursor */
@@ -1585,8 +1585,8 @@
beep();
else {
*(command + cursor) = c;
- putchar(c);
- putchar('\b');
+ bb_putchar(c);
+ bb_putchar('\b');
}
break;
#endif /* FEATURE_COMMAND_EDITING_VI */