]> mj.ucw.cz Git - libucw.git/blobdiff - ucw/getopt.h
Main: Removing an already removed event is always safe.
[libucw.git] / ucw / getopt.h
index 9d023becb51417ccdfaa30dc2b13117b8e2ff4c0..5fe66cead34d435eb0d67a2d1044052f51d2e631 100644 (file)
@@ -31,10 +31,14 @@ void reset_getopt(void);    /** If you want to start parsing of the arguments from
  * The default config (DEFAULT_CONFIG config option) or NULL if already loaded.
  * You can set it to something else manually.
  */
  * The default config (DEFAULT_CONFIG config option) or NULL if already loaded.
  * You can set it to something else manually.
  */
-extern char *cf_def_file;              /* DEFAULT_CONFIG; NULL if already loaded */
-extern char *cf_env_file;              /** ENV_VAR_CONFIG **/
+extern char *cf_def_file;
+/**
+ * Name of environment variable that can override what configuration
+ * is loaded.
+ **/
+extern char *cf_env_file;
 int cf_reload(const char *file);       /** Reload configuration from @file, replace the old one. **/
 int cf_reload(const char *file);       /** Reload configuration from @file, replace the old one. **/
-int cf_load(const char *file);         /** Load configuration from @file. **/
+int cf_load(const char *file);         /** Load configuration from @file. If @file is NULL, reload all loaded configuration files. **/
 /**
  * Parse some part of configuration passed in @string.
  * The syntax is the same as in the <<config:,configuration file>>.
 /**
  * Parse some part of configuration passed in @string.
  * The syntax is the same as in the <<config:,configuration file>>.
@@ -53,17 +57,20 @@ int cf_set(const char *string);
 /**
  * List of operations used on items.
  * This macro is used to generate internal source code,
 /**
  * List of operations used on items.
  * This macro is used to generate internal source code,
- * but you may be interested in the actions it creates.
+ * but you may be interested in the list of operations it creates.
+ *
+ * Each operation corresponds to the same-named operation
+ * described in <<config:operations,configuration syntax>>.
  **/
 #define CF_OPERATIONS T(CLOSE) T(SET) T(CLEAR) T(ALL) \
  **/
 #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)
+  T(APPEND) T(PREPEND) T(REMOVE) T(EDIT) T(AFTER) T(BEFORE) T(COPY) T(RESET)
   /* Closing brace finishes previous block.
    * Basic attributes (static, dynamic, parsed) can be used with SET.
    * Dynamic arrays can be used with SET, APPEND, PREPEND.
    * Sections can be used with SET.
    * Lists can be used with everything. */
 #define T(x) OP_##x,
   /* Closing brace finishes previous block.
    * Basic attributes (static, dynamic, parsed) can be used with SET.
    * Dynamic arrays can be used with SET, APPEND, PREPEND.
    * Sections can be used with SET.
    * Lists can be used with everything. */
 #define T(x) OP_##x,
-enum cf_operation { CF_OPERATIONS };   /** Allowed operations on items. See <<def_CF_OPERATIONS,`CF_OPERATIONS`>>. **/
+enum cf_operation { CF_OPERATIONS };   /** Allowed operations on items. See <<def_CF_OPERATIONS,`CF_OPERATIONS`>> for list (they have an `OP_` prefix -- it means you use `OP_SET` instead of just `SET`). **/
 #undef T
 
 struct cf_item;
 #undef T
 
 struct cf_item;
@@ -173,7 +180,7 @@ void cf_journal_rollback_transaction(uns new_pool, struct cf_journal_item *oldj)
  * default configuration file (<<var_cf_def_file,`cf_def_file`>>) and processing
  * configuration options. The calling convention is the same as with GNU getopt_long(),
  * but you must prefix your own short/long options by the
  * default configuration file (<<var_cf_def_file,`cf_def_file`>>) and processing
  * configuration options. The calling convention is the same as with GNU getopt_long(),
  * but you must prefix your own short/long options by the
- * <<def_CF_LONG_OPTS,`CF_LONG_OPTS`>> or <<def_CF_SHORT_OPTS,`CF_SHORT_OPTS`>>or
+ * <<def_CF_LONG_OPTS,`CF_LONG_OPTS`>> or <<def_CF_SHORT_OPTS,`CF_SHORT_OPTS`>> or
  * pass <<def_CF_NO_LONG_OPTS,`CF_NO_LONG_OPTS`>> if there are no long options.
  *
  * The default configuration file can be overwritten by the --config options,
  * pass <<def_CF_NO_LONG_OPTS,`CF_NO_LONG_OPTS`>> if there are no long options.
  *
  * The default configuration file can be overwritten by the --config options,