Annotation of coherent/d/usr/lib/scn/READ.ME, revision 1.1.1.1

1.1       root        1: The MWC screen generator is designed to build data structures
                      2: describing background data and input fields form a simple input file.
                      3: 
                      4:        scn xyz
                      5: 
                      6: Produces xyz.c with internal structures xyz_data and xyz_locs as well
                      7: as any defined fields. It also produces an xyz.h file with externs to
                      8: those defined fields and an include of scn.h.
                      9: 
                     10: The input file first contains a list of all the fields in order of
                     11: appearence in the screen. This is terminated by a %% line.
                     12: 
                     13: Each input line must contain
                     14:        Field name      A C name for the field. This will normally be built
                     15:                        in the generated .c file.
                     16: 
                     17:        Field Length    The displayed size of the field. One will be added
                     18:                        to this for zero termination on the internal field.
                     19: 
                     20:        Optionaly lines may contain.
                     21:        default string  String is a C string with the starting value of the
                     22:                        field.
                     23: 
                     24:        default field   Field is a C field name where the starting value of
                     25:                        the field may be found.
                     26: 
                     27:        help string     String is a C string displayed at the bottom of the
                     28:                        screen before the field is entered.
                     29: 
                     30:        help field      Field is a field name of a C string displayed at the
                     31:                        bottom of the screen before the field is entered.
                     32: 
                     33:        verify routine  Routine is the C name of a function used to check the
                     34:                        field for validity. A return of 0 means invalid field
                     35:                        a return of non zero means value. A return of -1
                     36:                        triggers the skip factor. A return of -2 finishes the
                     37:                        screen as though ctl-z had been entered.
                     38:  
                     39:        skip number     Number is the number of fields to skip if the verify
                     40:                        field returns -1.
                     41: 
                     42:        external        Means the field definition for this field is elsewhere
                     43:                        and prevents scn from building one in it's .c file.
                     44: 
                     45:        long            Means that the field is arbitrairly long, its field
                     46:                        defination will be a char *, and it will be malloc()ed
                     47:                        as needed.
                     48: 
                     49:        readonly        Means the field is readonly.
                     50: 
                     51: Examples:
                     52: 
                     53: f1 5 default "xyz", verify ver1        # comment to end of line
                     54: f2 5 verify ver2
                     55: f3 5 verify yNo skip 1 \
                     56:        help "Enter n to skip next field"
                     57: f4 5
                     58: 
                     59: Often it is convienient to input data into arrays of fields.
                     60: 
                     61: do 3   
                     62: expect 20
                     63: send 20
                     64: done
                     65: 
                     66: Says that there are 3 expect and send fields. This generates 
                     67: char expect[3][21];
                     68: char send[3][21];
                     69: 
                     70: While inside a do group is is legal to use a skip factor of 'group'.
                     71: scn will replace this with the number of fields required to skip out
                     72: of the current do group.
                     73: 
                     74: After %% comes the input screen formatteed exactly as it should appear.
                     75: The beginning of each input field should be marked with a '!'. This
                     76: may be changed with a designator statement.
                     77: 
                     78: desagnator "#"
                     79: Causes the field designator to be # not !. The change is for the entire
                     80: file.
                     81: 
                     82: xyz_data contains the background data for the screen. It is decribed
                     83: by the struct backGrnd in scn.h. Each structure is a line of data
                     84: followed by its screen position. The array of structures ends with a
                     85: data pointer of NULL.
                     86: 
                     87: xyz_locs contains the input field data for the screen. It is described
                     88: by the struct loc in scn.h. It contains a pointer to the input field
                     89: and the row and collumn of the data.
                     90: 
                     91:                Driver Functions.
                     92: 
                     93: setUpScreen(lines, at)
                     94:        This initializes the screen driver and sets up a window for
                     95:        error messages or conversational messages. setUpScreen(2, 22)
                     96:        reserves line 22 and 23 for messages.
                     97: 
                     98: closeUp()
                     99:        Shuts down the screen dirver, always call it at the end of job.
                    100: 
                    101: showError(s, ...)
                    102:        Takes the same format as printf, shows an error message and
                    103:        waits for any key to continue.
                    104: 
                    105: Query(s, ...)
                    106:        Prints a query message waits for any key and returns that key.
                    107: 
                    108: clearArea(row, col, len)
                    109:        Clears the screen at row, col for len.
                    110: 
                    111: showBak(back)
                    112:        Displays screen background. showBak(my_data);
                    113: 
                    114: clearBak(back, locs)
                    115:        Clears the screen background and the area set aside for data.
                    116: 
                    117: showDefs(back, fields)
                    118:        Show the background and all default data. showDefs(my_data, my_locs);
                    119: 
                    120: scnDriv(back, fields)
                    121:        Show the background and get all data.
                    122: 
                    123: getAll(fields)
                    124:        Get and verify all data fields.
                    125: 
                    126: getField(fields, field)
                    127:        Get one field. getField(my_locs, myString);
                    128:        myString must be a field name in your screen file.
                    129: 
                    130: putField(fields, field)
                    131:        Display one field. putField(my_locs, myString);
                    132:        myString must be a field name in your screen file.
                    133: 
                    134: numeric(str)
                    135:        Returns 1 if str is numeric else 0.
                    136: 
                    137: nonNull(str)
                    138:        Returns 1 if str has some data in it else 0.
                    139: 
                    140: yesNo(str)
                    141:        Returns 1 if str is in [yYnN] else 0.
                    142: 
                    143: noWhite(str)
                    144:        Returns 1 if str contains no whitespace else 0
                    145: 
                    146: noVerify(str)
                    147:        Returns 1. This is used where no verify routine is given.
                    148: 
                    149: checkEnd(str)
                    150:        Returns -1 for a null field else 1. This is used for the
                    151:        entry of long fields.

unix.superglobalmegacorp.com

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