]> granicus.if.org Git - nethack/commitdiff
update config.h
authorPatR <rankin@nethack.org>
Tue, 17 Nov 2015 02:55:15 +0000 (18:55 -0800)
committerPatR <rankin@nethack.org>
Tue, 17 Nov 2015 02:55:15 +0000 (18:55 -0800)
Some reformatting (replacing tabs with spaces), but mostly updating some
of the comments, particularly about SYSCF.

Shouldn't GENERIC_USERNAMES be controllable via SYSCF?

include/config.h

index fc389f72d4a942da23ef2a6d7f70624d539d855e..141a6845ad03851fb1638c6cbfb130b89adf677e 100644 (file)
@@ -1,17 +1,16 @@
-/* NetHack 3.6 config.h        $NHDT-Date: 1433279371 2015/06/02 21:09:31 $  $NHDT-Branch: status_hilite $:$NHDT-Revision: 1.89 $ */
+/* NetHack 3.6 config.h        $NHDT-Date: 1447728911 2015/11/17 02:55:11 $  $NHDT-Branch: master $:$NHDT-Revision: 1.91 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
-#ifndef CONFIG_H /* make sure the compiler does not see the typedefs twice \
-                    */
+#ifndef CONFIG_H /* make sure the compiler does not see the typedefs twice */
 #define CONFIG_H
 
 /*
- * Section 1:  Operating and window systems selection.
- *             Select the version of the OS you are using.
- *             For "UNIX" select BSD, ULTRIX, SYSV, or HPUX in unixconf.h.
- *             A "VMS" option is not needed since the VMS C-compilers
- *             provide it (no need to change sec#1, vmsconf.h handles it).
+ * Section 1:   Operating and window systems selection.
+ *              Select the version of the OS you are using.
+ *              For "UNIX" select BSD, ULTRIX, SYSV, or HPUX in unixconf.h.
+ *              A "VMS" option is not needed since the VMS C-compilers
+ *              provide it (no need to change sec#1, vmsconf.h handles it).
  */
 
 #define UNIX /* delete if no fork(), exec() available */
@@ -53,7 +52,7 @@
  * Define the default window system.  This should be one that is compiled
  * into your system (see defines above).  Known window systems are:
  *
