Annotation of 43BSDReno/bin/csh/sh.char.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1980 Regents of the University of California.
                      3:  * All rights reserved.  The Berkeley Software License Agreement
                      4:  * specifies the terms and conditions for redistribution.
                      5:  *
                      6:  *     @(#)sh.char.h   5.4 (Berkeley) 6/6/88
                      7:  */
                      8: 
                      9: extern unsigned short _cmap[];
                     10: 
                     11: #define        _Q      0x001           /* '" */
                     12: #define        _Q1     0x002           /* ` */
                     13: #define        _SP     0x004           /* space and tab */
                     14: #define        _NL     0x008           /* \n */
                     15: #define        _META   0x010           /* lex meta characters, sp #'`";&<>()|\t\n */
                     16: #define        _GLOB   0x020           /* glob characters, *?{[` */
                     17: #define        _ESC    0x040           /* \ */
                     18: #define        _DOL    0x080           /* $ */
                     19: #define        _DIG    0x100           /* 0-9 */
                     20: #define        _LET    0x200           /* a-z, A-Z, _ */
                     21: 
                     22: #define        cmap(c, bits)   (_cmap[(unsigned char)(c)] & (bits))
                     23: 
                     24: #define        isglob(c)       cmap(c, _GLOB)
                     25: #define        isspace(c)      cmap(c, _SP)
                     26: #define        isspnl(c)       cmap(c, _SP|_NL)
                     27: #define        ismeta(c)       cmap(c, _META)
                     28: #define        digit(c)        cmap(c, _DIG)
                     29: #define        letter(c)       cmap(c, _LET)
                     30: #define        alnum(c)        (digit(c) || letter(c))
                     31: 
                     32: #define        LINELEN         128
                     33: extern char *linp, linbuf[LINELEN];
                     34: 
                     35: #define        CSHPUTCHAR { \
                     36:        if (!(ch&QUOTE) && (ch == 0177 || ch < ' ' && ch != '\t' && \
                     37:            ch != '\n')) { \
                     38:                *linp++ = '^'; \
                     39:                if (ch == 0177) \
                     40:                        ch = '?'; \
                     41:                else \
                     42:                        ch |= 'A' - 1; \
                     43:                if (linp >= &linbuf[sizeof linbuf - 2]) \
                     44:                        flush(); \
                     45:        } \
                     46:        ch &= TRIM; \
                     47:        *linp++ = ch; \
                     48:        if (ch == '\n' || linp >= &linbuf[sizeof(linbuf) - 2]) \
                     49:                flush(); \
                     50: }

unix.superglobalmegacorp.com

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