introduce bb_putchar(). saves ~1800 on uclibc (less on glibc).

diff --git a/editors/ed.c b/editors/ed.c
index cd3836a..31185d9 100644
--- a/editors/ed.c
+++ b/editors/ed.c
@@ -853,14 +853,14 @@
 				ch &= 0x7f;
 			}
 			if (ch < ' ') {
-				fputc('^', stdout);
+				bb_putchar('^');
 				ch += '@';
 			}
 			if (ch == 0x7f) {
-				fputc('^', stdout);
+				bb_putchar('^');
 				ch = '?';
 			}
-			fputc(ch, stdout);
+			bb_putchar(ch);
 		}
 
 		fputs("$\n", stdout);
diff --git a/editors/vi.c b/editors/vi.c
index 1fa7c3a..eafe767 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -868,13 +868,13 @@
 			if (c == '\n') {
 				write1("$\r");
 			} else if (c < ' ' || c == 127) {
-				putchar('^');
+				bb_putchar('^');
 				if (c == 127)
 					c = '?';
 				else
 					c += '@';
 			}
-			putchar(c);
+			bb_putchar(c);
 			if (c_is_no_print)
 				standout_end();
 		}
@@ -2337,7 +2337,7 @@
 		} else {
 			buf[i] = c;	// save char in buffer
 			buf[i + 1] = '\0';	// make sure buffer is null terminated
-			putchar(c);   // echo the char back to user
+			bb_putchar(c);   // echo the char back to user
 			i++;
 		}
 	}
@@ -2860,7 +2860,7 @@
 				char *out = sp + cs;
 
 				while (nic-- > 0) {
-					putchar(*out);
+					bb_putchar(*out);
 					out++;
 				}
 			}