aboutsummaryrefslogtreecommitdiff
path: root/src/base/io/putc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/io/putc.c')
-rw-r--r--src/base/io/putc.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/base/io/putc.c b/src/base/io/putc.c
new file mode 100644
index 0000000..167f10f
--- /dev/null
+++ b/src/base/io/putc.c
@@ -0,0 +1,19 @@
+#include "internal.h"
+
+int
+io·putc(io·Header *io, int c)
+{
+ intptr i;
+
+ for(;;){
+ i = io->olen;
+ if(i){
+ io->e[i++] = c;
+ io->olen = i;
+ return 0;
+ }
+ if(io·flush(io) == io·BufEof)
+ break;
+ }
+ return io·BufEof;
+}