Annotation of coherent/g/usr/bin/infocmp/curses.h, revision 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:  *      curses.h - Main header file for the curses package
        !            27:  *
        !            28:  *  $Header: /src386/usr/bin/infocmp/RCS/curses.h,v 1.1 92/03/13 10:21:14 bin Exp $
        !            29:  *
        !            30:  *  $Log:      curses.h,v $
        !            31:  * Revision 1.1  92/03/13  10:21:14  bin
        !            32:  * Initial revision
        !            33:  * 
        !            34: Revision 2.1  82/10/25  14:46:08  pavel
        !            35: Added Copyright Notice
        !            36: 
        !            37: Revision 2.0  82/10/24  15:17:22  pavel
        !            38: Beta-one Test Release
        !            39: 
        !            40: Revision 1.4  82/08/23  22:30:13  pavel
        !            41: The REAL Alpha-one Release Version
        !            42: 
        !            43: Revision 1.3  82/08/20  16:52:46  pavel
        !            44: Fixed <terminfo.h> bug
        !            45: 
        !            46: Revision 1.2  82/08/19  19:10:13  pavel
        !            47: Alpha Test Release One
        !            48: 
        !            49: Revision 1.1  82/08/12  18:38:57  pavel
        !            50: Initial revision
        !            51: 
        !            52:  *
        !            53:  */
        !            54: 
        !            55: #ifndef WINDOW
        !            56: 
        !            57: #include "terminfo.h"
        !            58: 
        !            59: 
        !            60: #define bool    char
        !            61: 
        !            62: 
        !            63: #ifndef MINICURSES
        !            64:     typedef unsigned short  chtype;
        !            65: #else
        !            66:     typedef unsigned char   chtype;
        !            67: #endif  MINICURSES
        !            68: 
        !            69: 
        !            70: #ifndef TRUE
        !            71: #  define TRUE    (1)
        !            72: #  define FALSE   (0)
        !            73: #endif
        !            74: 
        !            75: #define ERR     (0)
        !            76: #define OK      (1)
        !            77: 
        !            78: #define _SUBWIN         01
        !            79: #define _ENDLINE        02
        !            80: #define _FULLWIN        04
        !            81: #define _SCROLLWIN      010
        !            82: 
        !            83: #define _NOCHANGE       -1
        !            84: 
        !            85: struct _win_st {
        !            86:        short   _cury, _curx;
        !            87:        short   _maxy, _maxx;
        !            88:        short   _begy, _begx;
        !            89:        short   _flags;
        !            90:        chtype  _attrs;
        !            91:        bool    _clear;
        !            92:        bool    _leave;
        !            93:        bool    _scroll;
        !            94:        bool    _idlok;
        !            95:        bool    _use_keypad;    /* 0=no, 1=yes, 2=yes/timeout */
        !            96:        bool    _use_meta;      /* T=use the meta key */
        !            97:        bool    _nodelay;       /* T=don't wait for tty input */
        !            98:        chtype  **_line;
        !            99:        short   *_firstchar;    /* First changed character in the line */
        !           100:        short   *_lastchar;     /* Last changed character in the line */
        !           101:        short   *_numchngd;     /* Number of changes made in the line */
        !           102:        short   _regtop;        /* Top and bottom of scrolling region */
        !           103:        short   _regbottom;
        !           104: };
        !           105: 
        !           106: #define WINDOW  struct _win_st
        !           107: 
        !           108: WINDOW *stdscr, *curscr;
        !           109: 
        !           110: int    LINES, COLS;
        !           111: 
        !           112: WINDOW  *initscr(), *newwin(), *subwin();
        !           113: char    *longname();
        !           114: struct  screen  *newterm(), *set_term();
        !           115: 
        !           116: 
        !           117: /*
        !           118:  * psuedo functions
        !           119:  */
        !           120: 
        !           121: #define getyx(win,y,x)   (y = (win)->_cury, x = (win)->_curx)
        !           122: 
        !           123: #define inch()                 winch(stdscr)
        !           124: #define standout()             wstandout(stdscr)
        !           125: #define standend()             wstandend(stdscr)
        !           126: #define attron(at)             wattron(stdscr,at)
        !           127: #define attroff(at)            wattroff(stdscr,at)
        !           128: #define attrset(at)            wattrset(stdscr,at)
        !           129: 
        !           130: #define winch(win)             ((win)->_line[(win)->_cury][(win)->_curx])
        !           131: #define wstandout(win)          (wattrset(win,A_STANDOUT))
        !           132: #define wstandend(win)          (wattrset(win,A_NORMAL))
        !           133: #define wattron(win,at)         ((win)->_attrs |= (at))
        !           134: #define wattroff(win,at)        ((win)->_attrs &= ~(at))
        !           135: #define wattrset(win,at)        ((win)->_attrs = (at))
        !           136: 
        !           137: 
        !           138: #ifndef MINICURSES
        !           139:        /*
        !           140:         * psuedo functions for standard screen
        !           141:         */
        !           142: #  define addch(ch)       waddch(stdscr, ch)
        !           143: #  define getch()         wgetch(stdscr)
        !           144: #  define addstr(str)     waddstr(stdscr, str)
        !           145: #  define getstr(str)     wgetstr(stdscr, str)
        !           146: #  define move(y, x)      wmove(stdscr, y, x)
        !           147: #  define clear()         wclear(stdscr)
        !           148: #  define erase()         werase(stdscr)
        !           149: #  define clrtobot()      wclrtobot(stdscr)
        !           150: #  define clrtoeol()      wclrtoeol(stdscr)
        !           151: #  define insertln()      winsertln(stdscr)
        !           152: #  define deleteln()      wdeleteln(stdscr)
        !           153: #  define refresh()       wrefresh(stdscr)
        !           154: #  define insch(c)        winsch(stdscr,c)
        !           155: #  define delch()         wdelch(stdscr)
        !           156: #  define setscrreg(t,b)  wsetscrreg(stdscr,t,b)
        !           157: 
        !           158:            /*
        !           159:             * mv functions
        !           160:             */
        !           161: #  define mvwaddch(win,y,x,ch)    (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
        !           162: #  define mvwgetch(win,y,x)       (wmove(win,y,x) == ERR ? ERR : wgetch(win))
        !           163: #  define mvwaddstr(win,y,x,str)  (wmove(win,y,x) == ERR ? ERR \
        !           164:                                                         : waddstr(win,str))
        !           165: #  define mvwgetstr(win,y,x)      (wmove(win,y,x) == ERR ? ERR : wgetstr(win))
        !           166: #  define mvwinch(win,y,x)        (wmove(win,y,x) == ERR ? ERR : winch(win))
        !           167: #  define mvwdelch(win,y,x)       (wmove(win,y,x) == ERR ? ERR : wdelch(win))
        !           168: #  define mvwinsch(win,y,x,c)     (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
        !           169: #  define mvaddch(y,x,ch)         mvwaddch(stdscr,y,x,ch)
        !           170: #  define mvgetch(y,x)            mvwgetch(stdscr,y,x)
        !           171: #  define mvaddstr(y,x,str)       mvwaddstr(stdscr,y,x,str)
        !           172: #  define mvgetstr(y,x)           mvwgetstr(stdscr,y,x)
        !           173: #  define mvinch(y,x)             mvwinch(stdscr,y,x)
        !           174: #  define mvdelch(y,x)            mvwdelch(stdscr,y,x)
        !           175: #  define mvinsch(y,x,c)          mvwinsch(stdscr,y,x,c)
        !           176:   
        !           177: #else MINICURSES
        !           178: 
        !           179: #  define addch                          m_addch
        !           180: #  define addstr                  m_addstr
        !           181: #  define erase                   m_erase
        !           182: #  define clear                   m_clear
        !           183: #  define refresh                 m_refresh
        !           184: #  define initscr                 m_initscr
        !           185: #  define newterm                 m_newterm
        !           186: #  define mvaddch(y,x,ch)         (move(y,x) == ERR ? ERR : addch(ch))
        !           187: #  define mvaddstr(y,x,str)       (move(y,x) == ERR ? ERR : addstr(str))
        !           188: 
        !           189: /*
        !           190:  * These functions don't exist in minicurses, so we define them
        !           191:  * to nonexistent functions to help the user catch the error.
        !           192:  */
        !           193: #  define box             no_box
        !           194: #  define clrtobot        no_clrtobot
        !           195: #  define clrtoeol        no_clrtoeol
        !           196: #  define delch           no_delch
        !           197: #  define deleteln        no_deleteln
        !           198: #  define delwin          no_delwin
        !           199: #  define getch           no_getch
        !           200: #  define getstr          no_getstr
        !           201: #  define insch           no_insch
        !           202: #  define insertln        no_insertln
        !           203: #  define longname        no_longname
        !           204: #  define mvprintw        no_mvprintw
        !           205: #  define mvscanw         no_mvscanw
        !           206: #  define mvwin           no_mvwin
        !           207: #  define mvwprintw       no_mvwprintw
        !           208: #  define mvwscanw        no_mvwscanw
        !           209: #  define newwin          no_newwin
        !           210: #  define overlay         no_overlay
        !           211: #  define overwrite       no_overwrite
        !           212: #  define printw          no_printw
        !           213: #  define putp            no_putp
        !           214: #  define scanw           no_scanw
        !           215: #  define scroll          no_scroll
        !           216: #  define setscrreg       no_setscrreg
        !           217: #  define subwin          no_subwin
        !           218: #  define touchwin        no_touchwin
        !           219: #  define tstp            no_tstp
        !           220: #  define vidattr         no_vidattr
        !           221: #  define waddch          no_waddch
        !           222: #  define waddstr         no_waddstr
        !           223: #  define wclear          no_wclear
        !           224: #  define wclrtobot       no_wclrtobot
        !           225: #  define wclrtoeol       no_wclrtoeol
        !           226: #  define wdelch          no_wdelch
        !           227: #  define wdeleteln       no_wdeleteln
        !           228: #  define werase          no_werase
        !           229: #  define wgetch          no_wgetch
        !           230: #  define wgetstr         no_wgetstr
        !           231: #  define winsch          no_winsch
        !           232: #  define winsertln       no_winsertln
        !           233: #  define wmove           no_wmove
        !           234: #  define wprintw         no_wprintw
        !           235: #  define wrefresh        no_wrefresh
        !           236: #  define wscanw          no_wscanw
        !           237: #  define wsetscrreg      no_wsetscrreg
        !           238: 
        !           239: /* mv functions that aren't valid */
        !           240: #  define mvdelch         no_mvwdelch
        !           241: #  define mvgetch         no_mvwgetch
        !           242: #  define mvgetstr        no_mvwgetstr
        !           243: #  define mvinch          no_mvwinch
        !           244: #  define mvinsch         no_mvwinsch
        !           245: #  define mvwaddch        no_mvwaddch
        !           246: #  define mvwaddstr       no_mvaddstr
        !           247: #  define mvwdelch        no_mvwdelch
        !           248: #  define mvwgetch        no_mvwgetch
        !           249: #  define mvwgetstr       no_mvwgetstr
        !           250: #  define mvwinch         no_mvwinch
        !           251: #  define mvwinsch        no_mvwinsch
        !           252: 
        !           253: #endif MINICURSES
        !           254: 
        !           255: 
        !           256: #ifndef MINICURSES
        !           257: /* Funny "characters" enabled for various special function keys for input */
        !           258: #define KEY_BREAK       0401            /* break key (unreliable) */
        !           259: #define KEY_DOWN        0402            /* The four arrow keys ... */
        !           260: #define KEY_UP          0403
        !           261: #define KEY_LEFT        0404
        !           262: #define KEY_RIGHT       0405            /* ... */
        !           263: #define KEY_HOME        0406            /* Home key (upward+left arrow) */
        !           264: #define KEY_BACKSPACE   0407            /* backspace (unreliable) */
        !           265: #define KEY_F0          0410            /* Function keys.  Space for 64 */
        !           266: #define KEY_F(n)        (KEY_F0+(n))    /* keys is reserved. */
        !           267: #define KEY_DL          0510            /* Delete line */
        !           268: #define KEY_IL          0511            /* Insert line */
        !           269: #define KEY_DC          0512            /* Delete character */
        !           270: #define KEY_IC          0513            /* Insert char or enter insert mode */
        !           271: #define KEY_EIC         0514            /* Exit insert char mode */
        !           272: #define KEY_CLEAR       0515            /* Clear screen */
        !           273: #define KEY_EOS         0516            /* Clear to end of screen */
        !           274: #define KEY_EOL         0517            /* Clear to end of line */
        !           275: #define KEY_SF          0520            /* Scroll 1 line forward */
        !           276: #define KEY_SR          0521            /* Scroll 1 line backwards (reverse) */
        !           277: #define KEY_NPAGE       0522            /* Next page */
        !           278: #define KEY_PPAGE       0523            /* Previous page */
        !           279: #define KEY_STAB        0524            /* Set tab */
        !           280: #define KEY_CTAB        0525            /* Clear tab */
        !           281: #define KEY_CATAB       0526            /* Clear all tabs */
        !           282: #define KEY_ENTER       0527            /* Enter or send (unreliable) */
        !           283: #define KEY_SRESET      0530            /* soft (partial) reset (unreliable) */
        !           284: #define KEY_RESET       0531            /* reset or hard reset (unreliable) */
        !           285: #define KEY_PRINT       0532            /* print or copy */
        !           286: #define KEY_LL          0533            /* home down or bottom (lower left) */
        !           287: 
        !           288: #endif MINICURSES
        !           289: 
        !           290: #endif WINDOW

unix.superglobalmegacorp.com

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