From: Pasi Kallinen Date: Mon, 9 Mar 2015 16:42:53 +0000 (+0200) Subject: Define for generic usernames which prompt for name X-Git-Tag: NetHack-3.6.0_RC01~621^2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8e31929ef56c00cae8b19ff5dde02b880c35b1a1;p=nethack Define for generic usernames which prompt for name Instead of hard-coding the "play", "player", etc. usernames which will prompt the user for their name, allow defining the names in config.h --- diff --git a/include/config.h b/include/config.h index d8b067fc7..930bd549c 100644 --- a/include/config.h +++ b/include/config.h @@ -316,6 +316,11 @@ #endif /* CHDIR */ +/* If GENERIC_USERNAMES is defined, and the user name is found + * in that list, prompt for username instead. + * A public server should probably disable this. */ +#define GENERIC_USERNAMES "play player game games nethack nethacker" + /* * Section 3: Definitions that may vary with system type. diff --git a/src/role.c b/src/role.c index 59624c528..2e2cbabae 100644 --- a/src/role.c +++ b/src/role.c @@ -1332,12 +1332,15 @@ plnamesuffix() char *sptr, *eptr; int i; +#ifdef GENERIC_USERNAMES /* some generic user names will be ignored in favor of prompting */ i = (int)strlen(plname); - if ((i >= 4 && !strncmpi(plname, "player", i)) || /* play[er] */ - (i >= 4 && !strncmpi(plname, "games", i)) || /* game[s] */ - (i >= 7 && !strncmpi(plname, "nethacker", i))) /* nethack[er] */ + eptr = GENERIC_USERNAMES; + sptr = strstri(eptr, plname); + if (sptr && ((sptr == eptr && (sptr[i] == ' ' || sptr[i] == '\0')) + || sptr[i] == ' ' || sptr[i] == '\0')) *plname = '\0'; /* call askname() */ +#endif do { if (!*plname) askname(); /* fill plname[] if necessary */