removal due to another working script
[trueprint.git] / src / options.h
blobd244963dc82d878d003642d5acff74eef1acdbc4
1 /*
2 * File:
3 * options.h
4 * Supports option processing.
5 * Declaration functions are used to declare an option:
6 * - specify either var or handler, not both.
7 * - handler will be called just once.
8 */
10 typedef enum option_class {
11 OPT_MISC, /* Miscellaneous options */
12 OPT_PAGE_FURNITURE, /* Options that affect page furniture */
13 OPT_TEXT_FORMAT, /* Options that affect text layout */
14 OPT_PRINT, /* Options that (de)select stuff to print */
15 OPT_PAGE_FORMAT, /* Options that affect overall page presentation */
16 OPT_OUTPUT /* Options that affect or control where output goes */
17 } option_class;
19 void setup_options(void);
20 void handle_string_options(char *);
21 unsigned int handle_options(int, char **);
22 void set_option_defaults(void);
23 void print_usage_msgs(option_class);
26 * noparm option - option with no parameter
27 * If default_opt is true then the handler will always
28 * be called. It is up to the handler to work out if this
29 * option should be obeyed or not. This is intended to
30 * handle the case e.g. for -1, -2, -3 or -4 where
31 * -1 is the default - the handler will remember if
32 * any other option was invoked first. If invoked
33 * because of the default_opt flag then set_default will
34 * be used.
35 * Must specify a handler and a set_default.
37 void noparm_option(char *c, char *s,
38 boolean default_opt,
39 void (*handler)(const char *p, const char *s),
40 void (*set_default)(void),
41 option_class class,
42 char *help_string);
44 /* option that takes an optional string */
45 void optional_string_option(char *c, char *s,
46 void (*handler)(const char *p, const char *s, char *value),
47 option_class class,
48 char *help_string);
51 * boolean option - either y or n
53 void boolean_option(char *c, char *s1, char *s2, boolean default_value,
54 boolean *var,
55 void (*handler)(const char *p, const char *s, boolean value),
56 void (*set_default)(boolean value),
57 option_class class,
58 char *true_help_string,
59 char *false_help_string);
61 void choice_option(char *c, char *s1, char *s2,
62 char choice1, char choice2,
63 char *var,
64 void (*handler)(const char *p, const char *s, char value),
65 void (*set_default)(char value),
66 option_class class,
67 char *choice1_help_string,
68 char *choice2_help_string);
70 /* char option - one of a set of characters */
71 void char_option(char *c, char *s, char default_value,
72 char *valid_set,
73 char *var,
74 void (*handler)(const char *p, const char *s, char value, char *var),
75 void (*set_default)(char value),
76 option_class class,
77 char *help_string);
79 /* short & int options */
80 void short_option(char *c, char *s, short default_value,
81 char *special, short special_value,
82 short min, short max,
83 short *var,
84 void (*handler)(const char *p, const char *s, short value, short min, short max),
85 void (*set_default)(short value),
86 option_class class,
87 char *help_string,
88 char *special_help_string);
90 void int_option(char *c, char *s, int default_value,
91 char *special, int special_value,
92 int min, int max,
93 int *var,
94 void (*handler)(const char *p, const char *s, int value, int min, int max),
95 void (*set_default)(int value),
96 option_class class,
97 char *help_string,
98 char *special_help_string);
100 /* string option */
101 void string_option(char *c, char *s, char *default_value,
102 char **var,
103 void (*handler)(const char *p, const char *s, char *value),
104 void (*set_default)(char *value),
105 option_class class,
106 char *help_string);
108 /* flag option for setting string */
109 void flag_string_option(char *c, char *s1, char *s2, boolean default_value,
110 char *true_value, char *false_value,
111 char **var,
112 void (*handler)(const char *p, const char *s, boolean value, char *true_value, char *false_value),
113 void (*set_default)(boolean value, char *string),
114 option_class class,
115 char *set_help_string,
116 char *not_set_help_string);