]> jfr.im git - solanum.git/blobdiff - include/newconf.h
wsproc: call rb_clear_cloexec on child fds
[solanum.git] / include / newconf.h
index dfc46232511d2df7036959c813ae6267d79fafd9..d6c73557cf2ea2e9064217c9423dfdf887cced36 100644 (file)
@@ -1,17 +1,9 @@
 /* This code is in the public domain.
- * $Nightmare: nightmare/include/config.h,v 1.32.2.2.2.2 2002/07/02 03:41:28 ejb Exp $
- * $Id: newconf.h 1735 2006-07-19 02:35:40Z nenolod $
  */
 
 #ifndef _NEWCONF_H_INCLUDED
 #define _NEWCONF_H_INCLUDED
 
-#include <sys/types.h>
-
-#include <stdio.h>
-
-#include "client.h"
-
 struct ConfEntry
 {
        const char *cf_name;
@@ -31,19 +23,27 @@ struct TopConf
 };
 
 
-#define CF_QSTRING     0x01
+#define CF_QSTRING     0x01 /* quoted string */
 #define CF_INT         0x02
-#define CF_STRING      0x03
+#define CF_STRING      0x03 /* unquoted string */
 #define CF_TIME                0x04
 #define CF_YESNO       0x05
-#define CF_LIST                0x06
-#define CF_ONE         0x07
 
-#define CF_MTYPE       0xFF
+#define CF_MTYPE       0xFF /* mask for type */
 
-#define CF_FLIST       0x1000
-#define CF_MFLAG       0xFF00
+/* CF_FLIST is used to allow specifying that an option accepts a list of (type)
+ * values. conf_parm_t.type will never actually have another type & CF_FLIST;
+ * it's only used as a true flag in newconf.c (which only consumes conf_parm_t
+ * structures and doesn't create them itself).
+ */
+#define CF_FLIST       0x0100 /* flag for list */
+#define CF_MFLAG       0xFF00 /* mask for flags */
 
+/* conf_parm_t.type must be either one type OR one flag. this is pretty easy to
+ * enforce because lists always contain nested conf_parm_t structures whose
+ * .type is the real type, so it doesn't need to be stored in the top-level one
+ * anyway.
+ */
 typedef struct conf_parm_t_stru
 {
        struct conf_parm_t_stru *next;
@@ -65,8 +65,9 @@ extern char *current_file;
 int read_config(char *);
 int conf_start_block(char *, char *);
 int conf_end_block(struct TopConf *);
-int conf_call_set(struct TopConf *, char *, conf_parm_t *, int);
+int conf_call_set(struct TopConf *, char *, conf_parm_t *);
 void conf_report_error(const char *, ...);
+void conf_report_warning(const char *, ...);
 void newconf_init(void);
 int add_conf_item(const char *topconf, const char *name, int type, void (*func) (void *));
 int remove_conf_item(const char *topconf, const char *name);