- *     tty, X11, mac, amii, BeOS, Qt, Gem, Gnome
+ *      tty, X11, mac, amii, BeOS, Qt, Gem, Gnome
  */
 
 /* MAC also means MAC windows */
 #endif
 
 /*
- * Section 2:  Some global parameters and filenames.
- *             Commenting out WIZARD, LOGFILE, NEWS or PANICLOG removes that
- *             feature from the game; otherwise set the appropriate wizard
- *             name.  LOGFILE, NEWS and PANICLOG refer to files in the
- *             playground.
+ * Section 2:   Some global parameters and filenames.
  *
- *             If SYSCF is defined, the following configuration info is
- *             available in a global config space, with the compiled-in
- *             entries as defaults:
- *             WIZARDS         (a value of * allows anyone to be wizard)
- *                              (this does NOT default to compiled-in value)
- *             MAXPLAYERS      (see MAX_NR_OF_PLAYERS above and nethack.sh)
- *             SUPPORT         (how to get local support)(no default)
- *             RECOVER         (how to recover a game at your site)(no
- *default)
- *             SHELLERS        (who can use !, syntax as WIZARDS)
- *               for the record file (see topten.c):
- *             PERSMAX         (max entries for one person)
- *             ENTRYMAX        (max entries in the record file)
- *             POINTSMIN       (min points to get an entry)
- *             PERS_IS_UID     (0 or 1 - person is name or (numeric) userid)
- *             SEDUCE          (0 or 1 - runtime disable/enable SEDUCE
- *option)
+ *              LOGFILE, XLOGFILE, NEWS and PANICLOG refer to files in
+ *              the playground directory.  Commenting out LOGFILE, XLOGFILE,
+ *              NEWS or PANICLOG removes that feature from the game.
  *
- *             The following options select how the config space is stored:
- *             SYSCF_FILE      in the named file
+ *              Building with debugging features enabled is now unconditional;
+ *              the old WIZARD setting for that has been eliminated.
+ *              If SYSCF is enabled, WIZARD_NAME will be overridden at
+ *              runtime by the SYSCF WIZARDS value.
  *
- *              The following options pertain to crash reporting:
- *              GREPPATH       (the path to the system grep(1) utility)
- *              GDBPATH                (the path to the system gdb(1) program)
+ *              SYSCF:  (not supported by all ports)
+ *            If SYSCF is defined, the following configuration info is
+ *            available in a global config space, with the compiled-in
+ *            entries as defaults:
+ *              WIZARDS      (a space-separated list of usernames of users who
+ *                           can run the game in debug mode, aka wizard mode;
+ *                           a value of * allows anyone to debug;
+ *                           this does NOT default to compiled-in value)
+ *              EXPLORERS    (who can use explore mode, aka discover mode)
+ *              SHELLERS     (who can use ! to execute a shell subprocess)
+ *              MAXPLAYERS   (see MAX_NR_OF_PLAYERS below and nethack.sh)
+ *              SUPPORT      (how to get local support) [no default]
+ *              RECOVER      (how to recover a game at your site) [no default]
+ *            For the record file (see topten.c):
+ *              PERSMAX      (max entries for one person)
+ *              ENTRYMAX     (max entries in the record file)
+ *              POINTSMIN    (min points to get an entry)
+ *              PERS_IS_UID  (0 or 1 - person is name or (numeric) userid)
+ *            Can force incubi/succubi behavior to be toned down to nymph-like:
+ *              SEDUCE       (0 or 1 - runtime disable/enable SEDUCE option)
+ *            The following options pertain to crash reporting:
+ *              GREPPATH     (the path to the system grep(1) utility)
+ *              GDBPATH      (the path to the system gdb(1) program)
+ *            Regular nethack options can also be specified in order to
+ *            provide system-wide default values local to your system:
+ *              OPTIONS      (same as in users' .nethackrc or defaults.nh)
+ *
+ *              In the future there may be other ways to supply SYSCF
+ *              information (Windows registry, Apple resource forks, etc)
+ *              but at present the only supported method is via a text file.
+ *              If the program is built with SYSCF enabled, the file *must*
+ *              exist and be readable, otherwise the game will complain and
+ *              refuse to start.
+ *              SYSCF_FILE:  file containing the SYSCF options shown above;
+ *              default is 'sysconf' in nethack's playground.
  */
 
 #ifndef WIZARD_NAME /* allow for compile-time or Makefile changes */
-#define WIZARD_NAME "wizard"
+#define WIZARD_NAME "wizard" /* value is ignored if SYSCF is enabled */
 #endif
 
 #ifndef SYSCF
 #define GREPPATH "/bin/grep"
 #endif
 
-#define LOGFILE "logfile"   /* larger file for debugging purposes */
+/* note: "larger" is in comparison with 'record', the high-scores file
+   (whose name can be overridden via #define in global.h if desired) */
+#define LOGFILE  "logfile"  /* larger file for debugging purposes */
 #define XLOGFILE "xlogfile" /* even larger logfile */
-#define NEWS "news"         /* the file containing the latest hack news */
+#define NEWS     "news"     /* the file containing the latest hack news */
 #define PANICLOG "paniclog" /* log of panic and impossible events */
 
+/*
+ *      PERSMAX, POINTSMIN, ENTRYMAX, PERS_IS_UID:
+ *      These control the contents of 'record', the high-scores file.
+ *      They used to be located in topten.c rather than config.h, and
+ *      their values can be overridden at runtime (to increase ENTRYMAX, the
+ *      maximum number of scores to keep, for example) if SYSCF is enabled.
+ */
 #ifndef PERSMAX
 #define PERSMAX 3 /* entries per name/uid per char. allowed */
 #endif
 #endif
 
 /*
- *     If COMPRESS is defined, it should contain the full path name of your
- *     'compress' program.
+ *      If COMPRESS is defined, it should contain the full path name of your
+ *      'compress' program.
  *
- *     If you define COMPRESS, you must also define COMPRESS_EXTENSION
- *     as the extension your compressor appends to filenames after
- *     compression. Currently, only UNIX fully implements
- *     COMPRESS; other ports should be able to uncompress save files a
- *     la unixmain.c if so inclined.
+ *      If you define COMPRESS, you must also define COMPRESS_EXTENSION
+ *      as the extension your compressor appends to filenames after
+ *      compression. Currently, only UNIX fully implements
+ *      COMPRESS; other ports should be able to uncompress save files a
+ *      la unixmain.c if so inclined.
  *
- *     Defining ZLIB_COMP builds in support for zlib compression. If you
- *     define ZLIB_COMP, you must link with a zlib library. Not all ports
- *     support ZLIB_COMP.
+ *      Defining ZLIB_COMP builds in support for zlib compression. If you
+ *      define ZLIB_COMP, you must link with a zlib library. Not all ports
+ *      support ZLIB_COMP.
  *
- *     COMPRESS and ZLIB_COMP are mutually exclusive.
+ *      COMPRESS and ZLIB_COMP are mutually exclusive.
  *
  */
 
 #endif
 
 #ifndef COMPRESS
