1 /* variables.h -- Description of user visible variables in Info.
2
3 Copyright 1993-2023 Free Software Foundation, Inc.
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18 Originally written by Brian Fox. */
19
20 #ifndef INFO_VARIABLES_H
21 #define INFO_VARIABLES_H
22
23 #include "window.h"
24
25 /* A variable (in the Info sense) is an integer value with a user-visible
26 name. You may supply an array of strings to complete over when the
27 variable is set; in that case, the variable is set to the index of the
28 string that the user chose. If you supply a null list, the user can
29 set the variable to a numeric value. */
30
31 /* Structure describing a user visible variable. */
32 typedef struct {
33 char *name; /* Polite name. */
34 char *doc; /* Documentation string. */
35 void *value; /* Address of value. */
36 char **choices; /* Array of strings or NULL if numeric only. */
37 int where_set; /* Where this variable was set. */
38 } VARIABLE_ALIST;
39
40 /* Values for VARIABLE_ALIST.where_set, in order of increasing priority. */
41 #define SET_BY_DEFAULT 0
42 #define SET_IN_CONFIG_FILE 1
43 #define SET_ON_COMMAND_LINE 2
44 #define SET_IN_SESSION 4
45
46 VARIABLE_ALIST *variable_by_name (char *name);
47
48 /* Make an array of REFERENCE which actually contains the names of the
49 variables available in Info. */
50 REFERENCE **make_variable_completions_array (void);
51
52 /* Set the value of an info variable. */
53 void set_variable (WINDOW *window, int count);
54 int set_variable_to_value (VARIABLE_ALIST *var, char *value, int where);
55
56 void describe_variable (WINDOW *window, int count);
57
58 /* The list of user-visible variables. */
59 extern int auto_footnotes_p;
60 extern int auto_tiling_p;
61 extern int terminal_use_visible_bell_p;
62 extern int info_error_rings_bell_p;
63 extern int gc_compressed_files;
64 extern int show_index_match;
65 extern int info_scroll_behaviour;
66 extern int window_scroll_step;
67 extern int cursor_movement_scrolls_p;
68 extern int ISO_Latin_p;
69 extern int scroll_last_node;
70 extern int min_search_length;
71 extern int search_skip_screen_p;
72 extern int infopath_no_defaults_p;
73 extern int preprocess_nodes_p;
74 extern int key_time;
75 extern int mouse_protocol;
76 extern int follow_strategy;
77 extern int nodeline_print;
78
79 typedef struct {
80 unsigned long mask;
81 unsigned long value;
82 } RENDITION;
83
84 extern RENDITION ref_rendition;
85 extern RENDITION hl_ref_rendition;
86 extern RENDITION match_rendition;
87
88
89 #endif /* not INFO_VARIABLES_H */