#ifndef _UCW_GETOPT_H
#define _UCW_GETOPT_H
+#ifdef CONFIG_OWN_GETOPT
+#include "lib/getopt/getopt-sh.h"
+#else
#include <getopt.h>
+#endif
-/* Safe loading and reloading of configuration files */
+void reset_getopt(void);
-extern byte *cf_def_file; /* DEFAULT_CONFIG; NULL if already loaded */
-int cf_reload(byte *file);
-int cf_load(byte *file);
-int cf_set(byte *string);
+/* Safe loading and reloading of configuration files: conf-input.c */
-/* Direct access to configuration items */
+extern char *cf_def_file; /* DEFAULT_CONFIG; NULL if already loaded */
+int cf_reload(const char *file);
+int cf_load(const char *file);
+int cf_set(const char *string);
-#define CF_OPERATIONS T(CLOSE) T(SET) T(CLEAR) T(APPEND) T(PREPEND) \
- T(REMOVE) T(EDIT) T(AFTER) T(BEFORE) T(COPY)
+/* Direct access to configuration items: conf-intr.c */
+
+#define CF_OPERATIONS T(CLOSE) T(SET) T(CLEAR) T(ALL) \
+ T(APPEND) T(PREPEND) T(REMOVE) T(EDIT) T(AFTER) T(BEFORE) T(COPY)
/* Closing brace finishes previous block.
* Basic attributes (static, dynamic, parsed) can be used with SET.
* Dynamic arrays can be used with SET, APPEND, PREPEND.
#undef T
struct cf_item;
+char *cf_find_item(const char *name, struct cf_item *item);
+char *cf_write_item(struct cf_item *item, enum cf_operation op, int number, char **pars);
+
+/* Debug dumping: conf-dump.c */
+
struct fastbuf;
-byte *cf_find_item(byte *name, struct cf_item *item);
-byte *cf_write_item(struct cf_item *item, enum cf_operation op, int number, byte **pars);
void cf_dump_sections(struct fastbuf *fb);
+/* Journaling control: conf-journal.c */
+
+struct cf_journal_item;
+struct cf_journal_item *cf_journal_new_transaction(uns new_pool);
+void cf_journal_commit_transaction(uns new_pool, struct cf_journal_item *oldj);
+void cf_journal_rollback_transaction(uns new_pool, struct cf_journal_item *oldj);
+
/*
* cf_getopt() takes care of parsing the command-line arguments, loading the
* default configuration file (cf_def_file) and processing configuration options.
#define CF_USAGE_DEBUG
#endif
+// conf-input.c
int cf_getopt(int argc, char * const argv[], const char *short_opts, const struct option *long_opts, int *long_index);
#endif