1
|
1 /*****************************************************************************/
|
|
2 /* options.h - the global variables for the program */
|
122
|
3 /* Copyright (C) 1998-2003 Brian Masney <masneyb@gftp.org> */
|
1
|
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 2 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, write to the Free Software */
|
|
17 /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */
|
|
18 /*****************************************************************************/
|
|
19
|
33
|
20 /* $Id$ */
|
|
21
|
1
|
22 #include "gftp.h"
|
|
23
|
765
|
24 typedef /*@null@*/ char *gftp_sort_columns_tag;
|
|
25 static gftp_sort_columns_tag gftp_sort_columns[] = { N_("none"), N_("file"),
|
|
26 N_("size"), N_("user"),
|
|
27 N_("group"),
|
|
28 N_("datetime"),
|
|
29 N_("attribs"), NULL };
|
122
|
30
|
765
|
31 typedef /*@null@*/ char *gftp_sort_direction_tag;
|
|
32 static gftp_sort_direction_tag gftp_sort_direction[] = { N_("descending"),
|
|
33 N_("ascending"),
|
|
34 NULL };
|
122
|
35
|
|
36 static float gftp_maxkbs = 0.0;
|
|
37
|
|
38 gftp_config_vars gftp_global_config_vars[] =
|
|
39 {
|
227
|
40 {"", N_("General"), gftp_option_type_notebook, NULL, NULL,
|
|
41 GFTP_CVARS_FLAGS_SHOW_BOOKMARK, NULL, GFTP_PORT_GTK, NULL},
|
122
|
42
|
|
43 {"view_program", N_("View program:"), gftp_option_type_text, "", NULL, 0,
|
|
44 N_("The default program used to view files. If this is blank, the internal file viewer will be used"),
|
|
45 GFTP_PORT_GTK, NULL},
|
|
46 {"edit_program", N_("Edit program:"), gftp_option_type_text, "", NULL, 0,
|
|
47 N_("The default program used to edit files."), GFTP_PORT_GTK, NULL},
|
|
48 {"max_log_window_size", N_("Max Log Window Size:"),
|
|
49 gftp_option_type_int, 0, NULL, 0,
|
|
50 N_("The maximum size of the log window in bytes for the GTK+ port"),
|
|
51 GFTP_PORT_GTK, NULL},
|
184
|
52 {"remote_charsets", N_("Remote Character Sets:"),
|
227
|
53 gftp_option_type_text, "", NULL, GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
185
|
54 N_("This is a comma separated list of charsets to try to convert the remote messages to the current locale"),
|
184
|
55 GFTP_PORT_ALL, NULL},
|
473
|
56 {"remote_lc_time", N_("Remote LC_TIME:"),
|
|
57 gftp_option_type_text, "", NULL, GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
|
58 N_("This is the value of LC_TIME for the remote site. This is so that dates can be parsed properly in the directory listings."),
|
|
59 GFTP_PORT_ALL, NULL},
|
222
|
60 {"cache_ttl", N_("Cache TTL:"),
|
227
|
61 gftp_option_type_int, GINT_TO_POINTER(3600), NULL,
|
|
62 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
222
|
63 N_("The number of seconds to keep cache entries before they expire."),
|
|
64 GFTP_PORT_ALL, NULL},
|
1
|
65
|
122
|
66 {"append_transfers", N_("Append file transfers"),
|
|
67 gftp_option_type_checkbox, GINT_TO_POINTER(1), NULL, 0,
|
|
68 N_("Append new file transfers onto existing ones"), GFTP_PORT_GTK, NULL},
|
|
69 {"one_transfer", N_("Do one transfer at a time"),
|
|
70 gftp_option_type_checkbox, GINT_TO_POINTER(0), NULL, 0,
|
|
71 N_("Do only one transfer at a time?"), GFTP_PORT_GTK, NULL},
|
|
72 {"overwrite_default", N_("Overwrite by Default"),
|
227
|
73 gftp_option_type_checkbox, GINT_TO_POINTER(0), NULL,
|
|
74 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
122
|
75 N_("Overwrite files by default or set to resume file transfers"),
|
|
76 GFTP_PORT_GTK, NULL},
|
182
|
77 {"preserve_permissions", N_("Preserve file permissions"),
|
227
|
78 gftp_option_type_checkbox, GINT_TO_POINTER(1), NULL,
|
|
79 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
182
|
80 N_("Preserve file permissions of transfered files"), GFTP_PORT_ALL,
|
|
81 NULL},
|
560
|
82 {"preserve_time", N_("Preserve file time"),
|
|
83 gftp_option_type_checkbox, GINT_TO_POINTER(1), NULL,
|
|
84 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
|
85 N_("Preserve file times of transfered files"), GFTP_PORT_ALL,
|
|
86 NULL},
|
122
|
87 {"refresh_files", N_("Refresh after each file transfer"),
|
227
|
88 gftp_option_type_checkbox, GINT_TO_POINTER(0), NULL,
|
|
89 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
122
|
90 N_("Refresh the listbox after each file is transfered"), GFTP_PORT_GTK,
|
|
91 NULL},
|
|
92 {"sort_dirs_first", N_("Sort directories first"),
|
227
|
93 gftp_option_type_checkbox, GINT_TO_POINTER(1), NULL,
|
|
94 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
122
|
95 N_("Put the directories first then the files"), GFTP_PORT_ALL, NULL},
|
|
96 {"show_hidden_files", N_("Show hidden files"),
|
227
|
97 gftp_option_type_checkbox, GINT_TO_POINTER(1), NULL,
|
|
98 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
122
|
99 N_("Show hidden files in the listboxes"), GFTP_PORT_ALL, NULL},
|
320
|
100 {"show_trans_in_title", N_("Show transfer status in title"),
|
430
|
101 gftp_option_type_checkbox, GINT_TO_POINTER(0), NULL, 0,
|
320
|
102 N_("Show the file transfer status in the titlebar"), GFTP_PORT_GTK, NULL},
|
433
|
103 {"start_transfers", N_("Start file transfers"),
|
|
104 gftp_option_type_checkbox, GINT_TO_POINTER(1), NULL, 0,
|
|
105 N_("Automatically start the file transfers when they get queued"),
|
|
106 GFTP_PORT_GTK, NULL},
|
341
|
107 {"cmd_in_gui", N_("Allow manual commands in GUI"),
|
|
108 gftp_option_type_checkbox, GINT_TO_POINTER(0), NULL, 0,
|
808
|
109 N_("Allow entering manual commands in the GUI (functions like the text port)"),
|
|
110 GFTP_PORT_GTK, NULL},
|
|
111 {"remember_last_directory", N_("Remember last directory"),
|
|
112 gftp_option_type_checkbox, GINT_TO_POINTER(0), NULL, 0,
|
|
113 N_("Save the last local and remote directory when the application is closed"),
|
|
114 GFTP_PORT_GTK, NULL},
|
1
|
115
|
227
|
116 {"", N_("Network"), gftp_option_type_notebook, NULL, NULL,
|
|
117 GFTP_CVARS_FLAGS_SHOW_BOOKMARK, NULL, GFTP_PORT_GTK, NULL},
|
122
|
118 {"network_timeout", N_("Network timeout:"),
|
227
|
119 gftp_option_type_int, GINT_TO_POINTER(60), NULL,
|
|
120 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
122
|
121 N_("The timeout waiting for network input/output. This is NOT an idle timeout."),
|
|
122 GFTP_PORT_ALL, NULL},
|
|
123 {"retries", N_("Connect retries:"),
|
227
|
124 gftp_option_type_int, GINT_TO_POINTER(3), NULL,
|
|
125 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
561
|
126 N_("The number of auto-retries to do. Set this to 0 to retry indefinitely"),
|
122
|
127 GFTP_PORT_ALL, NULL},
|
|
128 {"sleep_time", N_("Retry sleep time:"),
|
227
|
129 gftp_option_type_int, GINT_TO_POINTER(30), NULL,
|
|
130 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
122
|
131 N_("The number of seconds to wait between retries"), GFTP_PORT_ALL, NULL},
|
|
132 {"maxkbs", N_("Max KB/S:"),
|
227
|
133 gftp_option_type_float, &gftp_maxkbs, NULL,
|
|
134 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
122
|
135 N_("The maximum KB/s a file transfer can get. (Set to 0 to disable)"),
|
|
136 GFTP_PORT_ALL, NULL},
|
527
|
137 {"trans_blksize", N_("Transfer Block Size:"),
|
|
138 gftp_option_type_int, GINT_TO_POINTER(20480), NULL,
|
|
139 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
|
140 N_("The block size that is used when transfering files. This should be a multiple of 1024."),
|
|
141 GFTP_PORT_ALL, NULL},
|
1
|
142
|
136
|
143 {"default_protocol", N_("Default Protocol:"),
|
125
|
144 gftp_option_type_textcombo, "FTP", NULL, 0,
|
|
145 N_("This specifies the default protocol to use"), GFTP_PORT_ALL, NULL},
|
313
|
146 #if defined (HAVE_GETADDRINFO) && defined (HAVE_GAI_STRERROR)
|
|
147 {"enable_ipv6", N_("Enable IPv6 support"),
|
|
148 gftp_option_type_checkbox, GINT_TO_POINTER(1), NULL,
|
|
149 GFTP_CVARS_FLAGS_SHOW_BOOKMARK,
|
|
150 N_("Enable IPv6 support"), GFTP_PORT_ALL, NULL},
|
|
151 #endif
|
125
|
152
|
122
|
153 {"list_dblclk_action", "",
|
|
154 gftp_option_type_int, GINT_TO_POINTER(0), NULL, 0,
|
|
155 N_("This defines what will happen when you double click a file in the file listboxes. 0=View file 1=Edit file 2=Transfer file"), 0, NULL},
|
|
156 {"listbox_local_width", "",
|
|
157 gftp_option_type_int, GINT_TO_POINTER(302), NULL, 0,
|
|
158 N_("The default width of the local files listbox"), 0, NULL},
|
|
159 {"listbox_remote_width", "",
|
|
160 gftp_option_type_int, GINT_TO_POINTER(302), NULL, 0,
|
|
161 N_("The default width of the remote files listbox"), 0, NULL},
|
|
162 {"listbox_file_height", "",
|
|
163 gftp_option_type_int, GINT_TO_POINTER(265), NULL, 0,
|
|
164 N_("The default height of the local/remote files listboxes"), 0, NULL},
|
|
165 {"transfer_height", "",
|
|
166 gftp_option_type_int, GINT_TO_POINTER(80), NULL, 0,
|
|
167 N_("The default height of the transfer listbox"), 0, NULL},
|
|
168 {"log_height", "",
|
|
169 gftp_option_type_int, GINT_TO_POINTER(105), NULL, 0,
|
|
170 N_("The default height of the logging window"), 0, NULL},
|
|
171 {"file_trans_column", "",
|
|
172 gftp_option_type_int, GINT_TO_POINTER(100), NULL, 0,
|
|
173 N_("The width of the filename column in the transfer window. Set this to 0 to have this column automagically resize."), 0, NULL},
|
|
174
|
616
|
175 {"host_value", "", gftp_option_type_text, "", NULL, 0, NULL, 0, NULL},
|
|
176 {"port_value", "", gftp_option_type_text, "", NULL, 0, NULL, 0, NULL},
|
|
177 {"user_value", "", gftp_option_type_text, "", NULL, 0, NULL, 0, NULL},
|
|
178
|
792
|
179 {"local_startup_directory", "", gftp_option_type_text, "", NULL, 0, NULL,
|
|
180 0, NULL},
|
|
181 {"remote_startup_directory", "", gftp_option_type_text, "", NULL, 0, NULL,
|
|
182 0, NULL},
|
|
183
|
122
|
184 {"local_sortcol", "",
|
|
185 gftp_option_type_intcombo, GINT_TO_POINTER(1), gftp_sort_columns, 0,
|
|
186 N_("The default column to sort by"), GFTP_PORT_TEXT, NULL},
|
|
187 {"local_sortasds", "",
|
|
188 gftp_option_type_intcombo, GINT_TO_POINTER(1), gftp_sort_direction, 0,
|
|
189 N_("Sort ascending or descending"), GFTP_PORT_TEXT, NULL},
|
|
190 {"remote_sortcol", "",
|
|
191 gftp_option_type_intcombo, GINT_TO_POINTER(1), gftp_sort_columns, 0,
|
|
192 N_("The default column to sort by"), GFTP_PORT_TEXT, NULL},
|
|
193 {"remote_sortasds", "",
|
|
194 gftp_option_type_intcombo, GINT_TO_POINTER(1), gftp_sort_direction, 0,
|
|
195 N_("Sort ascending or descending"), GFTP_PORT_TEXT, NULL},
|
37
|
196
|
122
|
197 {"local_file_width", "",
|
|
198 gftp_option_type_int, GINT_TO_POINTER(0), NULL, 0,
|
|
199 N_("The width of the filename column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
200 {"local_size_width", "",
|
|
201 gftp_option_type_int, GINT_TO_POINTER(85), NULL, 0,
|
|
202 N_("The width of the size column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
203 {"local_user_width", "",
|
|
204 gftp_option_type_int, GINT_TO_POINTER(75), NULL, 0,
|
|
205 N_("The width of the user column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
206 {"local_group_width", "",
|
|
207 gftp_option_type_int, GINT_TO_POINTER(76), NULL, 0,
|
|
208 N_("The width of the group column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
209 {"local_date_width", "",
|
|
210 gftp_option_type_int, GINT_TO_POINTER(120), NULL, 0,
|
|
211 N_("The width of the date column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
212 {"local_attribs_width", "",
|
|
213 gftp_option_type_int, GINT_TO_POINTER(75), NULL, 0,
|
|
214 N_("The width of the attribs column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
215 {"remote_file_width", "",
|
|
216 gftp_option_type_int, GINT_TO_POINTER(0), NULL, 0,
|
|
217 N_("The width of the filename column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
218 {"remote_size_width", "",
|
|
219 gftp_option_type_int, GINT_TO_POINTER(85), NULL, 0,
|
|
220 N_("The width of the size column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
221 {"remote_user_width", "",
|
|
222 gftp_option_type_int, GINT_TO_POINTER(75), NULL, 0,
|
|
223 N_("The width of the user column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
224 {"remote_group_width", "",
|
|
225 gftp_option_type_int, GINT_TO_POINTER(76), NULL, 0,
|
|
226 N_("The width of the group column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
227 {"remote_date_width", "",
|
|
228 gftp_option_type_int, GINT_TO_POINTER(120), NULL, 0,
|
|
229 N_("The width of the date column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
230 {"remote_attribs_width", "",
|
|
231 gftp_option_type_int, GINT_TO_POINTER(75), NULL, 0,
|
|
232 N_("The width of the attribs column in the file listboxes. Set this to 0 to have this column automagically resize. Set this to -1 to disable this column"), 0, NULL},
|
|
233 {"send_color", "",
|
|
234 gftp_option_type_color, "0:8600:0", NULL, 0,
|
|
235 N_("The color of the commands that are sent to the server"), 0, NULL},
|
|
236 {"recv_color", "",
|
|
237 gftp_option_type_color, "0:0:ffff", NULL, 0,
|
|
238 N_("The color of the commands that are received from the server"), 0, NULL},
|
|
239 {"error_color", "",
|
|
240 gftp_option_type_color, "ffff:0:0", NULL, 0,
|
|
241 N_("The color of the error messages"), 0, NULL},
|
|
242 {"misc_color", "",
|
|
243 gftp_option_type_color, "a000:8d00:4600", NULL, 0,
|
162
|
244 N_("The color of the rest of the log messages"), 0, NULL},
|
|
245 {NULL, NULL, 0, NULL, NULL, 0, NULL, 0, NULL}
|
122
|
246 };
|
1
|
247
|
122
|
248 supported_gftp_protocols gftp_protocols[] =
|
|
249 {
|
542
|
250 {N_("FTP"), rfc959_init, rfc959_register_module, "ftp", 21, 1, 1},
|
389
|
251
|
|
252 #ifdef USE_SSL
|
542
|
253 {N_("FTPS"), ftps_init, ftps_register_module, "ftps", 21, 1, 1},
|
389
|
254 #else
|
542
|
255 {N_("FTPS"), ftps_init, ftps_register_module, "ftps", 21, 0, 1},
|
389
|
256 #endif
|
|
257
|
542
|
258 {N_("HTTP"), rfc2068_init, rfc2068_register_module, "http", 80, 1, 1},
|
389
|
259
|
169
|
260 #ifdef USE_SSL
|
542
|
261 {N_("HTTPS"), https_init, https_register_module, "https", 443, 1, 1},
|
169
|
262 #else
|
542
|
263 {N_("HTTPS"), https_init, https_register_module, "https", 443, 0, 1},
|
169
|
264 #endif
|
389
|
265
|
542
|
266 {N_("Local"), local_init, local_register_module, "file", 0, 1, 0},
|
389
|
267
|
542
|
268 {N_("SSH2"), sshv2_init, sshv2_register_module, "ssh2", 22, 1, 1},
|
389
|
269
|
542
|
270 {N_("Bookmark"), bookmark_init, bookmark_register_module, "bookmark", 0, 0, 0},
|
661
|
271 {N_("FSP"), fsp_init, fsp_register_module, "fsp", 21, 1, 1},
|
542
|
272 {NULL, NULL, NULL, NULL, 0, 0, 0}
|
122
|
273 };
|
|
274
|
|
275 GHashTable * gftp_global_options_htable = NULL,
|
|
276 * gftp_config_list_htable = NULL,
|
|
277 * gftp_bookmarks_htable = NULL;
|
|
278
|
|
279 char gftp_version[] = "gFTP " VERSION;
|
|
280
|
|
281 GList * gftp_file_transfers = NULL,
|
|
282 * gftp_file_transfer_logs = NULL,
|
|
283 * gftp_options_list = NULL;
|
1
|
284
|
122
|
285 gftp_bookmarks_var * gftp_bookmarks = NULL;
|
1
|
286
|
765
|
287 /*@null@*/ FILE * gftp_logfd = NULL;
|
1
|
288
|
201
|
289 int gftp_configuration_changed = 0;
|
|
290
|