1 #pragma once
2 #include "compiler.h"
3 
4 extern const char PARSE_YES[];
5 extern const char PARSE_NO[];
6 extern const char PARSE_CLOBBER[];
7 
8 struct cfginfo
9 {
10   const char *all_locale_fonts;
11   const char *alt_print_command_default;
12   const char *altprintcommand;
13   const char *autosave_on_quit;
14   const char *colorfile;
15   const char *datadir;
16   const char *disable_label;
17   const char *disable_magic_controls;
18   const char *disable_shape_controls;
19   const char *disable_print;
20   const char *disable_quit;
21   const char *disable_save;
22   const char *disable_screensaver;
23   const char *disable_stamp_controls;
24   const char *dont_do_xor;
25   const char *dont_load_stamps;
26   const char *exportdir;
27   const char *fullscreen;
28   const char *grab_input;
29   const char *hide_cursor;
30   const char *keymouse;
31   const char *mirrorstamps;
32   const char *native_screensize;
33   const char *new_colors_last;
34   const char *no_button_distinction;
35   const char *no_fancy_cursors;
36   const char *no_system_fonts;
37   const char *noshortcuts;
38   const char *ok_to_use_lockfile;
39   const char *only_uppercase;
40   const char *papersize;
41   const char *parsertmp_fullscreen_native;
42   const char *parsertmp_lang;
43   const char *parsertmp_locale;
44   const char *parsertmp_sysconfig;
45   const char *parsertmp_windowsize;
46   const char *button_size;
47   const char *colors_rows;
48   const char *print_delay;
49   const char *printcommand;
50 //  const char *promptless_save;
51   const char *_promptless_save_over;
52   const char *_promptless_save_over_new;
53   const char *_promptless_save_over_ask;
54   const char *rotate_orientation;
55   const char *savedir;
56   const char *simple_shapes;
57   const char *stamp_size_override;
58   const char *start_blank;
59   const char *use_print_config;
60   const char *use_sound;
61   const char *use_stereo;
62   const char *wheely;
63   const char *mouseaccessibility;
64   const char *onscreen_keyboard;
65   const char *onscreen_keyboard_layout;
66   const char *onscreen_keyboard_disable_change;
67   const char *joystick_dev;
68   const char *joystick_slowness;
69   const char *joystick_lowthreshold;
70   const char *joystick_maxsteps;
71   const char *joystick_hat_slowness;
72   const char *joystick_hat_timeout;
73   const char *joystick_button_escape;
74   const char *joystick_button_selectbrushtool;
75   const char *joystick_button_selectstamptool;
76   const char *joystick_button_selectlinestool;
77   const char *joystick_button_selectshapestool;
78   const char *joystick_button_selecttexttool;
79   const char *joystick_button_selectlabeltool;
80   const char *joystick_button_selectmagictool;
81   const char *joystick_button_undo;
82   const char *joystick_button_redo;
83   const char *joystick_button_selecterasertool;
84   const char *joystick_button_new;
85   const char *joystick_button_open;
86   const char *joystick_button_save;
87   const char *joystick_button_pagesetup;
88   const char *joystick_button_print;
89   const char *joystick_buttons_ignore;
90 
91 };
92 
93 #define CFGINFO_MAXOFFSET  (sizeof(struct cfginfo))
94 
95 extern void parse_one_option(struct cfginfo *restrict tmpcfg, const char *str, const char *opt,
96                              const char *restrict src);
97