optlist.h

Currently, options.c is the only file that #includes "optlist.h".

In theory, if a source file did want to include optlist.h (perhaps
for the struct allopt_t declaration so they could deal with a
pointer to such a struct), they wouldn't be able to include it
because of a static function prototype that it contains.

Add some protection to only include that static function
prototype when optlist.h is included from options.c.
This commit is contained in:
nhmall
2023-12-02 11:09:41 -05:00
parent 4a00b66b30
commit 8ee8d89814
2 changed files with 7 additions and 1 deletions

View File

@@ -4,6 +4,10 @@
#ifndef OPTLIST_H
#define OPTLIST_H
#ifdef OPTIONS_C
static int optfn_boolean(int, int, boolean, char *, char *);
#endif
/*
* NOTE: If you add (or delete) an option, please review:
* doc/options.txt
@@ -12,7 +16,6 @@
* updates that should accompany your change.
*/
static int optfn_boolean(int, int, boolean, char *, char *);
enum OptType { BoolOpt, CompOpt, OthrOpt };
enum Y_N { No, Yes };
enum Off_On { Off, On };

View File

@@ -50,6 +50,8 @@ NEARDATA struct instance_flags iflags; /* provide linkage */
*
*/
#define OPTIONS_C
#define NHOPT_PROTO
#include "optlist.h"
#undef NHOPT_PROTO
@@ -72,6 +74,7 @@ static struct allopt_t allopt_init[] = {
};
#undef NHOPT_PARSE
#undef OPTIONS_C
#define PILE_LIMIT_DFLT 5
#define rolestring(val, array, field) \