Annotation of researchv10no/ncurses/screen/resetshell.c, revision 1.1.1.1

1.1       root        1: /*     @(#) resetshell.c: 1.1 10/15/83 (1.36   3/18/83)        */
                      2: 
                      3: #include "curses.ext"
                      4: #include "../local/uparm.h"
                      5: 
                      6: extern struct term *cur_term;
                      7: 
                      8: #ifdef DIOCSETT
                      9: /*
                     10:  * Disable CB/UNIX virtual terminals.
                     11:  * This really should be a field in the cur_term structure, but
                     12:  * I didn't do it that way because I'm trying to make ex fit.
                     13:  * If you're using virtual terminals on a 32 bit machine it
                     14:  * probably makes sense to change it.
                     15:  */
                     16: static struct termcb new, old;
                     17: #endif
                     18: #ifdef LTILDE
                     19: static int newlmode, oldlmode;
                     20: #endif
                     21: 
                     22: /*
                     23:  * Getting the baud rate is different on the two systems.
                     24:  * In either case, a baud rate of 0 hangs up the phone.
                     25:  * Since things are often initialized to 0, getting the phone
                     26:  * hung up on you is a common result of a bug in your program.
                     27:  * This is not very friendly, so if the baud rate is 0, we
                     28:  * assume we're doing a reset_xx_mode with no def_xx_mode, and
                     29:  * just don't do anything.
                     30:  */
                     31: #ifdef USG
                     32: #define BR(x) (cur_term->x.c_cflag&CBAUD)
                     33: #else
                     34: #define BR(x) (cur_term->x.sg_ispeed)
                     35: #endif
                     36: 
                     37: reset_shell_mode()
                     38: {
                     39: #ifdef DIOCSETT
                     40:        /*
                     41:         * Restore any virtual terminal setting.  This must be done
                     42:         * before the TIOCSETN because DIOCSETT will clobber flags like xtabs.
                     43:         */
                     44:        old.st_flgs |= TM_SET;
                     45:        ioctl(2, DIOCSETT, &old);
                     46: #endif
                     47:        if (BR(Ottyb)) {
                     48:                ioctl(cur_term -> Filedes,
                     49: #ifdef USG
                     50:                        TCSETAW,
                     51: #else
                     52:                        TIOCSETN,
                     53: #endif
                     54:                        &(cur_term->Ottyb));
                     55: # ifdef LTILDE
                     56:        if (newlmode != oldlmode)
                     57:                ioctl(cur_term -> Filedes, TIOCLSET, &oldlmode);
                     58: # endif
                     59:        }
                     60: }

unix.superglobalmegacorp.com

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