1: #include    "parms.h"
   2: #include    "structs.h"
   3: 
   4: #ifdef  RCSIDENT
   5: static char rcsid[] = "$Header: gdate.c,v 1.7.0.1 85/09/09 18:32:11 notes Rel $";
   6: #endif	RCSIDENT
   7: 
   8: 
   9: /*
  10:  * this gdate routine reads a "search date" from the keyboard.  This date
  11:  * must be of the form mm/dd or mm/dd/yy (number of digits in each is
  12:  * irrelevant).  it sets the date parameter correctly to the input or
  13:  * returns -1 to indicate failure to complete a date (i.e., a return alone
  14:  * was entered on a line).  If the date is invalid, it must be retyped.
  15:  * I know it is unfortunate that we can't have a plato arrow type judging
  16:  * system here.  I just don't want to go to all the hassle of making one now.
  17:  * perhaps this is an area of improvement for this program.  RK  11/10/80.
  18:  *
  19:  *	Rewritten to use the parsetime() routine which understands
  20:  *	about converting ASCII time specifications into a UNIX
  21:  *	Internal time.
  22:  *		-- Ray Essick, March 1984
  23:  *
  24:  */
  25: 
  26: #define TIMELEN 40                  /* longest time spec */
  27: 
  28: gdate (date) struct when_f *date;
  29: {
  30:     char    datin[TIMELEN + 1],
  31:             fmt[DATELEN];
  32:     register int    i,
  33:                     pass;
  34:     struct when_f   tmpdate;                /* hold it */
  35: 
  36:     pass = 0;
  37:     while (1)
  38:     {
  39:     sprdate (date, fmt);                /* current setting */
  40:     at (0, PROMPTMSGX);
  41:     printf ("Set to read notes since: %-*s", DATELEN, fmt);
  42:     at (-1, 10);
  43:     printf ("New Date > %*s", TIMELEN, " ");
  44:     at (-1, 21);
  45:     for (i = 0; i < TIMELEN; i++)
  46:         datin[i] = ' ';
  47:     if (gline (datin, TIMELEN) == 1)
  48:     {                       /* empty line */
  49:         at (-1, 10);
  50:         printf ("%*s", 23 + TIMELEN, " ");      /* space padding */
  51:         if (pass)
  52:         return 0;               /* ok */
  53:         else
  54:         return (-1);                /* 1st pass return */
  55:     }
  56:     switch (parsetime (datin, &tmpdate))        /* parsed? */
  57:     {
  58:         case 0:                     /* worked */
  59:         *date = tmpdate;            /* transfer it */
  60:         pass++;                 /* count passes */
  61:         break;
  62: 
  63:         default:                    /* failures */
  64:         putc ('\07', stdout);           /* bark at him */
  65:         break;
  66:     }
  67: 
  68:     }
  69: /*	yes, we know about the fact that this statement is unreachable! */
  70:     return 0;                       /* never executed */
  71: }

Defined functions

gdate defined in line 28; used 1 times

Defined variables

rcsid defined in line 5; never used

Defined macros

TIMELEN defined in line 26; used 5 times
Last modified: 1985-09-20
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2374
Valid CSS Valid XHTML 1.0 Strict