|
|
1.1 root 1: /*
2: * @(#)get.c 1.1 86/02/03 Copyright (c) 1985 by Sun Microsystems, Inc.
3: */
4: #include "../mon/sunromvec.h"
5:
6: getchar()
7: {
8: register int c;
9:
10: while ((c = (*romp->v_mayget)()) == -1)
11: ;
12: if (c == '\r')
13: c = '\n';
14: if (c == 0177 || c == '\b') {
15: putchar('\b');
16: putchar(' ');
17: c = '\b';
18: }
19: putchar(c);
20: return (c);
21: }
22:
23: gets(buf)
24: char *buf;
25: {
26: register char *lp;
27: register c;
28:
29: lp = buf;
30: for (;;) {
31: c = getchar() & 0177;
32: switch(c) {
33: case '\n':
34: case '\r':
35: c = '\n';
36: *lp++ = '\0';
37: return;
38: case '\b':
39: lp--;
40: if (lp < buf)
41: lp = buf;
42: continue;
43: case 'u'&037: /* ^U */
44: lp = buf;
45: putchar('\n');
46: continue;
47: default:
48: *lp++ = c;
49: }
50: }
51: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.