X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=charfuncs.c;fp=charfuncs.c;h=52f1155b4c173219a60089729a54fd208848cf38;hb=047b8ed75bbac19ef33690bd44746718a8261439;hp=3bfc3cc5261018cfe4c104b348546777171ce4a2;hpb=c7f25997d3d36ac30b26f663e1d257e4625662a1;p=onak.git diff --git a/charfuncs.c b/charfuncs.c index 3bfc3cc..52f1155 100644 --- a/charfuncs.c +++ b/charfuncs.c @@ -5,9 +5,10 @@ * * Copyright 2002 Project Purple * - * $Id: charfuncs.c,v 1.2 2003/06/04 20:57:07 noodles Exp $ + * $Id: charfuncs.c,v 1.3 2003/09/30 17:15:39 noodles Exp $ */ +#include #include #include #include @@ -81,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; +}