Skip to content
Snippets Groups Projects
Commit 836ffbfc authored by Guenter Knauf's avatar Guenter Knauf
Browse files

fixed NetWare CLIB implementation of getpass_r()

parent 7fd4f82a
No related branches found
No related tags found
No related merge requests found
......@@ -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;
}
} else if (buffer[i-1] != 13) {
putchar('*');
}
} while ((c != 13) && (i < buflen));
} while ((buffer[i-1] != 13) && (i < buflen));
buffer[i-1] = 0;
printf("\r\n");
return buffer;
}
#endif /* __NOVELL_LIBC__ */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment