diff options
author | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2005-06-15 21:05:16 +0800 |
---|---|---|
committer | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2005-06-15 21:05:16 +0800 |
commit | c896411789902bb37942f2041d42586e490bec2f (patch) | |
tree | eb71f15343d9bb39fa7ed1ecb16f3a676f56e97d | |
parent | 41157b4d4a7c4549b31f88b8ba483ca12c355e48 (diff) | |
download | pttbbs-c896411789902bb37942f2041d42586e490bec2f.tar pttbbs-c896411789902bb37942f2041d42586e490bec2f.tar.gz pttbbs-c896411789902bb37942f2041d42586e490bec2f.tar.bz2 pttbbs-c896411789902bb37942f2041d42586e490bec2f.tar.lz pttbbs-c896411789902bb37942f2041d42586e490bec2f.tar.xz pttbbs-c896411789902bb37942f2041d42586e490bec2f.tar.zst pttbbs-c896411789902bb37942f2041d42586e490bec2f.zip |
fix r2251
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2843 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | mbbsd/menu.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/mbbsd/menu.c b/mbbsd/menu.c index a42cc0bd..f9db6ff4 100644 --- a/mbbsd/menu.c +++ b/mbbsd/menu.c @@ -1,6 +1,8 @@ /* $Id$ */ #include "bbs.h" +#define CheckMenuPerm(x) ( (x) ? HasUserPerm(x) : 1) + /* help & menu processring */ static int refscreen = NA; extern char *boardprefix; @@ -146,7 +148,7 @@ show_menu(const commands_t * p) move(menu_row, 0); while ((s = p[n].desc)) { - if (HasUserPerm(p[n].level)) { + if (CheckMenuPerm(p[n].level)) { prints("%*s (" ANSI_COLOR(1;36) "%c" ANSI_COLOR(0) ")%s\n", menu_column, "", s[1], s+2); } @@ -202,7 +204,7 @@ domenu(int cmdmode, const char *cmdtitle, int cmd, const commands_t cmdtable[]) do { if (++i > total) i = 0; - } while (!HasUserPerm(cmdtable[i].level)); + } while (!CheckMenuPerm(cmdtable[i].level)); break; case KEY_END: case KEY_PGDN: @@ -213,7 +215,7 @@ domenu(int cmdmode, const char *cmdtitle, int cmd, const commands_t cmdtable[]) do { if (--i < 0) i = total; - } while (!HasUserPerm(cmdtable[i].level)); + } while (!CheckMenuPerm(cmdtable[i].level)); break; case KEY_LEFT: case 'e': @@ -263,9 +265,9 @@ domenu(int cmdmode, const char *cmdtitle, int cmd, const commands_t cmdtable[]) if (cmdtable[i].desc[1] == cmd) break; - if (!HasUserPerm(cmdtable[i].level)) { + if (!CheckMenuPerm(cmdtable[i].level)) { for (i = 0; cmdtable[i].desc; i++) - if (HasUserPerm(cmdtable[i].level)) + if (CheckMenuPerm(cmdtable[i].level)) break; if (!cmdtable[i].desc) return; @@ -276,7 +278,7 @@ domenu(int cmdmode, const char *cmdtitle, int cmd, const commands_t cmdtable[]) } } - if (i > total || !HasUserPerm(cmdtable[i].level)) + if (i > total || !CheckMenuPerm(cmdtable[i].level)) continue; if (refscreen) { @@ -290,7 +292,7 @@ domenu(int cmdmode, const char *cmdtitle, int cmd, const commands_t cmdtable[]) cursor_clear(menu_row + pos, menu_column); n = pos = -1; while (++n <= (lastcmdptr = i)) - if (HasUserPerm(cmdtable[n].level)) + if (CheckMenuPerm(cmdtable[n].level)) pos++; cursor_show(menu_row + pos, menu_column); |