Annotation of coherent/g/usr/lib/ncurses/lib_raw.c, revision 1.1.1.1

1.1       root        1: /*********************************************************************
                      2: *                         COPYRIGHT NOTICE                           *
                      3: **********************************************************************
                      4: *        This software is copyright (C) 1982 by Pavel Curtis         *
                      5: *                                                                    *
                      6: *        Permission is granted to reproduce and distribute           *
                      7: *        this file by any means so long as no fee is charged         *
                      8: *        above a nominal handling fee and so long as this            *
                      9: *        notice is always included in the copies.                    *
                     10: *                                                                    *
                     11: *        Other rights are reserved except as explicitly granted      *
                     12: *        by written permission of the author.                        *
                     13: *                Pavel Curtis                                        *
                     14: *                Computer Science Dept.                              *
                     15: *                405 Upson Hall                                      *
                     16: *                Cornell University                                  *
                     17: *                Ithaca, NY 14853                                    *
                     18: *                                                                    *
                     19: *                Ph- (607) 256-4934                                  *
                     20: *                                                                    *
                     21: *                Pavel.Cornell@Udel-Relay   (ARPAnet)                *
                     22: *                decvax!cornell!pavel       (UUCPnet)                *
                     23: *********************************************************************/
                     24: 
                     25: /*
                     26:  *     raw.c
                     27:  *
                     28:  *     Routines:
                     29:  *             raw()
                     30:  *             echo()
                     31:  *             nl()
                     32:  *             cbreak()
                     33:  *             crmode()
                     34:  *             noraw()
                     35:  *             noecho()
                     36:  *             nonl()
                     37:  *             nocbreak()
                     38:  *             nocrmode()
                     39:  *
                     40:  *     cbreak() == crmode()
                     41:  *     nocbreak() == crmode()
                     42:  *
                     43:  *  $Log:      lib_raw.c,v $
                     44:  * Revision 1.8  93/04/12  14:13:59  bin
                     45:  * Udo: third color update
                     46:  * 
                     47:  * Revision 2.2  92/11/29  15:37:59  munk
                     48:  * Conditional usage of termio
                     49:  *
                     50:  * Revision 1.2  92/04/13  14:38:19  bin
                     51:  * update by vlad
                     52:  * 
                     53:  * Revision 2.1  82/10/25  14:48:42  pavel
                     54:  * Added Copyright Notice
                     55:  * 
                     56:  * Revision 2.0  82/10/24  15:17:40  pavel
                     57:  * Beta-one Test Release
                     58:  * 
                     59:  * Revision 1.3  82/08/23  22:30:32  pavel
                     60:  * The REAL Alpha-one Release Version
                     61:  * 
                     62:  * Revision 1.2  82/08/19  19:11:25  pavel
                     63:  * Alpha Test Release One
                     64:  * 
                     65:  * Revision 1.1  82/08/12  18:43:18  pavel
                     66:  * Initial revision
                     67:  * 
                     68:  *
                     69:  */
                     70: 
                     71: #ifdef RCSHDR
                     72: static char RCSid[] =
                     73:        "$Header: /src386/usr/lib/ncurses/RCS/lib_raw.c,v 1.8 93/04/12 14:13:59 bin Exp Locker: bin $";
                     74: #endif
                     75: 
                     76: #include "curses.h"
                     77: #include "curses.priv.h"
                     78: #include "term.h"
                     79: 
                     80: 
                     81: raw()
                     82: {
                     83: #ifdef TRACE
                     84:        if (_tracing)
                     85:            _tracef("raw() called");
                     86: #endif
                     87: 
                     88: #ifdef USE_TERMIO
                     89:     cur_term->Ntermio.c_lflag &= ~(ECHOK|ECHONL|ISIG|ICANON);
                     90:     cur_term->Ntermio.c_oflag &= ~(OPOST);
                     91:     cur_term->Ntermio.c_cc[VMIN] = DEF_VMIN;
                     92:     cur_term->Ntermio.c_cc[VTIME] = DEF_VTIME;
                     93:     ioctl(cur_term->Filedes, TCSETA, &cur_term->Ntermio);
                     94: #else
                     95:     cur_term->Nttyb.sg_flags |= RAW;
                     96:     stty(cur_term->Filedes, &cur_term->Nttyb);
                     97: #endif
                     98: 
                     99:     SP->_raw = TRUE;
                    100:     SP->_nlmapping = TRUE;
                    101: }
                    102: 
                    103: 
                    104: cbreak()
                    105: {
                    106: #ifdef TRACE
                    107:        if (_tracing)
                    108:            _tracef("cbreak() called");
                    109: #endif
                    110: 
                    111: #ifdef USE_TERMIO
                    112:     cur_term->Ntermio.c_lflag &= ~ICANON;
                    113:     ioctl(cur_term->Filedes, TCSETA, &cur_term->Ntermio);
                    114: #else
                    115:     cur_term->Nttyb.sg_flags |= CBREAK;
                    116:     stty(cur_term->Filedes, &cur_term->Nttyb);
                    117: #endif
                    118: 
                    119:     SP->_cbreak = TRUE;
                    120: }
                    121: 
                    122: 
                    123: crmode()
                    124: {
                    125: #ifdef TRACE
                    126:        if (_tracing)
                    127:            _tracef("crmode() called");
                    128: #endif
                    129: 
                    130:     cbreak();
                    131: }
                    132: 
                    133: 
                    134: echo()
                    135: {
                    136: #ifdef TRACE
                    137:        if (_tracing)
                    138:            _tracef("echo() called");
                    139: #endif
                    140: 
                    141: #ifdef USE_TERMIO
                    142:     cur_term->Ntermio.c_lflag |= ECHO;
                    143:     ioctl(cur_term->Filedes, TCSETA, &cur_term->Ntermio);
                    144: #else
                    145:     cur_term->Nttyb.sg_flags |= ECHO;
                    146:     stty(cur_term->Filedes, &cur_term->Nttyb);
                    147: #endif
                    148: 
                    149:     SP->_echo = TRUE;
                    150: }
                    151: 
                    152: 
                    153: nl()
                    154: {
                    155: #ifdef TRACE
                    156:        if (_tracing)
                    157:            _tracef("nl() called");
                    158: #endif
                    159: 
                    160: #ifdef USE_TERMIO
                    161:     cur_term->Ntermio.c_iflag |= ICRNL;
                    162:     cur_term->Ntermio.c_oflag |= ONLCR;
                    163:     ioctl(cur_term->Filedes, TCSETA, &cur_term->Ntermio);
                    164: #else
                    165:     cur_term->Nttyb.sg_flags |= CRMOD;
                    166:     stty(cur_term->Filedes, &cur_term->Nttyb);
                    167: #endif
                    168: 
                    169:     SP->_nl = TRUE;
                    170:     SP->_nlmapping = ! SP->_raw;
                    171: }
                    172: 
                    173: 
                    174: noraw()
                    175: {
                    176: #ifdef TRACE
                    177:        if (_tracing)
                    178:            _tracef("noraw() called");
                    179: #endif
                    180: 
                    181: #ifdef USE_TERMIO
                    182:     cur_term->Ntermio.c_lflag |= (ECHOK|ECHONL|ISIG|ICANON);
                    183:     cur_term->Ntermio.c_oflag |= OPOST;
                    184:     cur_term->Ntermio.c_cc[VEOF] = DEF_VEOF;
                    185:     cur_term->Ntermio.c_cc[VEOL] = DEF_VEOL;
                    186:     ioctl(cur_term->Filedes, TCSETA, &cur_term->Ntermio);
                    187: #else
                    188:     cur_term->Nttyb.sg_flags &= ~RAW;
                    189:     stty(cur_term->Filedes, &cur_term->Nttyb);
                    190: #endif
                    191: 
                    192:     SP->_raw = FALSE;
                    193:     SP->_nlmapping = SP->_nl;
                    194: }
                    195: 
                    196: nocbreak()
                    197: {
                    198: #ifdef TRACE
                    199:        if (_tracing)
                    200:            _tracef("nocbreak() called");
                    201: #endif
                    202: 
                    203: #ifdef USE_TERMIO
                    204:     cur_term->Ntermio.c_lflag |= ICANON;
                    205:     ioctl(cur_term->Filedes, TCSETA, &cur_term->Ntermio);
                    206: #else
                    207:     cur_term->Nttyb.sg_flags &= ~CBREAK;
                    208:     stty(cur_term->Filedes, &cur_term->Nttyb);
                    209: #endif
                    210: 
                    211:     SP->_cbreak = FALSE;
                    212: }
                    213: 
                    214: 
                    215: nocrmode()
                    216: {
                    217: #ifdef TRACE
                    218:        if (_tracing)
                    219:            _tracef("nocrmode() called");
                    220: #endif
                    221: 
                    222:     nocbreak();
                    223: }
                    224: 
                    225: 
                    226: noecho()
                    227: {
                    228: #ifdef TRACE
                    229:        if (_tracing)
                    230:            _tracef("noecho() called");
                    231: #endif
                    232: 
                    233: #ifdef USE_TERMIO
                    234:     cur_term->Ntermio.c_lflag &= ~ECHO;
                    235:     ioctl(cur_term->Filedes, TCSETA, &cur_term->Ntermio);
                    236: #else
                    237:     cur_term->Nttyb.sg_flags &= ~ECHO;
                    238:     stty(cur_term->Filedes, &cur_term->Nttyb);
                    239: #endif
                    240: 
                    241:     SP->_echo = FALSE;
                    242: }
                    243: 
                    244: 
                    245: nonl()
                    246: {
                    247: #ifdef TRACE
                    248:        if (_tracing)
                    249:            _tracef("nonl() called");
                    250: #endif
                    251: 
                    252: #ifdef USE_TERMIO
                    253:     cur_term->Ntermio.c_iflag &= ~ICRNL;
                    254:     cur_term->Ntermio.c_oflag &= ~ONLCR;
                    255:     ioctl(cur_term->Filedes, TCSETA, &cur_term->Ntermio);
                    256: #else
                    257:     cur_term->Nttyb.sg_flags &= ~CRMOD;
                    258:     stty(cur_term->Filedes, &cur_term->Nttyb);
                    259: #endif
                    260: 
                    261:     SP->_nl = FALSE;
                    262:     SP->_nlmapping = FALSE;
                    263: }

unix.superglobalmegacorp.com

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