]> granicus.if.org Git - nethack/commitdiff
doc/options.doc update
authornhmall <nhmall@nethack.org>
Sat, 30 Jan 2021 17:18:49 +0000 (12:18 -0500)
committernhmall <nhmall@nethack.org>
Sat, 30 Jan 2021 17:18:49 +0000 (12:18 -0500)
doc/options.doc

index be189aa0e76003b3a3d4434f23cc6c72b26589c3..21891041ada8fddcb329f82145de612405dce640 100644 (file)
@@ -3,13 +3,33 @@ February 2020 in 3.7 WIP.
 
 Boolean and compound options are combined into a single allopt[] array.
 
-To add an option:
+To add an entirely new option macro type:
+
+    The current list of option macros:
+    NHOPTB (for boolean options)
+    NHOPTC (for complex options that take values beyond off/on)
+    NHOPTP (for handling a suite that all begin with a common prefix)
+
+     1. You need to add three different expansions of your macro, one for
+        the NHOPT_PROTO phase where function prototypes are generated,
+        one for the NHOPT_ENUM phase where enums are generated, and
+        NHOPT_PARSE phase.
+
+     2. If you are adding a new macro type to the current list of NHOPTB,
+        NHOPTC, or NHOPTP, don't forget to add the #undef near the bottom
+        of optlist.h, so that the macro is available for re-use during the
+        next usage phase.
+
+ To add an option:
+
+     1. Add an entry to include/optlist.h, using the NHOPTB macro for a
+       boolean on/off option, or NHOPTC macro for a compound option,
+       or NHOPTP macro if it handles an entire prefix.
+
+       The list of options is always kept in optlist.h in alphabetical order.
 
-    1. Add an entry to include/optlist.h, using the NHOPTB macro for a
-       boolean on/off option, or NHOPTC macro for a compound option. The
-       list of options is kept in alphabetical order.
        When the list of options is processed during the compile of options.c,
-       the following will be automatically generated and included in 
+       the following will be automatically generated and included in
        options.c:
 
             i) an optfn_xxxx function prototype (xxxx is the option name).
@@ -52,7 +72,7 @@ To add an option:
                     /* this is optional. If the option needs its own
                        special handling after the doset menu, do it here
                        or call a function to do it. The naming convention
-                       for such a function in options.c has been 
+                       for such a function in options.c has been
                        handler_xxxx(), but the function does not need to
                        reside in options.c */