home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <conio.h>
-
- #define _PASSWORD_LEN 128
-
- /* Issue prompt and read reply with echo turned off */
- char *getpass (const char *prompt)
- {
- static char pbuf[_PASSWORD_LEN+1];
- int c, i;
-
- fputs (prompt, stderr);
- fflush (stderr);
- i = 0;
- for (;;)
- {
- c = getch ();
- if (c == '\r' || c == '\n')
- break;
- if (c == '\b' || c == 127)
- {
- if (i > 0) --i;
- }
- else if (c == 0x15 || c == 0x1b)
- i = 0;
- else if (i < sizeof (pbuf)-1)
- pbuf[i++] = (char)c;
- }
- pbuf[i] = 0;
- fputs ("\r\n", stderr);
- fflush (stderr);
- return (pbuf);
- }
-