send.h: Document cpp magic.
[paraslash.git] / lsu.h
1 /* Copyright (C) 2018 Andre Noll <maan@tuebingen.mpg.de>, see file COPYING. */
2
3 /** \file lsu.h Lopsub Utilities, enums and public functions. */
4 int lsu_com_help(bool long_help, const struct lls_parse_result *lpr,
5                 const struct lls_suite *suite,
6                 const char *(*aux_info_cb)(unsigned cmd_num, bool verbose),
7                 char **result, unsigned *num_chars);
8
9 /** Flags for \ref lsu_merge_config_file_options(). */
10 enum lsu_merge_cf_flags {
11         /**
12          * Whether the options specified in the configuration file should
13          * override the currently effective options. At application startup
14          * this is usually unset so that command line options take precedence
15          * over config file options. However, if the application supports
16          * re-reading the configuration, it can make sense to enable this flag.
17          */
18         MCF_OVERRIDE = 1,
19         /**
20          * After the two lopsub parse results have been merged, the merged
21          * parse result usually becomes the effective configuration and the
22          * parse result which corresponds to the former effective options is no
23          * longer needed. Therefore \ref lsu_merge_config_file_options() frees
24          * this former parse result by default. This flag instructs the
25          * function to keep it. This is mostly useful if the application
26          * supports re-reading the config file so that the parse result which
27          * corresponds to the command line options is kept for future calls to
28          * \ref lsu_merge_config_file_options().
29          */
30         MCF_DONT_FREE = 2,
31 };
32
33 int lsu_merge_config_file_options(const char *path, const char *dflt,
34                 struct lls_parse_result **lpr, const struct lls_command *cmd,
35                 const struct lls_suite *suite, unsigned flags);