X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=inline;f=lib%2Fgetopt.h;h=c6383ea741974490dcf3ac69f498a17ddc69a120;hb=90afcc18dbf7cb6c682e1efb994007f03e304422;hp=1ac561407dc8e1ba5b9a222502bc8fc87c7ca5c9;hpb=23e1e8f1890197a998b79b292a0a45343aecf6a3;p=libucw.git diff --git a/lib/getopt.h b/lib/getopt.h index 1ac56140..c6383ea7 100644 --- a/lib/getopt.h +++ b/lib/getopt.h @@ -11,19 +11,25 @@ #ifndef _UCW_GETOPT_H #define _UCW_GETOPT_H +#ifdef CONFIG_OWN_GETOPT +#include "lib/getopt/getopt-sh.h" +#else #include +#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. @@ -34,11 +40,21 @@ enum cf_operation { CF_OPERATIONS }; #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. @@ -69,6 +85,7 @@ void cf_dump_sections(struct fastbuf *fb); #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