Annotation of 43BSDTahoe/new/rn/term.h, revision 1.1

1.1     ! root        1: /* $Header: term.h,v 4.3.1.2 85/05/13 15:52:05 lwall Exp $
        !             2:  *
        !             3:  * $Log:       term.h,v $
        !             4:  * Revision 4.3.1.2  85/05/13  15:52:05  lwall
        !             5:  * Declared devtty on TERMIO system.
        !             6:  * 
        !             7:  * Revision 4.3.1.1  85/05/10  11:41:24  lwall
        !             8:  * Branch for patches.
        !             9:  * 
        !            10:  * Revision 4.3  85/05/01  11:51:36  lwall
        !            11:  * Baseline for release with 4.3bsd.
        !            12:  * 
        !            13:  */
        !            14: 
        !            15: #ifdef PUSHBACK
        !            16: EXT char circlebuf[PUSHSIZE];
        !            17: EXT int nextin INIT(0);
        !            18: EXT int nextout INIT(0);
        !            19: #ifdef PENDING
        !            20: #ifdef FIONREAD
        !            21: EXT long iocount INIT(0);
        !            22: #ifndef lint
        !            23: #define input_pending() (nextin!=nextout || (ioctl(0, FIONREAD, &iocount),(int)iocount))
        !            24: #else
        !            25: #define input_pending() bizarre
        !            26: #endif lint
        !            27: #else FIONREAD
        !            28: int circfill();
        !            29: EXT int devtty INIT(0);
        !            30: #ifndef lint
        !            31: #define input_pending() (nextin!=nextout || circfill())
        !            32: #else
        !            33: #define input_pending() bizarre
        !            34: #endif lint
        !            35: #endif FIONREAD
        !            36: #else PENDING
        !            37: #ifndef lint
        !            38: #define input_pending() (nextin!=nextout)
        !            39: #else
        !            40: #define input_pending() bizarre
        !            41: #endif lint
        !            42: #endif PENDING
        !            43: #else PUSHBACK
        !            44: #ifdef PENDING
        !            45: #ifdef FIONREAD        /* must have FIONREAD or O_NDELAY for input_pending() */
        !            46: #define read_tty(addr,size) read(0,addr,size)
        !            47: #ifndef lint
        !            48: #define input_pending() (ioctl(0, FIONREAD, &iocount),(int)iocount)
        !            49: #else
        !            50: #define input_pending() bizarre
        !            51: #endif lint
        !            52: EXT long iocount INIT(0);
        !            53: 
        !            54: #else FIONREAD
        !            55: 
        !            56: EXT int devtty INIT(0);
        !            57: EXT bool is_input INIT(FALSE);
        !            58: EXT char pending_ch INIT(0);
        !            59: #ifndef lint
        !            60: #define input_pending() (is_input || (is_input=read(devtty,&pending_ch,1)))
        !            61: #else
        !            62: #define input_pending() bizarre
        !            63: #endif lint
        !            64: #endif FIONREAD
        !            65: #else PENDING
        !            66: #define read_tty(addr,size) read(0,addr,size)
        !            67: #define input_pending() (FALSE)
        !            68: #endif PENDING
        !            69: #endif PUSHBACK
        !            70: 
        !            71: /* stuff wanted by terminal mode diddling routines */
        !            72: 
        !            73: #ifdef TERMIO
        !            74: EXT struct termio _tty, _oldtty;
        !            75: #else
        !            76: EXT struct sgttyb _tty;
        !            77: EXT int _res_flg INIT(0);
        !            78: #endif
        !            79: 
        !            80: EXT int _tty_ch INIT(2);
        !            81: EXT bool bizarre INIT(FALSE);                  /* do we need to restore terminal? */
        !            82: 
        !            83: /* terminal mode diddling routines */
        !            84: 
        !            85: #ifdef TERMIO
        !            86: 
        !            87: #define crmode() ((bizarre=1),_tty.c_lflag &=~ICANON,_tty.c_cc[VMIN] = 1,ioctl(_tty_ch,TCSETAF,&_tty))
        !            88: #define nocrmode() ((bizarre=1),_tty.c_lflag |= ICANON,_tty.c_cc[VEOF] = CEOF,stty(_tty_ch,&_tty))
        !            89: #define echo()  ((bizarre=1),_tty.c_lflag |= ECHO, ioctl(_tty_ch, TCSETA, &_tty))
        !            90: #define noecho() ((bizarre=1),_tty.c_lflag &=~ECHO, ioctl(_tty_ch, TCSETA, &_tty))
        !            91: #define nl()    ((bizarre=1),_tty.c_iflag |= ICRNL,_tty.c_oflag |= ONLCR,ioctl(_tty_ch, TCSETAW, &_tty))
        !            92: #define nonl()  ((bizarre=1),_tty.c_iflag &=~ICRNL,_tty.c_oflag &=~ONLCR,ioctl(_tty_ch, TCSETAW, &_tty))
        !            93: #define        savetty() (ioctl(_tty_ch, TCGETA, &_oldtty),ioctl(_tty_ch, TCGETA, &_tty))
        !            94: #define        resetty() ((bizarre=0),ioctl(_tty_ch, TCSETAF, &_oldtty))
        !            95: #define unflush_output()
        !            96: 
        !            97: #else
        !            98: 
        !            99: #define raw()   ((bizarre=1),_tty.sg_flags|=RAW, stty(_tty_ch,&_tty))
        !           100: #define noraw()         ((bizarre=1),_tty.sg_flags&=~RAW,stty(_tty_ch,&_tty))
        !           101: #define crmode() ((bizarre=1),_tty.sg_flags |= CBREAK, stty(_tty_ch,&_tty))
        !           102: #define nocrmode() ((bizarre=1),_tty.sg_flags &= ~CBREAK,stty(_tty_ch,&_tty))
        !           103: #define echo()  ((bizarre=1),_tty.sg_flags |= ECHO, stty(_tty_ch, &_tty))
        !           104: #define noecho() ((bizarre=1),_tty.sg_flags &= ~ECHO, stty(_tty_ch, &_tty))
        !           105: #define nl()    ((bizarre=1),_tty.sg_flags |= CRMOD,stty(_tty_ch, &_tty))
        !           106: #define nonl()  ((bizarre=1),_tty.sg_flags &= ~CRMOD, stty(_tty_ch, &_tty))
        !           107: #define        savetty() (gtty(_tty_ch, &_tty), _res_flg = _tty.sg_flags)
        !           108: #define        resetty() ((bizarre=0),_tty.sg_flags = _res_flg, stty(_tty_ch, &_tty))
        !           109: #ifdef LFLUSHO
        !           110: #ifndef lint
        !           111: EXT int lflusho INIT(LFLUSHO);
        !           112: #else
        !           113: EXT long lflusho INIT(LFLUSHO);
        !           114: #endif lint
        !           115: #define unflush_output() (ioctl(_tty_ch,TIOCLBIC,&lflusho))
        !           116: #else
        !           117: #define unflush_output()
        !           118: #endif LFLUSHO
        !           119: #endif TERMIO
        !           120: 
        !           121: #ifdef TIOCSTI
        !           122: #ifdef lint
        !           123: #define forceme(c) ioctl(_tty_ch,TIOCSTI,Null(long*))  /* ghad! */
        !           124: #else
        !           125: #define forceme(c) ioctl(_tty_ch,TIOCSTI,c) /* pass character in " " */
        !           126: #endif lint
        !           127: #else
        !           128: #define forceme(c)
        !           129: #endif
        !           130: 
        !           131: /* termcap stuff */
        !           132: 
        !           133: /*
        !           134:  * NOTE: if you don't have termlib you'll either have to define these strings
        !           135:  *    and the tputs routine, or you'll have to redefine the macros below
        !           136:  */
        !           137: 
        !           138: #ifdef HAVETERMLIB
        !           139: EXT char *BC INIT(Nullch);             /* backspace character */
        !           140: EXT char *UP INIT(Nullch);             /* move cursor up one line */
        !           141: EXT char *CR INIT(Nullch);             /* get to left margin, somehow */
        !           142: EXT char *VB INIT(Nullch);             /* visible bell */
        !           143: EXT char *CL INIT(Nullch);             /* home and clear screen */
        !           144: EXT char *CE INIT(Nullch);             /* clear to end of line */
        !           145: #ifdef CLEAREOL
        !           146: EXT char *CM INIT(Nullch);             /* cursor motion -- PWP */
        !           147: EXT char *HO INIT(Nullch);             /* home cursor -- PWP */
        !           148: EXT char *CD INIT(Nullch);             /* clear to end of display -- PWP */
        !           149: #endif CLEAREOL
        !           150: EXT char *SO INIT(Nullch);             /* begin standout mode */
        !           151: EXT char *SE INIT(Nullch);             /* end standout mode */
        !           152: EXT int SG INIT(0);            /* blanks left by SO and SE */
        !           153: EXT char *US INIT(Nullch);             /* start underline mode */
        !           154: EXT char *UE INIT(Nullch);             /* end underline mode */
        !           155: EXT char *UC INIT(Nullch);             /* underline a character, if that's how it's done */
        !           156: EXT int UG INIT(0);            /* blanks left by US and UE */
        !           157: EXT bool AM INIT(FALSE);               /* does terminal have automatic margins? */
        !           158: EXT bool XN INIT(FALSE);               /* does it eat 1st newline after automatic wrap? */
        !           159: EXT char PC INIT(0);           /* pad character for use by tputs() */
        !           160: EXT short ospeed INIT(0);      /* terminal output speed, for use by tputs() */
        !           161: EXT int LINES INIT(0), COLS INIT(0);   /* size of screen */
        !           162: EXT int just_a_sec INIT(960);                  /* 1 sec at current baud rate */
        !           163:                                        /* (number of nulls) */
        !           164: 
        !           165: /* define a few handy macros */
        !           166: 
        !           167: #define backspace() tputs(BC,0,putchr) FLUSH
        !           168: #define clear() tputs(CL,LINES,putchr) FLUSH
        !           169: #define erase_eol() tputs(CE,1,putchr) FLUSH
        !           170: #ifdef CLEAREOL
        !           171: #define clear_rest() tputs(CD,LINES,putchr) FLUSH      /* PWP */
        !           172: #define maybe_eol() if(erase_screen&&can_home_clear)tputs(CE,1,putchr) FLUSH
        !           173: #endif CLEAREOL
        !           174: #define underline() tputs(US,1,putchr) FLUSH
        !           175: #define un_underline() tputs(UE,1,putchr) FLUSH
        !           176: #define underchar() tputs(UC,0,putchr) FLUSH
        !           177: #define standout() tputs(SO,1,putchr) FLUSH
        !           178: #define un_standout() tputs(SE,1,putchr) FLUSH
        !           179: #define up_line() tputs(UP,1,putchr) FLUSH
        !           180: #define carriage_return() tputs(CR,1,putchr) FLUSH
        !           181: #define dingaling() tputs(VB,1,putchr) FLUSH
        !           182: #else
        !           183:   ????????             /* up to you */
        !           184: #endif
        !           185: 
        !           186: EXT int page_line INIT(1);     /* line number for paging in print_line (origin 1) */
        !           187: 
        !           188: void   term_init();
        !           189: void   term_set();
        !           190: #ifdef PUSHBACK
        !           191: void   pushchar();
        !           192: void   mac_init();
        !           193: void   mac_line();
        !           194: void   show_macros();
        !           195: #endif
        !           196: char   putchr();       /* routine for tputs to call */
        !           197: bool   finish_command();
        !           198: void   eat_typeahead();
        !           199: void   settle_down();
        !           200: #ifndef read_tty
        !           201:     int                read_tty();
        !           202: #endif
        !           203: void   underprint();
        !           204: #ifdef NOFIREWORKS
        !           205:     void       no_sofire();
        !           206:     void       no_ulfire();
        !           207: #endif
        !           208: void   getcmd();
        !           209: int    get_anything();
        !           210: void   in_char();
        !           211: int    print_lines();
        !           212: void   page_init();
        !           213: void   pad();
        !           214: void   printcmd();
        !           215: void   rubout();
        !           216: void   reprint();
        !           217: #ifdef CLEAREOL
        !           218: void   home_cursor();
        !           219: #endif CLEAREOL

unix.superglobalmegacorp.com

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