diff options
Diffstat (limited to 'sdk/dev/input.c')
-rw-r--r-- | sdk/dev/input.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/sdk/dev/input.c b/sdk/dev/input.c new file mode 100644 index 0000000..95494d3 --- /dev/null +++ b/sdk/dev/input.c @@ -0,0 +1,34 @@ +/* + * Read a line of input from device. + * $Id$ + * Copyright (c) 1997 by Tycho Softworks. + * For conditions of distribution and reuse see product license. + */ + +#include <std/string.h> +#include <dev/tty.h> + +int input(int fd, uchar *buf, size_t len, int timeout, const uchar *term) +{ + int key; + int idx = 0; + + while(idx < len) + { + key = inkey(fd, timeout); + if(key < 0) + return idx; + + if(!key) + continue; + + buf[idx++] = (uchar)(key & 0xff); + if(strchr((char *)term, key)) + break; + } + buf[idx] = 0; + return idx; +} + + + |