From: "Ben Davis" Newsgroups: comp.os.msdos.djgpp Subject: Re: question about password coding Date: Tue, 4 Apr 2000 11:39:28 +0100 Organization: Customer of Planet Online Lines: 49 Message-ID: <8ccgus$fc4$1@news8.svr.pol.co.uk> References: <38E92F15 DOT 459B04 AT mindspring DOT com> NNTP-Posting-Host: modem-70.americium.dialup.pol.co.uk X-Trace: news8.svr.pol.co.uk 954844956 15748 62.136.67.70 (4 Apr 2000 10:42:36 GMT) NNTP-Posting-Date: 4 Apr 2000 10:42:36 GMT X-Complaints-To: abuse AT theplanet DOT net X-Newsreader: Microsoft Outlook Express 4.72.3110.5 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com james archer wrote in message <38E92F15 DOT 459B04 AT mindspring DOT com>... >Anyone happen to have a routine that will let the user enter a password >with the letters represented by *s, that will send the input to a >string? It's not hard to write one. Here is one which will work with getch() and putch() calls: /* pw must be at least max_chars+1 bytes (for the null at end) Returns 0 on success, 1 on failure (if user presses Esc) */ int input_password(char *pw, int max_chars) { int l = 0; char c, *p = pw; *p = 0; for (;;) { c = getch(); switch (c) { case '\b': if (l) { *(--p) = 0; putch('\b'); putch(' '); putch('\b'); } break; case '\r': putch('\r'); putch('\n'); return 0; case '\e': putch('\r'); putch('\n'); return 1; default: /* you may want to change this line, depending on what characters are allowed */ if (c >= ' ' && c <= '~') { if (l < max_chars) { *(p++) = c; *p = 0; l++; putch('*'); } } } } }