From c896411789902bb37942f2041d42586e490bec2f Mon Sep 17 00:00:00 2001
From: in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>
Date: Wed, 15 Jun 2005 13:05:16 +0000
Subject: fix r2251

git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2843 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
---
 mbbsd/menu.c | 16 +++++++++-------
 1 file 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);
-- 
cgit v1.2.3