X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=charfuncs.c;h=52f1155b4c173219a60089729a54fd208848cf38;hb=061e8cae3c4e66b80d2e71048dd037f0443c82cf;hp=de68b661ae222d3e1f1e2b2716d9e53690c3eb14;hpb=62078c1601192c2594b954a122ac44a0c319c9bd;p=onak.git diff --git a/charfuncs.c b/charfuncs.c index de68b66..52f1155 100644 --- a/charfuncs.c +++ b/charfuncs.c @@ -4,8 +4,11 @@ * Jonathan McDowell * * Copyright 2002 Project Purple + * + * $Id: charfuncs.c,v 1.3 2003/09/30 17:15:39 noodles Exp $ */ +#include #include #include #include @@ -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; +}