1
2
3
4
5
6
7 #ifndef MC_GLOBAL_H
8 #define MC_GLOBAL_H
9
10 #include <glib.h>
11
12 #if defined(HAVE_FUNC_ATTRIBUTE_WEAK) && defined(HAVE_TESTS)
13 #define MC_MOCKABLE __attribute__((weak))
14 #else
15 #define MC_MOCKABLE
16 #endif
17
18 #include "glibcompat.h"
19
20 #include "unixcompat.h"
21
22 #include "fs.h"
23 #include "shell.h"
24 #include "mcconfig.h"
25
26
27
28 #ifdef ENABLE_NLS
29 #include <libintl.h>
30 #define _(String) gettext (String)
31 #ifdef gettext_noop
32 #define N_(String) gettext_noop (String)
33 #else
34 #define N_(String) (String)
35 #endif
36 #else
37 #define textdomain(String) 1
38 #define gettext(String) (String)
39 #define ngettext(String1,String2,Num) (((Num) == 1) ? (String1) : (String2))
40 #define dgettext(Domain,Message) (Message)
41 #define dcgettext(Domain,Message,Type) (Message)
42 #define bindtextdomain(Domain,Directory) 1
43 #define _(String) (String)
44 #define N_(String) (String)
45 #endif
46
47 #ifdef HAVE_FUNC_ATTRIBUTE_FALLTHROUGH
48 #define MC_FALLTHROUGH __attribute__((fallthrough))
49 #else
50 #define MC_FALLTHROUGH
51 #endif
52
53 #ifdef HAVE_FUNC_ATTRIBUTE_UNUSED
54 #define MC_UNUSED __attribute__((unused))
55 #else
56 #define MC_UNUSED
57 #endif
58
59 #ifdef USE_MAINTAINER_MODE
60 #include "lib/logging.h"
61 #endif
62
63
64 #define BUF_10K 10240L
65 #define BUF_8K 8192L
66 #define BUF_4K 4096L
67 #define BUF_1K 1024L
68
69 #define BUF_LARGE BUF_1K
70 #define BUF_MEDIUM 512
71 #define BUF_SMALL 128
72 #define BUF_TINY 64
73
74 #define UTF8_CHAR_LEN 6
75
76
77
78 #define SUBSHELL_EXIT 128
79
80 #define MC_ERROR g_quark_from_static_string (PACKAGE)
81
82 #define DEFAULT_CHARSET "ASCII"
83
84
85
86
87 typedef enum
88 {
89 MC_RUN_FULL = 0,
90 MC_RUN_EDITOR,
91 MC_RUN_VIEWER,
92 MC_RUN_DIFFVIEWER
93 } mc_run_mode_t;
94
95
96
97 typedef struct
98 {
99 const char *mc_version;
100
101 mc_run_mode_t mc_run_mode;
102 gboolean run_from_parent_mc;
103
104 gboolean midnight_shutdown;
105
106
107
108 char *sysconfig_dir;
109
110 char *share_data_dir;
111
112 char *profile_name;
113
114 mc_config_t *main_config;
115 mc_config_t *panels_config;
116
117 #ifdef HAVE_CHARSET
118
119 int source_codepage;
120 int display_codepage;
121 #else
122
123 gboolean eight_bit_clean;
124
125
126
127
128 gboolean full_eight_bits;
129 #endif
130
131
132
133
134 gboolean utf8_display;
135
136
137 gboolean message_visible;
138
139 gboolean keybar_visible;
140
141 #ifdef ENABLE_BACKGROUND
142
143 gboolean we_are_background;
144 #endif
145
146 struct
147 {
148
149 gboolean confirm_history_cleanup;
150
151
152 gboolean show_all_if_ambiguous;
153
154
155
156 gboolean is_right;
157 } widget;
158
159
160 mc_shell_t *shell;
161
162 struct
163 {
164
165 char *skin;
166
167 gboolean shadows;
168
169 char *setup_color_string;
170 char *term_color_string;
171 char *color_terminal_string;
172
173 char *command_line_colors;
174
175 #ifndef LINUX_CONS_SAVER_C
176
177 char console_flag;
178 #endif
179
180 gboolean use_subshell;
181
182 #ifdef ENABLE_SUBSHELL
183
184 int subshell_pty;
185 #endif
186
187
188
189 gboolean xterm_flag;
190
191
192 gboolean disable_x11;
193
194
195
196 gboolean slow_terminal;
197
198
199 gboolean disable_colors;
200
201
202 gboolean ugly_line_drawing;
203
204
205 gboolean old_mouse;
206
207
208
209 gboolean alternate_plus_minus;
210 } tty;
211
212 struct
213 {
214
215 gboolean cd_symlinks;
216
217
218 gboolean preallocate_space;
219
220 } vfs;
221 } mc_global_t;
222
223
224
225 extern mc_global_t mc_global;
226
227
228
229
230 #endif