-/* # define ZLIB_COMP          */ /* ZLIB for compression */
+/* # define ZLIB_COMP */            /* ZLIB for compression */
 #endif
 
 /*
- *     Internal Compression Options
+ *      Internal Compression Options
  *
- *     Internal compression options RLECOMP and ZEROCOMP alter the data
- *     that gets written to the save file by NetHack, in contrast
- *     to COMPRESS or ZLIB_COMP which compress the entire file after
- *     the NetHack data is written out.
+ *      Internal compression options RLECOMP and ZEROCOMP alter the data
+ *      that gets written to the save file by NetHack, in contrast
+ *      to COMPRESS or ZLIB_COMP which compress the entire file after
+ *      the NetHack data is written out.
  *
- *     Defining RLECOMP builds in support for internal run-length
- *     compression of level structures. If RLECOMP support is included
- *     it can be toggled on/off at runtime via the config file option
- *     rlecomp.
+ *      Defining RLECOMP builds in support for internal run-length
+ *      compression of level structures. If RLECOMP support is included
+ *      it can be toggled on/off at runtime via the config file option
+ *      rlecomp.
  *
- *     Defining ZEROCOMP builds in support for internal zero-comp
- *     compression of data. If ZEROCOMP support is included it can still
- *     be toggled on/off at runtime via the config file option zerocomp.
+ *      Defining ZEROCOMP builds in support for internal zero-comp
+ *      compression of data. If ZEROCOMP support is included it can still
+ *      be toggled on/off at runtime via the config file option zerocomp.
  *
- *     RLECOMP and ZEROCOMP support can be included even if
- *     COMPRESS or ZLIB_COMP support is included. One reason for doing
- *     so would be to provide savefile read compatibility with a savefile
- *     where those options were in effect. With RLECOMP and/or ZEROCOMP
- *     defined, NetHack can read an rlecomp or zerocomp savefile in, yet
- *     re-save without them.
+ *      RLECOMP and ZEROCOMP support can be included even if
+ *      COMPRESS or ZLIB_COMP support is included. One reason for doing
+ *      so would be to provide savefile read compatibility with a savefile
+ *      where those options were in effect. With RLECOMP and/or ZEROCOMP
+ *      defined, NetHack can read an rlecomp or zerocomp savefile in, yet
+ *      re-save without them.
  *
- *     Using any compression option will create smaller bones/level/save
- *     files at the cost of additional code and time.
+ *      Using any compression option will create smaller bones/level/save
+ *      files at the cost of additional code and time.
  */
 
-/* # define INTERNAL_COMP      */ /* defines both ZEROCOMP and RLECOMP */
-/* # define ZEROCOMP           */ /* Support ZEROCOMP compression */
-/* # define RLECOMP            */ /* Support RLECOMP compression  */
+/* # define INTERNAL_COMP */ /* defines both ZEROCOMP and RLECOMP */
+/* # define ZEROCOMP      */ /* Support ZEROCOMP compression */
+/* # define RLECOMP       */ /* Support RLECOMP compression  */
 
 /*
- *     Data librarian.  Defining DLB places most of the support files into
- *     a tar-like file, thus making a neater installation.  See *conf.h
- *     for detailed configuration.
+ *      Data librarian.  Defining DLB places most of the support files into
+ *      a tar-like file, thus making a neater installation.  See *conf.h
+ *      for detailed configuration.
  */
 /* #define DLB */ /* not supported on all platforms */
 
 /*
- *     Defining INSURANCE slows down level changes, but allows games that
- *     died due to program or system crashes to be resumed from the point
- *     of the last level change, after running a utility program.
+ *      Defining INSURANCE slows down level changes, but allows games that
+ *      died due to program or system crashes to be resumed from the point
+ *      of the last level change, after running a utility program.
  */
 #define INSURANCE /* allow crashed game recovery */
 
 /*
  * Some system administrators are stupid enough to make Hack suid root
  * or suid daemon, where daemon has other powers besides that of reading or
- * writing Hack files. In such cases one should be careful with chdir's
+ * writing Hack files.  In such cases one should be careful with chdir's
  * since the user might create files in a directory of his choice.
  * Of course SECURE is meaningful only if HACKDIR is defined.
  */
  */
 #endif /* CHDIR */
 
