diff --git a/ChangeLog b/ChangeLog index 50a07f53..0458f507 100644 --- a/ChangeLog +++ b/ChangeLog @@ -34,6 +34,7 @@ v0.37.5 12-Jul-2003 - 10-Aug-2003 set to one hour to support very long scans. Changed logging during user login. Fixed bugs in QWK mail upload processing. + Allow - and _ in email names (GetstrU function). mbsetup: Added menu entry 1.5.21 for setting maximum allowed logins. diff --git a/mbsebbs/input.c b/mbsebbs/input.c index af342f62..705bc3eb 100644 --- a/mbsebbs/input.c +++ b/mbsebbs/input.c @@ -144,45 +144,45 @@ void GetstrC(char *sStr, int iMaxlen) */ void GetstrU(char *sStr, int iMaxlen) { - unsigned char ch = 0; - int iPos = 0; + unsigned char ch = 0; + int iPos = 0; + + fflush(stdout); + if ((ttyfd = open ("/dev/tty", O_RDWR|O_NONBLOCK)) < 0) { + perror("open 6"); + return; + } + Setraw(); + + strcpy(sStr, ""); + alarm_on(); + + while (ch != 13) { fflush(stdout); - if ((ttyfd = open ("/dev/tty", O_RDWR|O_NONBLOCK)) < 0) { - perror("open 6"); - return; - } - Setraw(); + ch = Readkey(); - strcpy(sStr, ""); - alarm_on(); - - while (ch != 13) { - - fflush(stdout); - ch = Readkey(); - - if ((ch == 8) || (ch == KEY_DEL) || (ch == 127)) { - if (iPos > 0) { - printf("\b \b"); - sStr[--iPos] = '\0'; - } else - putchar('\007'); - } - - if (isalnum(ch) || (ch == '@') || (ch == '.')) { - if (iPos <= iMaxlen) { - iPos++; - sprintf(sStr, "%s%c", sStr, ch); - printf("%c", ch); - } else - putchar('\007'); - } + if ((ch == 8) || (ch == KEY_DEL) || (ch == 127)) { + if (iPos > 0) { + printf("\b \b"); + sStr[--iPos] = '\0'; + } else + putchar('\007'); } - Unsetraw(); - close(ttyfd); - printf("\n"); + if (isalnum(ch) || (ch == '@') || (ch == '.') || (ch == '-') || (ch == '_')) { + if (iPos <= iMaxlen) { + iPos++; + sprintf(sStr, "%s%c", sStr, ch); + printf("%c", ch); + } else + putchar('\007'); + } + } + + Unsetraw(); + close(ttyfd); + printf("\n"); }