home *** CD-ROM | disk | FTP | other *** search
- From: pjc@pcbox.UUCP (Paul J. Condie)
- Newsgroups: alt.sources
- Subject: menu(1) part 8 of 11
- Message-ID: <430@pcbox.UUCP>
- Date: 6 Apr 90 17:55:24 GMT
-
-
- #!/bin/sh
- # this is part 8 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file utilities.d/libgeti.d/GetInput.c continued
- #
- CurArch=8
- if test ! -r s2_seq_.tmp
- then echo "Please unpack part 1 first!"
- exit 1; fi
- ( read Scheck
- if test "$Scheck" != $CurArch
- then echo "Please unpack part $Scheck next!"
- exit 1;
- else exit 0; fi
- ) < s2_seq_.tmp || exit 1
- echo "x - Continuing file utilities.d/libgeti.d/GetInput.c"
- sed 's/^X//' << 'SHAR_EOF' >> utilities.d/libgeti.d/GetInput.c
- X /*
- X ** Toggle between typeover/insert mode.
- X */
- X insertmode = (insertmode) ? FALSE : TRUE;
- X break;
- X
- X case KEY_SAVE:
- X ScrnFile(win, LINES, COLS) ;
- X clearok(win, TRUE) ;
- X wmove(win, row, col) ;
- X break;
- X
- X case KEY_PRINT:
- X ScrnPrnt(win, LINES, COLS, fldErrRow) ;
- X clearok(win, TRUE);
- X wmove(win, row, col) ;
- X continue ;
- X
- X case KEY_BACKSPACE:
- X if (col > colStart)
- X {
- X wattrset(win, fldAttrib) ;
- X mvwaddch(win, rowStart, --col, ' ') ;
- X wattrset(win, 0) ;
- X wmove(win, rowStart, col) ;
- X }
- X else
- X BELL;
- X break ;
- X
- X case KEY_RETURN:
- X case KEY_ENTER:
- X case KEY_DOWN:
- X case KEY_UP:
- X case KEY_TAB:
- X case KEY_BTAB:
- X case KEY_ACCEPT:
- X /*
- X ** bug fix - 9/26/86 pjc
- X ** if (col == colend) byteskeyed was not
- X ** being counted.
- X ** Determine number of bytes keyed by user.
- X */
- X bytesKeyed = 0;
- X for (i = 0; i < strlen (charKeyed); i++)
- X if (charKeyed[i] == 'Y')
- X bytesKeyed++;
- X
- X if (fldCharType == SET || fldCharType == MENU)
- X {
- X col = colEnd ;
- X wmove(win, rowStart, col) ;
- X notFinished = FALSE ;
- X break ;
- X }
- X
- X if (col == colEnd)
- X {
- X notFinished = FALSE ;
- X break ;
- X }
- X
- X if (initFld)
- X {
- X col = colEnd - 1 ;
- X while (*(charKeyed+col-colStart) != 'Y')
- X col--;
- X wmove(win, rowStart, col) ;
- X }
- X
- X colMove = colStart ;
- X bytesKeyed = 0 ;
- X while (colMove < colEnd)
- X {
- X if (*(charKeyed+colMove-colStart)=='Y')
- X {
- X col = colMove ;
- X bytesKeyed++;
- X }
- X colMove++;
- X }
- X while (*(charKeyed + ++col - colStart) == 'M')
- X ;
- X wmove(win, rowStart, col) ;
- X
- X if (bytesKeyed == 0 && mustEnter)
- X {
- X BELL;
- X CLEARROW (fldErrRow);
- X wattrOn (stdscr, A_REVERSE|A_BOLD);
- X mvwaddstr(stdscr,
- X ((fldErrRow%100) == fldErrRow) ? fldErrRow : fldErrRow/100,
- X ((fldErrRow%100) == fldErrRow) ? 0 : fldErrRow%100,
- X "This is a must enter field.") ;
- X wattrOff (stdscr);
- X wmove(win, rowStart, colStart) ;
- X break ;
- X }
- X
- X if (fldMin > 0 && bytesKeyed > 0 &&
- X bytesKeyed < fldMin)
- X {
- X
- X BELL;
- X CLEARROW (fldErrRow);
- X wattrOn (stdscr, A_REVERSE|A_BOLD);
- X mvwprintw(stdscr, fldErrRow, 1,
- X "The minimum length for this field is: %d keyed %d",
- X fldMin, bytesKeyed) ;
- X wattrOff (stdscr);
- X wmove(win, rowStart, col) ;
- X break ;
- X }
- X
- X if (fldAdjust != NOFILL)
- X AdjField(win, rowStart, colStart,
- X fldAttrib, fldAdjust, colEnd,
- X charKeyed) ;
- X
- X notFinished = FALSE ;
- X break ;
- X
- X default:
- X /* check for control character */
- X if (ch < 32 || ch > 127)
- X {
- X int ch1 ;
- X
- X
- X notFinished = FALSE ;
- X wmove(win, rowStart, colEnd) ;
- X controlKey = ch ;
- X break;
- X }
- X
- X if (fldCharType == SET)
- X {
- X if (fldType == CHAR)
- X {
- X /* pjc - 7/87
- X ** match ch to the first char
- X ** in set values
- X */
- X int rc; /* return code */
- X
- X Fld->strVal[0] = ch;
- X Fld->strVal[1] = '\0';
- X rc = FindSet(Fld, fldRange,
- X fldLength, fldType);
- X setNumb = rc == -1 ? ++setNumb : rc;
- X }
- X else
- X setNumb++;
- X
- X ShowSet(win, rowStart, colStart,
- X fldAttrib, fldRange, fldLength,
- X &setNumb, colEnd, charKeyed,
- X origAttr) ;
- X wmove(win, rowStart, colStart);
- X break;
- X }
- X
- X if (fldCharType == MENU)
- X {
- X junk = popmenu (menuid);
- X setNumb = junk >= 1 ? junk-1 : setNumb;
- X strcpy (Fld->strVal, menu[setNumb]);
- X ShowSet(win, rowStart, colStart,
- X fldAttrib, fldRange, fldLength,
- X &setNumb, colEnd, charKeyed,
- X origAttr) ;
- X wmove(win, rowStart, colStart);
- X touchwin (stdscr);
- X touchwin (win);
- X break;
- X }
- X
- X if (col == colEnd)
- X BELL;
- X else
- X notFinished = ShowChar (win, rowStart,
- X colStart, fldAttrib, fldMask,
- X fldRange, fldLength,
- X fldCharType, fldDispRow,
- X fldType, keyStream, fldErrRow,
- X charKeyed,colEnd, &ch,origAttr);
- X break ;
- X
- X } /* end switch */
- X } while (notFinished) ;
- X
- X if ( controlKey && bytesKeyed == 0)
- X {
- X ReDispFld(win, rowStart, colStart, -1, fldMask,
- X fldRange, fldLength, fldCharType, fldType,
- X fldStr, colEnd, charKeyed, setNumb,
- X origAttr) ;
- X break ;
- X }
- X else
- X if ( IsFldOk(win, rowStart, colStart, Fld, fldMask,
- X fldRange, fldLength, fldCharType, fldType,
- X mustEnter, fldErrRow, fldDispRow, colEnd,
- X fldStr, charKeyed, setNumb, origAttr) )
- X break ;
- X else
- X {
- X notFinished = TRUE ;
- X continue ;
- X }
- X
- X } /* end while (TRUE) */
- X
- X free(fldStr) ;
- X free(charKeyed) ;
- X
- X return (ch);
- X}
- SHAR_EOF
- echo "File utilities.d/libgeti.d/GetInput.c is complete"
- chmod 0444 utilities.d/libgeti.d/GetInput.c || echo "restore of utilities.d/libgeti.d/GetInput.c fails"
- echo "x - extracting utilities.d/libgeti.d/GetSetLen.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/GetSetLen.c &&
- Xstatic char Sccsid[] = "@(#)GetSetLen.c 1.3 DeltaDate 1/22/90 ExtrDate 1/22/90";
- X
- X/*
- X** GetSetLen()
- X** Determines the length of the longest element in the set (range).
- X** ex. "HI,LOW,MEDIUM" returns (6) as the longest length.
- X** This information is used to determine how much memory I need to allocate
- X** to hold the element. Does not include a null terminator.
- X**
- X** RETURNS:
- X** length of the longest element in set.
- X*/
- X
- X#include "GetInput.h"
- X
- XGetSetLen(fldRange)
- X char *fldRange ; /* range of valid values for output */
- X{
- X int len,
- X fldLength ;
- X char *fldWrk ;
- X
- X
- X fldLength = 0 ;
- X
- X fldWrk = fldRange ;
- X
- X while (*fldWrk != '\0') {
- X
- X len = 0 ;
- X
- X while (*fldWrk != ',' && *fldWrk != '\0') {
- X len++ ; /* length of this element */
- X fldWrk++ ; /* fldRange without this element */
- X }
- X
- X if (len > fldLength) /* is this element longer ? */
- X fldLength = len ;
- X
- X /* set pointer to next element in set */
- X while (*fldWrk == ',' || *fldWrk == ' ')
- X fldWrk++ ;
- X }
- X
- X return (fldLength) ;
- X}
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/GetSetLen.c || echo "restore of utilities.d/libgeti.d/GetSetLen.c fails"
- echo "x - extracting utilities.d/libgeti.d/InitGetI.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/InitGetI.c &&
- X#ifndef LINT
- Xstatic char Sccsid[] = "%W% DeltaDate %G% ExtrDate %H%";
- X#endif
- X
- X/*
- X** InitGetI()
- X** All this does is define some global variables for the keys
- X** used in GetInput(3) and assign some default values.
- X*/
- X
- X#include <curses.h>
- X#include "GetInput.h"
- X
- Xint KeyReturn = '\r';
- Xint KeyDown = 10; /* ^j */
- Xint KeyUp = 11; /* ^k */
- Xint KeyTab = '\t';
- Xint KeyBTab = -1;
- Xint KeyAccept = 1; /* ^a */
- X
- Xint KeyBeg = 2;
- Xint KeyEnd = 5;
- Xint KeyRight = 12; /* ^l */
- Xint KeyLeft = 8; /* ^h */
- Xint KeyBackspace = '\b'; /* \b */
- Xint KeyEOL = 4; /* ^d */
- Xint KeyDL = 3; /* ^c */
- Xint KeyDC = 24; /* ^x */
- Xint KeyIC = 20; /* ^t */
- X
- Xint KeyHelp = '?';
- Xint KeyTOC = 20; /* ^t */
- Xint KeyRedraw = 18; /* ^r */
- Xint KeySave = 6; /* ^f */
- Xint KeyPrint = 16; /* ^p */
- Xint KeyCancel = 27; /* esc */
- X
- X
- Xvoid
- XInitGetI()
- X{
- X/*
- X char *tName, *lName, *getenv() ;
- X
- X lName = longname() ;
- X tName = getenv("TERM") ;
- X
- X if (strcmp(tName, "5425") == 0)
- X Load5425 () ;
- X else
- X if (strcmp (tName, "sun") == 0)
- X LoadSun ();
- X else
- X LoadAnsi() ;
- X*/
- X}
- SHAR_EOF
- chmod 0644 utilities.d/libgeti.d/InitGetI.c || echo "restore of utilities.d/libgeti.d/InitGetI.c fails"
- echo "x - extracting utilities.d/libgeti.d/IsDate.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/IsDate.c &&
- Xstatic char Sccsid[] = "@(#)IsDate.c 1.1 DeltaDate 8/30/87 ExtrDate 1/22/90";
- X#include <stdio.h>
- X#include <time.h>
- X#include "GetInput.h"
- X
- XIsDate (str, mask)
- X char *str ;
- X char *mask ;
- X{
- X char cmdstr[5] ;
- X int year, month, day ;
- X static int century = 0 ;
- X long clock ;
- X
- X struct tm *localtime(), *Tm ;
- X
- X if (century == 0) {
- X
- X clock = time((long *) 0) ;
- X Tm = localtime (&clock) ;
- X century = 1900 ;
- X if (Tm->tm_year > 100)
- X century += (Tm->tm_year / 100) * 100 ;
- X
- X }
- X
- X if (mask == NULL) {
- X
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X month = atoi (cmdstr) ;
- X
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X day = atoi (cmdstr) ;
- X
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X year = atoi (cmdstr) + century ;
- X
- X } else {
- X
- X while ( *mask != '\0' ) {
- X
- X while ( *mask != 'M' && *mask != 'D' && *mask != 'Y' )
- X mask++ ;
- X
- X switch (*mask) {
- X case 'M':
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X month = atoi (cmdstr) ;
- X mask += 2 ;
- X break ;
- X case 'D':
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X day = atoi (cmdstr) ;
- X mask += 2 ;
- X break ;
- X case 'Y':
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X mask += 2 ;
- X if (*mask == 'Y') {
- X cmdstr[2] = *str++ ;
- X cmdstr[3] = *str++ ;
- X cmdstr[4] = '\0' ;
- X year = atoi (cmdstr) ;
- X mask += 2 ;
- X } else {
- X cmdstr[2] = '\0' ;
- X year = atoi (cmdstr) + century ;
- X }
- X break ;
- X }
- X }
- X }
- X return (valid_date (year, month, day)) ;
- X}
- X
- X
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/IsDate.c || echo "restore of utilities.d/libgeti.d/IsDate.c fails"
- echo "x - extracting utilities.d/libgeti.d/IsFldOk.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/IsFldOk.c &&
- Xstatic char Sccsid[] = "@(#)IsFldOk.c 1.3 DeltaDate 1/22/90 ExtrDate 1/22/90";
- X
- X#include <curses.h>
- X#include <ctype.h>
- X#include "GetInput.h"
- X
- X
- XIsFldOk (win, row, colStart, Fld, fldMask, fldRange, fldLength, fldCharType,
- X fldType, mustEnter, fldErrRow, fldDispRow, colEnd, fldStr, charKeyed,
- X setNumb, origAttr)
- X
- X WINDOW *win ; /* Window */
- X int row ;
- X int colStart ;
- X FldUnPointer Fld ; /* Pointer to union for field */
- X char *fldMask ; /* mask for character string */
- X char *fldRange ; /* range of valid values for output */
- X unsigned fldLength ; /* Maximum length of output */
- X char fldCharType ; /* type of character */
- X char fldType ; /* type of field */
- X int mustEnter ; /* must enter - boolean */
- X int fldErrRow ; /* where to display error message */
- X int fldDispRow ; /* where to display help message */
- X int colEnd ; /* last character to display */
- X char *fldStr ; /* field string */
- X char charKeyed[] ; /* characters in the field keyed */
- X int setNumb ; /* for SET & MENU */
- X int origAttr[] ; /* origianl attributes for this fld */
- X{
- X int colLast, col ;
- X double atof() ;
- X char *fldWrk ;
- X
- X
- X getyx(win, row, col) ;
- X colLast = col - 1 ;
- X
- X col = colStart ;
- X
- X fldWrk = fldStr ;
- X
- X while (col < colEnd)
- X {
- X
- X if (charKeyed [col - colStart] == 'Y')
- X *fldWrk++ = mvwinch(win, row, col) & A_CHARTEXT ;
- X col++;
- X }
- X
- X *fldWrk = '\0' ;
- X
- X switch (fldType)
- X
- X{
- X case CHAR:
- X case DATE:
- X case TIME:
- X strcpy (Fld->strVal, fldStr) ;
- X break ;
- X
- X case INT:
- X *Fld->intVal = atoi(fldStr) ;
- X break ;
- X
- X case SHORT:
- X *Fld->shortVal = atoi(fldStr) ;
- X break ;
- X
- X case LONG:
- X *Fld->longVal = atoi(fldStr) ;
- X break ;
- X
- X case FLOAT:
- X *Fld->floatVal = atof(fldStr) ;
- X break ;
- X
- X case DOUBLE:
- X case MONEY:
- X *Fld->doubleVal = atof(fldStr) ;
- X break ;
- X }
- X
- X if (fldStr == NULL && !mustEnter)
- X return(1) ;
- X
- X if (fldCharType == DATE &&
- X ((mustEnter && !IsDate (fldStr, fldMask)) ||
- X (!mustEnter && strcmp(fldStr, "000000") != 0 &&
- X strcmp(fldStr, " ") != 0 &&
- X fldStr[0] != '\0' &&
- X !IsDate (fldStr, fldMask))))
- X {
- X BELL;
- X CLEARROW (fldErrRow);
- X wattrOn (stdscr, A_REVERSE|A_BOLD);
- X mvwaddstr (stdscr,
- X ((fldErrRow%100) == fldErrRow) ? fldErrRow : fldErrRow/100,
- X ((fldErrRow%100) == fldErrRow) ? 0 : fldErrRow%100,
- X "Invalid Date") ;
- X wattrOff (stdscr);
- X wmove (win, row, colStart) ;
- X return (0) ;
- X }
- X
- X if (fldCharType == TIME &&
- X ((mustEnter && !IsTime (fldStr, fldMask)) ||
- X (!mustEnter && strcmp(fldStr, "000000") != 0 &&
- X strcmp(fldStr, " ") != 0 &&
- X fldStr[0] != '\0' &&
- X !IsTime (fldStr, fldMask))))
- X {
- X BELL;
- X CLEARROW (fldErrRow);
- X wattrOn (stdscr, A_REVERSE|A_BOLD);
- X mvwaddstr (stdscr,
- X ((fldErrRow%100) == fldErrRow) ? fldErrRow : fldErrRow/100,
- X ((fldErrRow%100) == fldErrRow) ? 0 : fldErrRow%100,
- X "Invalid Time") ;
- X wattrOff (stdscr);
- X wmove (win, row, colStart) ;
- X return (0) ;
- X }
- X
- X if (fldCharType == STATE && !IsState (fldStr))
- X {
- X BELL;
- X CLEARROW (fldErrRow);
- X wattrOn (stdscr, A_REVERSE|A_BOLD);
- X mvwaddstr (stdscr,
- X ((fldErrRow%100) == fldErrRow) ? fldErrRow : fldErrRow/100,
- X ((fldErrRow%100) == fldErrRow) ? 0 : fldErrRow%100,
- X "Invalid State") ;
- X wattrOff (stdscr);
- X wmove (win, row, colStart) ;
- X return (0) ;
- X }
- X
- X if (fldCharType == SET || fldCharType == MENU || fldRange == NULL)
- X {
- X ReDispFld(win, row, colStart, -1, fldMask, fldRange, fldLength,
- X fldCharType, fldType, fldStr, colEnd, charKeyed,
- X setNumb, origAttr) ;
- X return (1) ;
- X }
- X
- X if ( IsRange(Fld, fldLength, fldType, fldRange) )
- X {
- X ReDispFld(win, row, colStart, -1, fldMask, fldRange, fldLength,
- X fldCharType, fldType, fldStr, colEnd, charKeyed,
- X setNumb, origAttr) ;
- X return (1) ;
- X }
- X else
- X {
- X getyx (win, row, col) ;
- X BELL;
- X CLEARROW (fldErrRow);
- X wattrOn (stdscr, A_REVERSE|A_BOLD);
- X mvwprintw (stdscr,
- X ((fldErrRow%100) == fldErrRow) ? fldErrRow : fldErrRow/100,
- X ((fldErrRow%100) == fldErrRow) ? 0 : fldErrRow%100,
- X "[%s] Valid Ranges are: %s", fldStr, fldRange) ;
- X wattrOff (stdscr);
- X wmove (win, row, colLast) ;
- X
- X }
- X
- X return(0) ;
- X
- X}
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/IsFldOk.c || echo "restore of utilities.d/libgeti.d/IsFldOk.c fails"
- echo "x - extracting utilities.d/libgeti.d/IsMask.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/IsMask.c &&
- Xstatic char Sccsid[] = "@(#)IsMask.c 1.2 DeltaDate 1/22/90 ExtrDate 1/22/90";
- X
- X/*
- X** IsMask ()
- X** Determines whether a given character is a mask format character based
- X** upon the field type.
- X** RETURNS:
- X** TRUE character is a mask format character
- X** FALSE this character allows data input
- X*/
- X
- X#include "GetInput.h"
- X
- XIsMask (fldCharType, maskChar)
- X char fldCharType ;
- X char maskChar ;
- X{
- X
- X if ( fldCharType == maskChar)
- X return (0) ;
- X else if (fldCharType == ALPHANUM &&
- X (maskChar == ALPHANUM || maskChar == ALPHA ||
- X maskChar == NUMERIC || maskChar == UPPER ||
- X maskChar == UPPER_AN || maskChar == HEX) )
- X return (0) ;
- X else if (fldCharType == DATE &&
- X (maskChar == 'D' || maskChar == 'M' || maskChar == 'Y'))
- X return (0) ;
- X else if (fldCharType == TIME &&
- X (maskChar == 'I' || maskChar == 'H' || maskChar == 'M'||
- X maskChar == 'S' || maskChar == 'T'))
- X return (0) ;
- X else
- X return (1) ;
- X}
- X
- X
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/IsMask.c || echo "restore of utilities.d/libgeti.d/IsMask.c fails"
- echo "x - extracting utilities.d/libgeti.d/IsRange.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/IsRange.c &&
- Xstatic char Sccsid[] = "@(#)IsRange.c 1.1 DeltaDate 8/30/87 ExtrDate 1/22/90";
- X#include <curses.h>
- X#include <ctype.h>
- X#include <string.h>
- X#include "GetInput.h"
- X
- X#ifndef TRUE
- X# define TRUE 1
- X# define FALSE 0
- X#endif
- X
- X#define FROM 0
- X#define TO 1
- X
- XIsRange (Fld, fldLength, fldType, fldRange)
- X
- XFldUnPointer Fld ;
- Xunsigned int fldLength ;
- Xchar fldType ;
- Xchar *fldRange ;
- X{
- X char *wrk, *wrkAlloc ;
- X char *malloc() ;
- X int testInt, t1, t2, INTFLAG;
- X long testLong ;
- X float testFloat ;
- X double testDouble ;
- X int fromTo ;
- X int fromOk ;
- X int success ;
- X int retCode ;
- X double atof() ;
- X
- X
- X wrkAlloc = malloc (fldLength + 1) ;
- X
- X fromTo = FROM ;
- X success = fromOk = FALSE ;
- X
- X while (TRUE)
- X {
- X wrk = wrkAlloc ;
- X
- X/*
- X** Get a range value to test on.
- X*/
- X do
- X {
- X *wrk++ = *fldRange++;
- X } while (*fldRange != '\0' && *fldRange != ',' && *fldRange != '-') ;
- X
- X *wrk = '\0' ;
- X wrk = wrkAlloc ;
- X
- X switch (fldType)
- X {
- X
- X case CHAR:
- X/*
- X** bug fix - 9/24/86 pjc
- X** range = "1-12" double digit could not handle
- X*/
- X INTFLAG = sscanf (wrk, "%d", &t2);
- X if (INTFLAG) INTFLAG = sscanf (Fld->strVal, "%d", &t1);
- X if (INTFLAG)
- X {
- X retCode = t1 - t2;
- X }
- X else
- X retCode = strcmp (Fld->strVal, wrk);
- X if (retCode == 0 || (fromOk == TRUE && fromTo == TO && retCode < 0))
- X success = TRUE ;
- X else
- X if (fromTo == FROM && retCode > 0)
- X fromOk = TRUE ;
- X break ;
- X
- X case INT:
- X testInt = atoi (wrk) ;
- X if (*Fld->intVal == testInt ||
- X (fromOk == TRUE && fromTo == TO &&
- X *Fld->intVal < testInt) )
- X success = TRUE ;
- X else if (fromTo == FROM &&
- X *Fld->intVal > testInt)
- X fromOk = TRUE ;
- X break ;
- X
- X case LONG:
- X testLong = atol (wrk) ;
- X if (*Fld->longVal == testLong ||
- X (fromOk == TRUE && fromTo == TO &&
- X *Fld->longVal < testLong) )
- X success = TRUE ;
- X else if (fromTo == FROM &&
- X *Fld->longVal > testLong)
- X fromOk = TRUE ;
- X break ;
- X
- X case FLOAT:
- X testFloat = atof (wrk) ;
- X if (*Fld->floatVal == testFloat ||
- X (fromOk == TRUE && fromTo == TO &&
- X *Fld->floatVal < testFloat) )
- X success = TRUE ;
- X else if (fromTo == FROM &&
- X *Fld->floatVal > testFloat)
- X fromOk = TRUE ;
- X break ;
- X
- X case DOUBLE:
- X case MONEY:
- X testDouble = atof (wrk) ;
- X if (*Fld->doubleVal == testDouble ||
- X (fromOk == TRUE && fromTo == TO &&
- X *Fld->doubleVal < testDouble))
- X success = TRUE ;
- X else if (fromTo == FROM &&
- X *Fld->doubleVal > testDouble)
- X fromOk = TRUE ;
- X break ;
- X }
- X
- X if (success)
- X break ;
- X
- X /*
- X **
- X ** Skip to next valid range check
- X **
- X */
- X while (TRUE)
- X {
- X if (*fldRange == '\0')
- X break ;
- X else
- X if (*fldRange == '-')
- X fromTo = TO ;
- X else
- X if (*fldRange == ',')
- X {
- X fromOk = FALSE ;
- X fromTo = FROM ;
- X }
- X
- X if (isprint (*fldRange) && *fldRange != ' ' &&
- X *fldRange != ',' && *fldRange != '-')
- X break ;
- X
- X fldRange++;
- X }
- X
- X if (*fldRange == '\0')
- X break ;
- X
- X }
- X
- X free (wrkAlloc) ;
- X
- X if (success)
- X return (TRUE) ;
- X else
- X return (FALSE) ;
- X}
- X
- X
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/IsRange.c || echo "restore of utilities.d/libgeti.d/IsRange.c fails"
- echo "x - extracting utilities.d/libgeti.d/IsState.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/IsState.c &&
- Xstatic char Sccsid[] = "@(#)IsState.c 1.1 DeltaDate 8/30/87 ExtrDate 1/22/90";
- X#include <string.h>
- X
- X#define MAXSTATES 50
- X
- XIsState (str)
- X char str[] ;
- X{
- X int retCode, count ;
- X
- X static char *states[] = {
- X "AK", "AL", "AR", "AZ", "CA", "CO", "CT", "DE", "FL", "GA",
- X "HI", "IA", "ID", "IL", "IN", "KS", "KY", "LA", "MA", "MD",
- X "ME", "MI", "MN", "MO", "MS", "MT", "NC", "ND", "NE", "NH",
- X "NJ", "NM", "NV", "NY", "OH", "OK", "OR", "PA", "RI", "SC",
- X "SD", "TN", "TX", "UT", "VA", "VT", "WA", "WI", "WV", "WY"
- X } ;
- X
- X
- X count = 0 ;
- X
- X while (count < MAXSTATES) {
- X
- X retCode = strcmp (str, states[count++]) ;
- X
- X if (retCode == 0)
- X return (1) ;
- X
- X if (retCode < 0)
- X return (0) ;
- X
- X }
- X
- X return (0) ;
- X}
- X
- X
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/IsState.c || echo "restore of utilities.d/libgeti.d/IsState.c fails"
- echo "x - extracting utilities.d/libgeti.d/IsTime.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/IsTime.c &&
- Xstatic char Sccsid[] = "@(#)IsTime.c 1.1 DeltaDate 8/30/87 ExtrDate 1/22/90";
- X#include <stdio.h>
- X#include "GetInput.h"
- X
- XIsTime(str, mask)
- X char *str ;
- X char *mask ;
- X{
- X char cmdstr[5] ;
- X int i ;
- X
- X if (mask == NULL) {
- X
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X i = atoi (cmdstr) ;
- X if(i < 0 || i > 12)
- X return(0) ;
- X
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X i = atoi (cmdstr) ;
- X if(i < 1 || i > 59)
- X return(0) ;
- X
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X i = atoi (cmdstr) ;
- X if(i < 1 || i > 59)
- X return(0) ;
- X
- X } else {
- X
- X while ( *mask != '\0' ) {
- X
- X while ( *mask != 'I' && *mask != 'H' && *mask != 'M' &&
- X *mask != 'S' && *mask != 'T')
- X mask++ ;
- X
- X switch (*mask) {
- X case 'H':
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X i = atoi (cmdstr) ;
- X if(i < 1 || i > 12)
- X return(0) ;
- X mask += 2 ;
- X break ;
- X case 'M':
- X case 'S':
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X i = atoi (cmdstr) ;
- X if(i < 0 || i > 59)
- X return(0) ;
- X mask += 2 ;
- X break ;
- X case 'T':
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X i = atoi (cmdstr) ;
- X if(i < 0 || i > 99)
- X return(0) ;
- X mask += 2 ;
- X break ;
- X case 'I':
- X cmdstr[0] = *str++ ;
- X cmdstr[1] = *str++ ;
- X cmdstr[2] = '\0' ;
- X i = atoi (cmdstr) ;
- X if(i < 0 || i > 23)
- X return(0) ;
- X mask += 2 ;
- X break ;
- X }
- X }
- X }
- X return(1) ;
- X}
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/IsTime.c || echo "restore of utilities.d/libgeti.d/IsTime.c fails"
- echo "x - extracting utilities.d/libgeti.d/ReDispFld.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/ReDispFld.c &&
- Xstatic char Sccsid[] = "@(#)ReDispFld.c 1.3 DeltaDate 1/22/90 ExtrDate 1/22/90";
- X#include <curses.h>
- X#include "GetInput.h"
- X#include <ctype.h>
- X
- XReDispFld (win, rowStart, colStart, fldAttrib, fldMask, fldRange, fldLength,
- X fldCharType, fldType, fldStr, colEnd, charKeyed, setNumb,
- X origAttr)
- X WINDOW *win ; /* Window */
- X int rowStart ;
- X int colStart ;
- X int fldAttrib ; /* field attribute */
- X char *fldMask ; /* mask for character string */
- X char *fldRange ; /* allowable range for field */
- X unsigned fldLength ; /* Maximum length of output */
- X char fldCharType ; /* type of character */
- X char fldType ; /* type of field */
- Xchar *fldStr ; /* the field without the mask chars */
- Xint colEnd ; /* last column for display */
- Xchar charKeyed[] ; /* characters keyed */
- Xint setNumb ; /* for SET & MENU */
- Xint origAttr[] ; /* original attributes for field */
- X{
- X int col ;
- X
- X char *fldWrk ;
- X
- X if (fldCharType == SET || fldCharType == MENU )
- X ShowSet(win, rowStart, colStart, -1, fldRange, fldLength, &setNumb, colEnd, charKeyed, origAttr) ;
- X else {
- X if (fldAttrib != -1)
- X wattrset(win, fldAttrib) ;
- X col = colStart ;
- X wmove(win, rowStart, col) ;
- X fldWrk = fldStr ;
- X
- X if (fldAttrib == -1 && fldType == MONEY) {
- X int decimalFound, decimalPlaces ;
- X
- X decimalFound = FALSE ;
- X decimalPlaces = 0 ;
- X
- X while (*fldWrk != '\0') {
- X if (*fldWrk == '.')
- X decimalFound = TRUE ;
- X else if (decimalFound)
- X decimalPlaces++;
- X fldWrk++;
- X }
- X if (!decimalFound)
- X strcat(fldStr, ".00") ;
- X else if (decimalFound && decimalPlaces < 2) {
- X if (decimalPlaces == 0)
- X strcat(fldStr, "00") ;
- X else if (decimalPlaces == 1)
- X strcat(fldStr, "0") ;
- X }
- X
- X fldWrk = fldStr ;
- X }
- X
- X while (col < colEnd && *fldWrk != '\0') {
- X if (fldAttrib == -1)
- X wattrset(win, origAttr[col - colStart] ) ;
- X if (charKeyed [col - colStart] == 'M')
- X mvwaddch(win, rowStart, col, *(fldMask + col - colStart) ) ;
- X else
- X mvwaddch(win, rowStart, col, *fldWrk++) ;
- X col++;
- X };
- X
- X if (strlen(fldStr) < fldLength) {
- X int bytesFill ;
- X
- X bytesFill = fldLength - strlen(fldStr) ;
- X while (bytesFill) {
- X if (fldAttrib == -1)
- X wattrset(win, origAttr[col - colStart]);
- X if (charKeyed [col - colStart] != 'M') {
- X bytesFill--;
- X mvwaddch(win, rowStart, col++, ' ') ;
- X } else {
- X mvwaddch(win, rowStart, col, *(fldMask + col - colStart) ) ;
- X col++;
- X }
- X }
- X }
- X
- X while (col < colEnd)
- X {
- X if (charKeyed [col - colStart] != 'M')
- X mvwaddch(win, rowStart, col, ' ') ;
- X else
- X mvwaddch(win, rowStart, col, *(fldMask + col - colStart) ) ;
- X col++;
- X }
- X
- X wattrset(win, 0) ;
- X }
- X
- X return(0) ;
- X}
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/ReDispFld.c || echo "restore of utilities.d/libgeti.d/ReDispFld.c fails"
- echo "x - extracting utilities.d/libgeti.d/RingMenu.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/RingMenu.c &&
- X#ifndef LINT
- Xstatic char Sccsid[] = "@(#)RingMenu.c 1.3 DeltaDate 2/3/90 ExtrDate 2/3/90";
- X#endif
- X
- X/***********************************************************************
- X#############################################################################
- X# This software/documentation is the proprietary trade secret and property #
- X# of Pacific Bell. Receipt or possession of it does not convey any rights #
- X# to divulge, reproduce, use or allow others to use it without the specific #
- X# written authorization of Pacific Bell. Use must conform strictly to #
- X# the license agreement between user and Pacific Bell. #
- X#############################################################################
- X
- X Program: RingMenu.c
- X Purpose: To display a Ring Menu, and prompt for option.
- X Options are to be selected with first capital
- X letter match, or use the cursor position key
- X to move to the right option and depress RETURN.
- X Help message for current option is always displayed
- X the line below the option line.
- X
- X Synopsis: RingMenu (win, line, opt, title, opt_table )
- X WINDOW *win; /* curses screen
- X unsigned short line ; /* line option on
- X unsigned short opt ; /* default option pos
- X char *title; /* menu title
- X char *opt_table[][2]; /* option table
- X /* name and description
- X Return: 1 - MAXOPTIONS
- X
- X Author: Sam Lok
- X Date Written: March, 1989.
- X Installation: Pacific Bell
- X Modification History:
- X [Plx log name of programmer, date and description]
- X
- X***********************************************************************/
- X
- X#include <curses.h>
- X#include <term.h>
- X#include "GetInput.h"
- X#include "keys.h"
- X
- X#define MSGLINE 23
- X#define MAXOPTIONS 20
- Xstruct ring /* the ring */
- X{
- X short column ; /* column position */
- X short page ; /* page number */
- X} menu[MAXOPTIONS] ;
- Xshort Noptions ; /* total number of options */
- X
- XRingMenu (win, line, opt, title, opt_table )
- X WINDOW *win;
- X char *opt_table[][2] ;
- X char *title ;
- X unsigned short line, opt ;
- X{
- X register short i, ii, ch ;
- X
- X /*
- X * Initializations
- X */
- X putp( cursor_invisible ) ; /* turn off cursor if possible */
- X for ( i=0; /* count # option */
- X *opt_table[i]!=NULL && i<MAXOPTIONS;
- X i++ )
- X ;
- X Noptions = i;
- X
- X /* initialize ring menu */
- X /*
- X * first option
- X */
- X if ( title != NULL )
- X menu[0].column = strlen( title ) + 2 ;
- X else
- X menu[0].column = 0 ;
- X menu[0].page = 1 ;
- X /*
- X * beyond the 1st option
- X */
- X for ( i=1; i<Noptions ; i++ )
- X {
- X menu[i].page = menu[i-1].page ;
- X menu[i].column = menu[i-1].column
- X + strlen( opt_table[i-1][0] ) + 2 ;
- X /*
- X * about to roll off the right edge?
- X */
- X if ( menu[i].column+strlen( opt_table[i][0] ) > COLS ||
- X ( i < Noptions-1 &&
- X menu[i].column+strlen( opt_table[i][0] )+5 > COLS ) )
- X {
- X menu[i].page++ ; /* bump a page */
- X if ( title != NULL ) /* and wrap around */
- X menu[i].column = strlen( title ) + 7 ;
- X else
- X menu[i].column = 5 ;
- X }
- X }
- X
- X i = ( opt<=Noptions && opt>0 ) ? opt-1 : 0 ; /* set highlight */
- X
- X /*
- X * The LOOP
- X */
- X while ( TRUE )
- X {
- X _showring( win, line, title, i, opt_table ) ;
- X ch = wgetch( win ) ; /* get input */
- X
- X if ( ch == KeyBackspace ) ch = KEY_BACKSPACE ;
- X if ( ch == KeyHelp ) ch = KEY_HELP ;
- X if ( ch == KeyRedraw ) ch = KEY_REFRESH ;
- X if ( ch == KeyPrint ) ch = KEY_PRINT ;
- X
- X switch (ch)
- X {
- X case KEY_UP:
- X case KEY_LEFT:
- X case KEY_CTLK:
- X case KEY_CTLH:
- X case KEY_BACKSPACE:
- X case KEY_BTAB:
- X if ( --i < 0 )
- X i = Noptions - 1 ;
- X break ;
- X
- X case KEY_DOWN:
- X case KEY_RIGHT:
- X case KEY_CTLJ:
- X case KEY_CTLL:
- X case ' ':
- X case KEY_TAB:
- X if ( ++i >= Noptions )
- X i = 0 ;
- X break ;
- X
- X case KEY_RETURN:
- X case KEY_ENTER:
- X _wclrring( win, line ) ;
- X putp( cursor_visible ) ;
- X return( i+1 ) ;
- X break ;
- X
- X case KEY_HELP:
- X /*
- X ShowHelp( GENERAL, SPECIALKEYS, MSGLINE ) ;
- X */
- X break ;
- X
- X case KEY_REFRESH:
- X clearok( win, TRUE ) ;
- X break ;
- X
- X case KEY_PRINT:
- X ScrnPrnt(win, LINES, COLS, MSGLINE) ;
- X clearok(win, TRUE ) ;
- X break ;
- X
- X default:
- X for ( ii=0; ii<=Noptions-1; ii++ )
- X {
- X /* upper char match */
- X if ( strchr( opt_table[ii][0], toupper(ch) ) != NULL )
- X {
- X _wclrring( win, line ) ;
- X putp( cursor_visible ) ;
- X return ( ii+1 );
- X }
- X }
- X flash() ;
- X break;
- X }
- X }
- X}
- X
- X/*
- X * _wclrring: Erase the ring menu from screen
- X */
- X_wclrring( win, line )
- X WINDOW *win ;
- X short line ;
- X{
- X wmove( win, line, 0 ) ; wclrtoeol( win ) ;
- X wmove( win, line+1, 0 ) ; wclrtoeol( win ) ;
- X}
- X
- X/*
- X * _showring: Display one lineful of RingMenu depending on the page
- X * current option is on.
- X */
- X_showring( win, line, title, opt, opt_table )
- X WINDOW *win ;
- X short line, opt ;
- X char *title, *opt_table[][2] ;
- X{
- X register short i ;
- X
- X wmove( win, line, 0 ) ; /* go there */
- X if ( title != NULL ) /* title? */
- X wprintw( win, "%s ", title ) ;
- X if ( menu[opt].page != 1 ) /* not 1st page? */
- X waddstr( win, "... " ) ;
- X
- X /*
- X * show options
- X */
- X for ( i=0; i<Noptions && menu[i].page<=menu[opt].page; i++ )
- X if ( menu[i].page == menu[opt].page ) /* same page? */
- X {
- X if ( i == opt ) /* need highlight? */
- X wattrset( win, A_REVERSE );
- X waddstr( win, opt_table[i][0] );
- X wattrset( win, A_NORMAL ) ;
- X waddstr( win, " " ) ;
- X }
- X
- X if ( menu[opt].page < menu[Noptions-1].page ) /* not last page? */
- X waddstr( win, "..." ) ;
- X wclrtoeol( win ) ;
- X
- X /*
- X * show description
- X */
- X wmove( win, line+1, 0 ) ;
- X wclrtoeol( win ) ;
- X mvwprintw( win, line+1,menu[0].column, "%s", opt_table[opt][1] ) ;
- X
- X /*
- X * fix cursor
- X */
- X if ( menu[0].column >= 2 )
- X wmove(win, line, menu[0].column-2 ); /* before 1st option */
- X else
- X /* behind the last option */
- X wmove(win, line, menu[i-1].column+strlen(opt_table[i-1][0])+2 ) ;
- X
- X wrefresh( win );
- X}
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/RingMenu.c || echo "restore of utilities.d/libgeti.d/RingMenu.c fails"
- echo "x - extracting utilities.d/libgeti.d/ScrnOut.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/ScrnOut.c &&
- Xstatic char Sccsid[] = "@(#)ScrnOut.c 1.2 DeltaDate 1/22/90 ExtrDate 1/22/90";
- X
- X#include <curses.h>
- X#include "GetInput.h"
- X
- XScrnOut(win, y, x, fpout)
- X WINDOW *win ;
- X int y, x ;
- X FILE *fpout ;
- X{
- X int xx, yy ;
- X
- X for(yy = 0 ; yy < y ; yy++) {
- X for(xx = 0 ; xx < x ; xx++)
- X fputc( mvwinch( win, yy, xx ) & A_CHARTEXT, fpout) ;
- X fputc( '\n', fpout ) ;
- X }
- X
- X return( 0 ) ;
- X}
- X
- X
- X
- XScrnPrnt(win, y, x, msgLine)
- X WINDOW *win ;
- X int y, x ;
- X int msgLine ;
- X{
- X FILE *fp ;
- X
- X BELL;
- X mvaddstr(msgLine, 0, "Printing Screen ") ;
- X wattrOn(stdscr, A_BLINK) ;
- X addstr("...") ;
- X wattrOff(stdscr) ;
- X refresh() ;
- X BELL;
- X
- X if( (fp = popen("lp -s", "w")) == NULL )
- X return(1) ;
- X
- X ScrnOut(win, y, x, fp) ;
- X
- X pclose(fp) ;
- X
- X move(msgLine, 0) ;
- X clrtoeol() ;
- X refresh() ;
- X
- X return(0) ;
- X}
- X
- X
- X
- XScrnFile(win, y, x)
- X WINDOW *win ;
- X int y, x ;
- X{
- X WINDOW *twin ;
- X FILE *fp ;
- X char cmdstr[17] ;
- X union FldUnion Fld ;
- X
- X twin = newwin(LINES, COLS, 0, 0) ;
- X mvwaddstr(twin, 10, 0, "File Name: ") ;
- X BELL;
- X cmdstr[0] = '\0' ;
- X Fld.strVal = cmdstr ;
- X GetInput (twin, 10, 11, &Fld, A_REVERSE, NOMASK, NORANGE, 16, 0,
- X ALPHANUM, NOFILL, CHAR, AUTONEXT, NOMUST, LINES-1, LINES-1,
- X "Enter the name of the file that will contain the image of the screen.",
- X NULL, NULL) ;
- X
- X if(cmdstr[0] == '\0')
- X return(1) ;
- X
- X if( (fp = fopen(cmdstr, "w")) == NULL )
- X return(1) ;
- X
- X ScrnOut(win, y, x, fp) ;
- X
- X fclose(fp) ;
- X
- X delwin(twin) ;
- X
- X return(0) ;
- X}
- SHAR_EOF
- chmod 0444 utilities.d/libgeti.d/ScrnOut.c || echo "restore of utilities.d/libgeti.d/ScrnOut.c fails"
- echo "x - extracting utilities.d/libgeti.d/ShowChar.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > utilities.d/libgeti.d/ShowChar.c &&
- X#ifndef LINT
- Xstatic char Sccsid[] = "@(#)ShowChar.c 1.3 DeltaDate 1/22/90 ExtrDate 1/22/90";
- X#endif
- X
- X/*
- X** ShowChar()
- X** Validate character against the mask and convert to upper is neccessary.
- X** Display char to screen.
- X*/
- X
- X#include <curses.h>
- X#include <ctype.h>
- X#include "GetInput.h"
- X
- Xextern int insertmode;
- X
- XShowChar (win, rowStart, colStart, fldAttrib, fldMask, fldRange, fldLength,
- X fldCharType, fldDispRow, fldType, keyStream, fldErrRow, charKeyed,
- X colEnd, ch, origAttr)
- X
- X WINDOW *win ; /* Window */
- X int rowStart ;
- X int colStart ;
- X int fldAttrib ; /* Curses attribute */
- X char *fldMask ; /* mask for character string */
- X char *fldRange ; /* allowable range for field */
- X unsigned fldLength ; /* Maximum length of output */
- X char fldCharType; /* type of character */
- X int fldDispRow ; /* where to display help message */
- X char fldType ; /* type of field */
- X int keyStream ; /* if TRUE then the function will
- X exit when the last character is
- X keyed */
- X int fldErrRow ; /* where to display error message */
- X char *charKeyed ; /* characters keyed array */
- X int colEnd ; /* column start of field */
- X int *ch ; /* contains character keyed or being
- X moved */
- X int origAttr[] ; /* original attributes for field */
- X{
- X int row ; /* working row field */
- X int col ; /* working column field */
- X char charType ;
- X char cmdstr[16] ;
- X int junk;
- X
- X
- X getyx(win, row, col) ;
- X
- X if (fldCharType == STATE || fldMask == NULL)
- X charType = fldCharType ;
- X else
- X if (fldCharType == DATE || fldCharType == TIME)
- X charType = NUMERIC ;
- X else
- X charType = *(fldMask + col - colStart) ;
- X
- X switch (charType)
- X {
- X case HEX:
- X break ;
- X
- X case ALPHA:
- X if (isalpha(*ch))
- X {
- X if (insertmode)
- X {
- X junk = doinsert (win, row, col, colStart,
- X colEnd, charKeyed, fldMask,
- X fldCharType, fldType, rowStart,
- X fldAttrib, fldRange, fldLength,
- X fldErrRow, origAttr);
- X if (junk != 0)
- X break;
- X }
- X wattrset(win, fldAttrib) ;
- X waddch(win, *ch) ;
- X wattrset(win, 0) ;
- X *(charKeyed + col - colStart) = 'Y' ;
- X }
- X else
- X {
- X CLEARROW (fldErrRow);
- X wattrOn (stdscr, A_REVERSE|A_BOLD);
- X mvwaddstr(stdscr,
- X ((fldErrRow%100) == fldErrRow) ? fldErrRow : fldErrRow/100,
- X ((fldErrRow%100) == fldErrRow) ? 0 : fldErrRow%100,
- X "Only alpha characters allowed.") ;
- X wattrOff (stdscr);
- X wmove(win, rowStart, col) ;
- X BELL;
- X }
- X break ;
- X
- X case ALPHANUM:
- X case UPPER_AN:
- X case STATE:
- X if (isprint(*ch))
- X {
- X if (insertmode)
- X {
- X junk = doinsert (win, row, col, colStart,
- X colEnd, charKeyed, fldMask,
- X fldCharType, fldType, rowStart,
- X fldAttrib, fldRange, fldLength,
- X fldErrRow, origAttr);
- X if (junk != 0)
- X break;
- X }
- X
- X if (charType == UPPER_AN || charType == STATE)
- X *ch = toupper(*ch);
- X wattrset(win, fldAttrib) ;
- X waddch(win, *ch) ;
- X wattrset(win, 0) ;
- X *(charKeyed + col - colStart) = 'Y' ;
- X }
- X else
- X {
- X CLEARROW (fldErrRow);
- X wattrOn (stdscr, A_REVERSE|A_BOLD);
- X mvwaddstr(stdscr,
- SHAR_EOF
- echo "End of part 8"
- echo "File utilities.d/libgeti.d/ShowChar.c is continued in part 9"
- echo "9" > s2_seq_.tmp
- exit 0
-