Annotation of 43BSD/ucb/tn3270/options.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  *     Copyright 1984, 1985 by the Regents of the University of
                      3:  *     California and by Gregory Glenn Minshall.
                      4:  *
                      5:  *     Permission to use, copy, modify, and distribute these
                      6:  *     programs and their documentation for any purpose and
                      7:  *     without fee is hereby granted, provided that this
                      8:  *     copyright and permission appear on all copies and
                      9:  *     supporting documentation, the name of the Regents of
                     10:  *     the University of California not be used in advertising
                     11:  *     or publicity pertaining to distribution of the programs
                     12:  *     without specific prior permission, and notice be given in
                     13:  *     supporting documentation that copying and distribution is
                     14:  *     by permission of the Regents of the University of California
                     15:  *     and by Gregory Glenn Minshall.  Neither the Regents of the
                     16:  *     University of California nor Gregory Glenn Minshall make
                     17:  *     representations about the suitability of this software
                     18:  *     for any purpose.  It is provided "as is" without
                     19:  *     express or implied warranty.
                     20:  */
                     21: 
                     22: /* this file contains the definitions, initialization, and processing of
                     23:        commands to handle the various local options (APL ON, etc.)
                     24:  */
                     25: 
                     26: #include "options.h"
                     27: 
                     28: OptInit()
                     29: {
                     30:     register int i;
                     31: 
                     32:     OptAPLmode = 0;
                     33:     OptNullProcessing = 1;             /* improved null processing */
                     34:     OptZonesMode = 0;          /* zones mode off */
                     35:     OptEnterNL = 0;            /* regular enter/new line keys */
                     36:     OptColFieldTab = 0;                /* regular column/field tab keys */
                     37:     OptPacing = 1;                     /* do pacing */
                     38:     OptAlphaInNumeric = 0;             /* allow alpha in numeric fields */
                     39:     for (i = 0; i < sizeof OptColTabs; i++) {
                     40:        OptColTabs[i] = ((i%8) == 0);   /* every 8 columns */
                     41:     }
                     42:     OptHome = 0;
                     43:     OptLeftMargin = 0;
                     44:     OptWordWrap = 0;
                     45: }
                     46: 
                     47: OptOrder(pointer, count, control)
                     48: char *pointer;
                     49: int count;
                     50: int control;
                     51: {
                     52:     int i, j, character, origCount;
                     53: 
                     54:     origCount = count;
                     55: 
                     56:     if (count == 0) {
                     57:        return(0);
                     58:     }
                     59:     character = *pointer&0xff;
                     60:     pointer++;
                     61:     count--;
                     62:     switch (character) {
                     63:     case 0xa0:
                     64:        OptAPLmode = 1;
                     65:        break;
                     66:     case 0x61:
                     67:        OptAPLmode = 0;
                     68:        break;
                     69:     case 0x95:
                     70:        OptNullProcessing = 0;
                     71:        break;
                     72:     case 0xd5:
                     73:        OptNullProcessing = 1;
                     74:        break;
                     75:     case 0xa9:
                     76:        OptZonesMode = 1;
                     77:        break;
                     78:     case 0xe9:
                     79:        OptZonesMode = 0;
                     80:        break;
                     81:     case 0x85:
                     82:        OptEnterNL = 1;
                     83:        break;
                     84:     case 0xc5:
                     85:        OptEnterNL = 0;
                     86:        break;
                     87:     case 0x83:
                     88:        OptColFieldTab = 1;
                     89:        break;
                     90:     case 0xc3:
                     91:        OptColFieldTab = 0;
                     92:        break;
                     93:     case 0x97:
                     94:        OptPacing = 0;
                     95:        break;
                     96:     case 0xd7:
                     97:        OptPacing = 1;
                     98:        break;
                     99:     case 0xa5:
                    100:        OptAlphaInNumeric = 1;
                    101:        break;
                    102:     case 0xe5:
                    103:        OptAlphaInNumeric = 0;
                    104:        break;
                    105:     case 0xe3:
                    106:        if (!control && count < 30) {
                    107:            return(0);          /* want more! */
                    108:        }
                    109:        for (i = 0; i < sizeof OptColTabs; i++) {
                    110:            OptColTabs[i] = 0;
                    111:        }
                    112:        if (!count) {
                    113:            break;
                    114:        }
                    115:        j = (*pointer&0xff)-0x40;
                    116:        count--;
                    117:        pointer++;
                    118:        if (j < 0 || j >= 24) {
                    119:            break;
                    120:        }
                    121:        OptHome = j;
                    122:        if (!count) {
                    123:            break;
                    124:        }
                    125:        j = (*pointer&0xff)-0x40;
                    126:        count--;
                    127:        pointer++;
                    128:        if (j < 0 || j >= 80) {
                    129:            break;
                    130:        }
                    131:        OptLeftMargin = j;
                    132:        if (!count) {
                    133:            break;
                    134:        }
                    135:        i = count;
                    136:        if (i > 28) {
                    137:            i = 28;
                    138:        }
                    139:        while (i) {
                    140:            j = (*pointer&0xff)-0x40;
                    141:            if (j < 0 || j >= sizeof OptColTabs) {
                    142:                break;
                    143:            }
                    144:            OptColTabs[j] = 1;
                    145:            i --;
                    146:            pointer++;
                    147:            count--;
                    148:        }
                    149:        break;
                    150:     case 0xa6:
                    151:        OptWordWrap = 1;
                    152:        break;
                    153:     case 0xe6:
                    154:        OptWordWrap = 0;
                    155:        break;
                    156:     default:
                    157:        break;
                    158:     }
                    159:     return(origCount - count);
                    160: }

unix.superglobalmegacorp.com

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