Mail Archives: djgpp/2002/03/07/00:26:09
Erratum: the correct code should be this:
unsigned char *getpwd (char prompt[], char *password)
{
unsigned char *p = password;
int c;
printf ("%s", prompt);
while (1)
{
c = getch(); //get char without echo, see getch vs. getche
// terminate on end of line or file ^j, ^m, ^d, ^z
if (c == '\r' || c == '\n' || c == '\004' || c == '\032')
break;
else if (c == '\b')
{
p--;
//to get back and erase the previous * and get back again
printf ("\0x1B \0x1B");
continue;
}
else
{
printf ("*");
*p++ = c;
}
}
*p = '\0';
printf ("\n");
return p;
}
Nirina.
- Raw text -