Annotation of researchv9/jerq/include/pads.pub, revision 1.1.1.1

1.1       root        1: #ifndef PADS_H
                      2: #define PADS_H
                      3: 
                      4: typedef unsigned short Attrib;
                      5: #ifndef PADS_TERM
                      6: int    strlen(char*),
                      7:        strcmp(char*,char*),
                      8:        read(int,char*,int),
                      9:        write(int,char*,int),
                     10:        ioctl(int,int ...);
                     11: char   *strcpy(char*,char*),
                     12:        *sbrk(int);
                     13: 
                     14: #define PRINTF_TYPES char * ...
                     15: #define PRINTF_ARGS char *fmt ...
                     16: #define FMT(i) ( ((int*)&fmt)[i] )
                     17: #define PRINTF_COPY\
                     18:        (fmt?fmt:""), FMT(1),FMT(2),FMT(3),FMT(4),FMT(5),FMT(6),FMT(7),FMT(8)
                     19: 
                     20: #ifdef TRACE
                     21: #define OK(x)          if( !ok() ) PadsError(__SRC__);
                     22: #define VOK            if( !ok() ) PadsError(__SRC__);
                     23: #define IF_LIVE(x)     { if( x )   PadsError(__SRC__); } if(0)
                     24: #define SRCFILE(f)     static __SRC__ = f;
                     25: typedef int  (*PFI)();
                     26: PFI trace_fcn(char*,int), trace_ptr;
                     27: #define trace  (!(trace_ptr=trace_fcn(__SRC__,__LINE__))) ? 0 : (*trace_ptr)
                     28: #else
                     29: #define OK(x)          { if( !ok() ) return x; }
                     30: #define VOK            { if( !ok() ) return ;  }
                     31: #define IF_LIVE(x)       if( x )
                     32: #define SRCFILE(f)
                     33: #define trace  if( 0 )
                     34: #endif
                     35: 
                     36: class Index {
                     37:        char    pub_filler[2];
                     38: public:
                     39:        int     null();
                     40: };
                     41: extern Index ZIndex;
                     42: #else
                     43: typedef unsigned short Index;
                     44: #define MJR(i) ((i)>>8)
                     45: #define MNR(i) ((i)&0xFF)
                     46: typedef struct Carte Carte;
                     47: typedef enum Protocol Protocol;
                     48: struct Carte {
                     49:        unsigned char   size;           /* host.size != term.size */
                     50:        unsigned char   attrib;
                     51:        short           width;
                     52:        Index           bin[1];
                     53: };
                     54: #endif
                     55: 
                     56: #define        SELECTLINE      ((Attrib)0x0001)
                     57: #define SORTED         ((Attrib)0x0002)
                     58: #define ACCEPT_KBD     ((Attrib)0x0004)
                     59: #define FOLD           ((Attrib)0x0008)
                     60: #define TRUNCATE       ((Attrib)0x0010)
                     61: #define USERCLOSE      ((Attrib)0x0020)
                     62: #define DONT_CUT       ((Attrib)0x0040)
                     63: #define FLUSHLINE      ((Attrib)0x0080)        /* should not be required */
                     64: #define FAKELINE       ((Attrib)0x0100)
                     65: #define USERCUT                ((Attrib)0x0200)
                     66: #define DONT_CLOSE     ((Attrib)0x0400)
                     67: #define NO_TILDE       ((Attrib)0x0800)
                     68: #define DONT_DIRTY     ((Attrib)0x1000)
                     69: 
                     70: #ifndef PADS_TERM
                     71: char *sf(PRINTF_TYPES);
                     72: char *PadsInit(char* = 0);
                     73: void PadsServe(long = 0);
                     74: void NewHelp();
                     75: void NewPadStats();
                     76: class PadRcv;
                     77: typedef void (PadRcv::*Action)(...);
                     78: void Pick(char*,Action,long);
                     79: long UniqueKey();
                     80: Index NumericRange(short,short);
                     81: void PadsWarn(PRINTF_TYPES);
                     82: //extern char *TapTo;
                     83: 
                     84: class PadRcv { friend Remote; friend Pad;
                     85:        short   oid;
                     86:        short   magic;
                     87:        int     isvalid();
                     88: public:
                     89:                PadRcv();
                     90:                ~PadRcv();
                     91:        void    invalidate();
                     92: virtual        int     disc();
                     93: virtual        char    *kbd(char*);
                     94: virtual        char    *help();
                     95: virtual        void    numeric(long);
                     96: virtual        void    userclose();
                     97: virtual        void    cycle();
                     98: virtual        void    linereq(long,Attrib=0);
                     99: virtual        int     accept(Action);
                    100: virtual        void    usercut();
                    101: };
                    102: 
                    103: class Pad {
                    104:        char    pub_filler[24];
                    105: public:
                    106:        int     ok();
                    107:                Pad(PadRcv *);
                    108:                ~Pad();
                    109:        void    alarm(short=0);
                    110:        void    banner(PRINTF_TYPES);
                    111:        void    clear();
                    112:        void    dump();
                    113:        void    error(PRINTF_TYPES);
                    114:        void    insert(class Line&);
                    115:        void    insert(long, Attrib, PadRcv*, Index, PRINTF_TYPES);
                    116:        void    insert(long, Attrib, PadRcv*, class Menu&, PRINTF_TYPES);
                    117:        void    insert(long, Attrib, PRINTF_TYPES);
                    118:        void    insert(long, PRINTF_TYPES);
                    119:        void    lines(long);
                    120:        void    makecurrent();
                    121:        void    makegap(long,long);
                    122:        void    menu(Index);
                    123:        void    menu(class Menu&);
                    124:        void    name(PRINTF_TYPES);
                    125:        void    options(Attrib, Attrib=0);
                    126:        void    tabs(short);
                    127:        void    removeline(long);
                    128:        void    createline(long,long);
                    129:        void    createline(long);
                    130: };
                    131: 
                    132: class Line {
                    133: public:
                    134:        int     ok();
                    135:                Line();
                    136:        PadRcv  *object;
                    137:        char    *text;
                    138:        long    key;
                    139:        Attrib  attributes;
                    140:        Index   carte;
                    141: };
                    142: class Menu {
                    143:        char    pub_filler[8];
                    144: public:
                    145:                Menu();
                    146:                ~Menu();
                    147:                Menu( char*, Action=0, long=0 );
                    148:        Index   index( char* =0, Action=0, long=0 );
                    149:        void    first( char*, Action=0, long=0 );
                    150:        void    first( Index );
                    151:        void    last( char*, Action=0, long=0 );        
                    152:        void    last( Index );  
                    153:        void    sort( char*, Action=0, long=0 );
                    154:        void    sort( Index );
                    155: };
                    156: 
                    157: #endif
                    158: 
                    159: #endif

unix.superglobalmegacorp.com

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