summaryrefslogtreecommitdiffstats
path: root/mbbsd/name.c
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-09-09 09:10:30 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-09-09 09:10:30 +0800
commitb36b48c02cb250e74679d8cae9ee4f69d0e0fb00 (patch)
tree07f8f9cc7a0bccdff6bacf4510c0b59ff775c2b8 /mbbsd/name.c
parent29839340cfd1f9b72fb14cd9652ca8c87a19d098 (diff)
downloadpttbbs-b36b48c02cb250e74679d8cae9ee4f69d0e0fb00.tar
pttbbs-b36b48c02cb250e74679d8cae9ee4f69d0e0fb00.tar.gz
pttbbs-b36b48c02cb250e74679d8cae9ee4f69d0e0fb00.tar.bz2
pttbbs-b36b48c02cb250e74679d8cae9ee4f69d0e0fb00.tar.lz
pttbbs-b36b48c02cb250e74679d8cae9ee4f69d0e0fb00.tar.xz
pttbbs-b36b48c02cb250e74679d8cae9ee4f69d0e0fb00.tar.zst
pttbbs-b36b48c02cb250e74679d8cae9ee4f69d0e0fb00.zip
name complete did not check invalid input.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3143 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/name.c')
-rw-r--r--mbbsd/name.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/mbbsd/name.c b/mbbsd/name.c
index 5f6b9c5c..c764fb89 100644
--- a/mbbsd/name.c
+++ b/mbbsd/name.c
@@ -386,6 +386,7 @@ usercomplete(const char *prompt, char *data)
int cwnum, x, y, origx, origy;
int clearbot = NA, count = 0, morenum = 0;
char ch;
+ int dashdirty = 0;
/* TODO 節省記憶體. (不過這個 function 不常占記憶體...) */
cwbuf = malloc(MAX_USERS * (IDLEN + 1));
@@ -435,7 +436,12 @@ usercomplete(const char *prompt, char *data)
move(y, x);
continue;
- } else if (ch != ' ' && count < STRLEN && isprint((int)ch)) {
+ } else if (!(count <= IDLEN && isprint((int)ch))) {
+
+ /* invalid input */
+ continue;
+
+ } else if (ch != ' ') {
int n;
@@ -463,6 +469,12 @@ usercomplete(const char *prompt, char *data)
int col, len;
if (ch == ' ' && cwnum == 1) {
+ if(dashdirty)
+ {
+ move(2,0);
+ clrtoeol();
+ printdash(cwlist, 0);
+ }
strcpy(data, cwlist);
move(y, x);
outs(data + count);
@@ -479,16 +491,18 @@ usercomplete(const char *prompt, char *data)
move(2, 0);
clrtobot();
printdash("使用者代號一覽表", 0);
+ dashdirty = 0;
if(ch != ' ')
{
/* no such user */
move(2,0);
- outs("無此使用者: ");
+ outs("* 目前無此使用者:");
outs(data);
outs(" ");
temp--;
*temp = '\0';
+ dashdirty = 1;
}
while (len + col < t_columns-1) {