From: Ari Johnson Date: Sat, 3 Mar 2007 00:37:35 +0000 (+0000) Subject: Command and function names may now start with punctuation characters; better error... X-Git-Url: https://git.theari.com/?a=commitdiff_plain;h=3660ef70e332fd62f751ee339fa2a345520a485c;p=cobramush.git Command and function names may now start with punctuation characters; better error messages for invalid function restrictions --- diff --git a/src/function.c b/src/function.c index b231a95..ce234c6 100644 --- a/src/function.c +++ b/src/function.c @@ -1074,11 +1074,14 @@ restrict_function(const char *name, const char *restriction) void do_function_restrict(dbref player, const char *name, const char *restriction) { + FUN *fp; + unsigned int flags; + if (!Global_Funcs(player)) { notify(player, T("Permission denied.")); return; } - if (!name) { + if (!name || !*name) { notify(player, T("Restrict what function?")); return; } @@ -1089,7 +1092,7 @@ do_function_restrict(dbref player, const char *name, const char *restriction) if (restrict_function(name, restriction)) notify(player, T("Restrictions modified.")); else - notify(player, T("Restrict attempt failed.")); + notify(player, T("Restrictions modified.")); } diff --git a/src/predicat.c b/src/predicat.c index be72f28..87e4301 100644 --- a/src/predicat.c +++ b/src/predicat.c @@ -911,7 +911,8 @@ ok_command_name(const char *name) case '&': return 0; default: - if (!isupper((unsigned char) *name) && !isdigit((unsigned char) *name)) + if (!isupper((unsigned char) *name) && !isdigit((unsigned char) *name) + && !ispunct((unsigned char) *name)) return 0; } /* Everything else must be printable and non-space, and we need @@ -956,7 +957,7 @@ ok_function_name(const char *name) case '&': return 0; default: - if (!isupper((unsigned char) *name)) + if (!isupper((unsigned char) *name) && !ispunct((unsigned char) *name)) return 0; } /* Everything else must be printable and non-space, and we need