1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-11 03:55:03 -05:00

fixed NetWare CLIB implementation of getpass_r()

This commit is contained in:
Gunter Knauf 2007-07-06 14:58:59 +00:00
parent 7fd4f82a45
commit 836ffbfc22

View File

@ -136,18 +136,27 @@ char *getpass_r(const char *prompt, char *buffer, size_t buflen)
#include <nwconio.h>
char *getpass_r(const char *prompt, char *buffer, size_t buflen)
{
int i = 0;
int c;
size_t i = 0;
printf("%s", prompt);
do {
c = getch();
if (c != 13) {
buffer[i] = c;
i++;
printf("%s", "*");
buffer[i++] = getch();
if (buffer[i-1] == '\b') {
/* remove this letter and if this is not the first key,
remove the previous one as well */
if (i > 1) {
printf("\b \b");
i = i - 2;
} else {
RingTheBell();
i = i - 1;
}
} while ((c != 13) && (i < buflen));
} else if (buffer[i-1] != 13) {
putchar('*');
}
} while ((buffer[i-1] != 13) && (i < buflen));
buffer[i-1] = 0;
printf("\r\n");
return buffer;
}
#endif /* __NOVELL_LIBC__ */