*/
#endif /* CHDIR */
-/* If GENERIC_USERNAMES is defined, and the player's username is found
- * in the list, prompt for character name instead of using username.
- * 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.
* For example, both schar and uchar should be short ints on
or "one or two" or "one, two, or three", &c */
char *explorers; /* like wizards, but for access to explore mode */
char *shellers; /* like wizards, for ! command (-DSHELL); also ^Z */
+ char *genericusers; /* usernames that prompt for user name */
char *debugfiles; /* files to show debugplines in. '*' is all. */
int env_dbgfl; /* 1: debugfiles comes from getenv("DEBUGFILES")
* so sysconf's DEBUGFILES shouldn't override it;
free((genericptr_t) sysopt.debugfiles);
sysopt.debugfiles = dupstr(bufp);
}
+ } else if (src == SET_IN_SYS && match_varname(buf, "GENERICUSERS", 12)) {
+ if (sysopt.genericusers) free(sysopt.genericusers);
+ sysopt.genericusers = dupstr(bufp);
} else if (src == SET_IN_SYS && match_varname(buf, "SUPPORT", 7)) {
if (sysopt.support)
free((genericptr_t) sysopt.support);
char *sptr, *eptr;
int i;
-#ifdef GENERIC_USERNAMES
- {
- /* some generic user names will be ignored in favor of prompting */
- const char *uptr = GENERIC_USERNAMES;
-
- i = (int) strlen(plname);
- if ((sptr = strstri(uptr, plname)) != 0
- && (sptr == uptr || sptr[-1] == ' ')
- && (sptr[i] == ' ' || sptr[i] == '\0'))
- *plname = '\0'; /* call askname() */
+ /* some generic user names will be ignored in favor of prompting */
+ if (sysopt.genericusers) {
+ if (*sysopt.genericusers == '*') *plname = '\0';
+ else {
+ i = (int)strlen(plname);
+ if ((sptr = strstri(sysopt.genericusers, plname)) != 0
+ && (sptr == sysopt.genericusers || sptr[-1] == ' ')
+ && (sptr[i] == ' ' || sptr[i] == '\0'))
+ *plname = '\0'; /* call askname() */
+ }
}
-#endif
do {
if (!*plname)
sysopt.env_dbgfl = 0; /* haven't checked getenv("DEBUGFILES") yet */
sysopt.shellers = (char *) 0;
sysopt.explorers = (char *) 0;
+ sysopt.genericusers = (char *) 0;
sysopt.maxplayers = 0; /* XXX eventually replace MAX_NR_OF_PLAYERS */
/* record file */
if (sysopt.debugfiles)
free((genericptr_t) sysopt.debugfiles),
sysopt.debugfiles = (char *) 0;
+ if (sysopt.genericusers)
+ free((genericptr_t) sysopt.genericusers),
+ sysopt.genericusers = (char *) 0;
#ifdef PANICTRACE
if (sysopt.gdbpath)
free((genericptr_t) sysopt.gdbpath), sysopt.gdbpath = (char *) 0;
# Uses the same syntax as the WIZARDS and EXPLORERS options above.
#SHELLERS=
+# If the user name is found in this list, prompt for username instead.
+# Uses the same syntax as the WIZARDS option above.
+# A public server should probably disable this.
+GENERICUSERS=play player game games nethack nethacker
+
# Use the player name for matching WIZARDS, EXPLORERS and SHELLERS,
# instead of the user's login name.
#CHECK_PLNAME=1