]> the.earth.li Git - onak.git/blobdiff - charfuncs.c
cscvs to tla changeset 105
[onak.git] / charfuncs.c
index de68b661ae222d3e1f1e2b2716d9e53690c3eb14..52f1155b4c173219a60089729a54fd208848cf38 100644 (file)
@@ -4,8 +4,11 @@
  * Jonathan McDowell <noodles@earth.li>
  *
  * Copyright 2002 Project Purple
+ *
+ * $Id: charfuncs.c,v 1.3 2003/09/30 17:15:39 noodles Exp $
  */
 
+#include <stdio.h>
 #include <sys/types.h>
 #include <sys/uio.h>
 #include <unistd.h>
@@ -79,3 +82,33 @@ int file_putchar(void *fd, size_t count, unsigned char *c)
 {
        return !(write( *(int *) fd, c, count));
 }
+
+/**
+ *     stdin_getchar - Gets a char from stdin.
+ */
+int stdin_getchar(void *ctx, size_t count, unsigned char *c)
+{
+       int ic = 0;
+
+       while ((count > 0) && (ic != EOF)) {
+               ic = getchar();
+               *c = ic;
+               c++;
+               count--;
+       }
+
+       return (ic == EOF);
+}
+
+/**
+ *     stdout_putchar - Puts a char to stdout.
+ */
+int stdout_putchar(void *ctx, size_t count, unsigned char *c)
+{
+       int i;
+
+       for (i = 0; i < count; i++) {
+               putchar(c[i]);
+       }
+       return 0;
+}