-/* If GENERIC_USERNAMES is defined, and the user name is found
- * in that list, prompt for username instead.
+/* 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
- *             the AT&T 3B2/3B5/etc. family.
+ * Section 3:   Definitions that may vary with system type.
+ *              For example, both schar and uchar should be short ints on
+ *              the AT&T 3B2/3B5/etc. family.
  */
 
 /*
 #include "tradstdc.h"
 
 /*
- * type schar: small signed integers (8 bits suffice) (eg. TOS)
- *
- *     typedef char    schar;
- *
- *     will do when you have signed characters; otherwise use
- *
- *     typedef short int schar;
+ * type schar:
+ * small signed integers (8 bits suffice) (eg. TOS)
+ *      typedef char schar;
+ * will do when you have signed characters; otherwise use
+ *      typedef short int schar;
  */
 #ifdef AZTEC
 #define schar char
@@ -356,14 +378,11 @@ typedef signed char schar;
 #endif
 
 /*
- * type uchar: small unsigned integers (8 bits suffice - but 7 bits do not)
- *
- *     typedef unsigned char   uchar;
- *
- *     will be satisfactory if you have an "unsigned char" type;
- *     otherwise use
- *
- *     typedef unsigned short int uchar;
+ * type uchar:
+ * small unsigned integers (8 bits suffice - but 7 bits do not)
+ *      typedef unsigned char uchar;
+ * will be satisfactory if you have an "unsigned char" type; otherwise use
+ *      typedef unsigned short int uchar;
  */
 #ifndef _AIX32 /* identical typedef in system file causes trouble */
 typedef unsigned char uchar;
@@ -400,7 +419,6 @@ typedef unsigned char uchar;
 #endif
 #endif
 
-
 #if !defined(MAC)
 #if !defined(NOCLIPPING)
 #define CLIPPING /* allow smaller screens -- ERS */
@@ -409,7 +427,6 @@ typedef unsigned char uchar;
 
 #define DOAGAIN '\001' /* ^A, the "redo" key used in cmd.c and getline.c */
 
-
 /*
  * Section 4:  EXPERIMENTAL STUFF
  *
@@ -418,13 +435,23 @@ typedef unsigned char uchar;
  * bugs left here.
  */
 
-/* #define STATUS_VIA_WINDOWPORT */ /* re-work of the status line updating process */
-/* #define STATUS_HILITES       */ /* support hilites of status fields */
-/* #define WINCHAIN*/               /* stacked window systems */
-/* #define SCORE_ON_BOTL */ /* show estimated score on status line */
-#define FREE_ALL_MEMORY            /* free all memory at exit */
-/* #define DEBUG_MIGRATING_MONS */ /* add a wizard-mode command to help debug
-                                      migrating monsters */
+/* #define STATUS_VIA_WINDOWPORT */ /* re-work of the status line
+                                       updating process */
+/* #define STATUS_HILITES */        /* support hilites of status fields */
+
+/* #define WINCHAIN */              /* stacked window systems */
+
+/* #define DEBUG_MIGRATING_MONS */  /* add a wizard-mode command to help debug
+                                       migrating monsters */
+
+/* SCORE_ON_BOTL is neither experimental nor inadequately tested,
+   but doesn't seem to fit in any other section... */
+/* #define SCORE_ON_BOTL */         /* enable the 'showscore' option to
+                                       show estimated score on status line */
+
+/* FREE_ALL_MEMORY is neither experimental nor inadequately tested,
+   but it isn't necessary for successful operation of the program */
+#define FREE_ALL_MEMORY             /* free all memory at exit */
 
 /* End of Section 4 */