Annotation of researchv9/sys/boot/stand/get.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.