Annotation of researchv10no/ncurses/screen/tgetflag.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Simulation of termcap using terminfo.
        !             3:  */
        !             4: 
        !             5: #include "curses.ext"
        !             6: 
        !             7: /*     @(#) tgetflag.c: 1.1 10/15/83   (1.8    3/6/83) */
        !             8: 
        !             9: /* Make a 2 letter code into an integer we can switch on easily */
        !            10: #define two(s1, s2) (s1 + 256*s2)
        !            11: #define twostr(str) two(*str, str[1])
        !            12: 
        !            13: int
        !            14: tgetflag(id)
        !            15: char *id;
        !            16: {
        !            17:        register int rv;
        !            18:        register char *p;
        !            19: 
        !            20:        switch (twostr(id)) {
        !            21:        case two('b','w'): rv = auto_left_margin; break;
        !            22:        case two('a','m'): rv = auto_right_margin; break;
        !            23:        case two('x','b'): rv = beehive_glitch; break;
        !            24:        case two('x','s'): rv = ceol_standout_glitch; break;
        !            25:        case two('x','n'): rv = eat_newline_glitch; break;
        !            26:        case two('e','o'): rv = erase_overstrike; break;
        !            27:        case two('g','n'): rv = generic_type; break;
        !            28:        case two('h','c'): rv = hard_copy; break;
        !            29:        case two('k','m'): rv = has_meta_key; break;
        !            30:        case two('h','s'): rv = has_status_line; break;
        !            31:        case two('i','n'): rv = insert_null_glitch; break;
        !            32:        case two('d','a'): rv = memory_above; break;
        !            33:        case two('d','b'): rv = memory_below; break;
        !            34:        case two('m','i'): rv = move_insert_mode; break;
        !            35:        case two('m','s'): rv = move_standout_mode; break;
        !            36:        case two('o','s'): rv = over_strike; break;
        !            37:        case two('e','s'): rv = status_line_esc_ok; break;
        !            38:        case two('x','t'): rv = teleray_glitch; break;
        !            39:        case two('h','z'): rv = tilde_glitch; break;
        !            40:        case two('u','l'): rv = transparent_underline; break;
        !            41:        case two('x','o'): rv = xon_xoff; break;
        !            42:        case two('b','s'):
        !            43:                p = cursor_left;
        !            44:                rv = p && *p==8 && p[1] == 0;
        !            45:                break;
        !            46:        case two('p','t'):
        !            47:                p = tab;
        !            48:                rv = p && *p==9 && p[1] == 0;
        !            49:                break;
        !            50:        case two('n','c'):
        !            51:                p = carriage_return;
        !            52:                rv = ! (p && *p==13 && p[1] == 0);
        !            53:                break;
        !            54:        case two('n','s'):
        !            55:                p = scroll_forward;
        !            56:                rv = ! (p && *p==10 && p[1] == 0);
        !            57:                break;
        !            58:        default: rv = 0;
        !            59:        }
        !            60:        return rv;
        !            61: }

unix.superglobalmegacorp.com

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