home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 21 / CD_ASCQ_21_040595.iso / dos / prg / c / freedos3 / source / com020 / prompt.h < prev    next >
C/C++ Source or Header  |  1995-01-15  |  2KB  |  90 lines

  1. /* PROMPT.H
  2.  * prompt handling for COMMAND.COM
  3.  * Tim Norman
  4.  * 1-14-95
  5. */
  6.  
  7. void printprompt ()
  8. {
  9.    struct time t;
  10.    struct date d;
  11.    char *pr, direc[128], temp[128];
  12.    static char default_pr[]="$N$G";
  13.  
  14.    pr = findenv ("PROMPT");     /* get PROMPT environment var. */
  15.  
  16.    if (!pr)                     /* if PROMPT hasn't been set   */
  17.       pr = default_pr;
  18.  
  19.    while (*pr)
  20.    {
  21.       if (*pr != '$')
  22.      putchar (*pr);
  23.       else
  24.       {
  25.      pr++;
  26.  
  27.      switch (toupper (*pr))
  28.      {
  29.         case 'Q':
  30.            putchar ('=');
  31.            break;
  32.         case '$':
  33.            putchar ('$');
  34.            break;
  35.         case 'T':
  36.            gettime (&t);
  37.            printf ("%2d:%02d:%02d.%02d", t.ti_hour, t.ti_min, t.ti_sec,
  38.                          t.ti_hund);
  39.            break;
  40.         case 'D':
  41.            getdate (&d);
  42.            printf ("Day %02d-%02d-%04d", d.da_mon, d.da_day, d.da_year);
  43.            break;
  44.         case 'P':
  45.            direc[0] = getdisk () + 'A';
  46.            direc[1] = ':';
  47.  
  48.            getcurdir (0, temp);
  49.  
  50.            if (temp[0] == '\\')
  51.           strcpy (&direc[2], temp);
  52.            else
  53.            {
  54.           direc[2] = '\\';
  55.           strcpy (&direc[3], temp);
  56.            }
  57.  
  58.            printf ("%s", direc);
  59.            break;
  60.         case 'V':
  61.            printf ("FreeDOS Alpha");
  62.            break;
  63.         case 'N':
  64.            printf ("%c", getdisk () + 'A');
  65.            break;
  66.         case 'G':
  67.            putchar ('>');
  68.            break;
  69.         case 'L':
  70.            putchar ('<');
  71.            break;
  72.         case 'B':
  73.            putchar ('|');
  74.            break;
  75.         case '_':
  76.            putchar ('\n');
  77.            break;
  78.         case 'E':
  79.            putchar (27);
  80.            break;
  81.         case 'H':
  82.            putchar (8);
  83.            break;
  84.      }
  85.       }
  86.  
  87.       pr++;
  88.    }
  89. }
  90.