summaryrefslogtreecommitdiffstats
path: root/mbbsd/admin.c
diff options
context:
space:
mode:
authorvictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-02-15 10:56:38 +0800
committervictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-02-15 10:56:38 +0800
commit7314728d7ce0c7fccd08b18bd113a34ffa66ef15 (patch)
treefd462a51e00f73fd48cd64010710a89449c15f93 /mbbsd/admin.c
parent67932d15f92cd605eadca081ee6ac9285f2719dc (diff)
downloadpttbbs-7314728d7ce0c7fccd08b18bd113a34ffa66ef15.tar
pttbbs-7314728d7ce0c7fccd08b18bd113a34ffa66ef15.tar.gz
pttbbs-7314728d7ce0c7fccd08b18bd113a34ffa66ef15.tar.bz2
pttbbs-7314728d7ce0c7fccd08b18bd113a34ffa66ef15.tar.lz
pttbbs-7314728d7ce0c7fccd08b18bd113a34ffa66ef15.tar.xz
pttbbs-7314728d7ce0c7fccd08b18bd113a34ffa66ef15.tar.zst
pttbbs-7314728d7ce0c7fccd08b18bd113a34ffa66ef15.zip
fix setperm's bug, check NULL condition first in set_attr
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2512 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/admin.c')
-rw-r--r--mbbsd/admin.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/mbbsd/admin.c b/mbbsd/admin.c
index da7a79ca..e04999b9 100644
--- a/mbbsd/admin.c
+++ b/mbbsd/admin.c
@@ -236,17 +236,19 @@ setperms(unsigned int pbits, char * const pstring[])
clrtobot();
while (
(i = getkey("½Ð«ö [A-5] ¤Á´«³]©w¡A«ö [Return] µ²§ô¡G"))!='\r')
- {
- i = i - 'a';
- if (i < 0)
- i = i + 'a' - '0' + 26;
- if (i >= NUMPERMS)
- bell();
+ {
+ if (isdigit(i))
+ i = i - '0' + 26;
+ else if (isalpha(i))
+ i = tolower(i) - 'a';
else {
- pbits ^= (1 << i);
- move(i % 16 + 4, i <= 15 ? 24 : 64);
- outs((pbits >> i) & 1 ? "£¾" : "¢æ");
+ bell();
+ continue;
}
+
+ pbits ^= (1 << i);
+ move(i % 16 + 4, i <= 15 ? 24 : 64);
+ outs((pbits >> i) & 1 ? "£¾" : "¢æ");
}
return pbits;
}