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 >
Wrap
C/C++ Source or Header
|
1995-01-15
|
2KB
|
90 lines
/* PROMPT.H
* prompt handling for COMMAND.COM
* Tim Norman
* 1-14-95
*/
void printprompt ()
{
struct time t;
struct date d;
char *pr, direc[128], temp[128];
static char default_pr[]="$N$G";
pr = findenv ("PROMPT"); /* get PROMPT environment var. */
if (!pr) /* if PROMPT hasn't been set */
pr = default_pr;
while (*pr)
{
if (*pr != '$')
putchar (*pr);
else
{
pr++;
switch (toupper (*pr))
{
case 'Q':
putchar ('=');
break;
case '$':
putchar ('$');
break;
case 'T':
gettime (&t);
printf ("%2d:%02d:%02d.%02d", t.ti_hour, t.ti_min, t.ti_sec,
t.ti_hund);
break;
case 'D':
getdate (&d);
printf ("Day %02d-%02d-%04d", d.da_mon, d.da_day, d.da_year);
break;
case 'P':
direc[0] = getdisk () + 'A';
direc[1] = ':';
getcurdir (0, temp);
if (temp[0] == '\\')
strcpy (&direc[2], temp);
else
{
direc[2] = '\\';
strcpy (&direc[3], temp);
}
printf ("%s", direc);
break;
case 'V':
printf ("FreeDOS Alpha");
break;
case 'N':
printf ("%c", getdisk () + 'A');
break;
case 'G':
putchar ('>');
break;
case 'L':
putchar ('<');
break;
case 'B':
putchar ('|');
break;
case '_':
putchar ('\n');
break;
case 'E':
putchar (27);
break;
case 'H':
putchar (8);
break;
}
}
pr++;
}
}