3 * Common functionality of a less principled nature
5 * (c) 2020 Mark Wooding
8 /*----- Licensing notice --------------------------------------------------*
10 * This file is part of Runlisp, a tool for invoking Common Lisp scripts.
12 * Runlisp is free software: you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the
14 * Free Software Foundation; either version 3 of the License, or (at your
15 * option) any later version.
17 * Runlisp is distributed in the hope that it will be useful, but WITHOUT
18 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 * You should have received a copy of the GNU General Public License
23 * along with Runlisp. If not, see <https://www.gnu.org/licenses/>.
33 /*----- Externally defined types ------------------------------------------*/
38 /*----- Public variables --------------------------------------------------*/
40 extern struct config config
;
41 extern struct config_section
*toplevel
, *builtin
, *common
, *env
;
42 extern unsigned verbose
;
44 /*----- Functions provided ------------------------------------------------*/
46 extern const char *my_getenv(const char */
*name*/
, const char */
*dflt*/
);
47 extern long parse_int(const char */
*what*/
, const char */
*p*/
,
48 long /*min*/, long /*max*/);
49 extern void argv_string(struct dstr */
*d*/
, const struct argv */
*av*/
);
52 #define FEF_VERBOSE 2u
53 extern int file_exists_p(const char */
*path*/
, unsigned /*f*/);
54 extern int found_in_path_p(const char */
*prog*/
, unsigned /*f*/);
57 #define TEF_VERBOSE 2u
58 extern int try_exec(struct argv */
*av*/
, unsigned /*f*/);
60 extern void read_config_file(const char */
*what*/
,
61 const char */
*file*/
, unsigned /*f*/);
62 extern void read_config_dir(const char */
*what*/
,
63 const char */
*path*/
, unsigned /*f*/);
64 extern void read_config_path(const char */
*path*/
, unsigned /*f*/);
65 extern int set_config_var(const char */
*assign*/
);
66 extern void init_config(void);
67 extern void load_default_config(void);
68 extern void dump_config(void);
70 /*----- That's all, folks -------------------------------------------------*/