#include #include #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); }