2 * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2020 the Claws Mail team and Hiroyuki Yamamoto
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.
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.
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/>.
21 #include "claws-features.h"
27 #include <glib/gi18n.h>
29 #include <gdk/gdkkeysyms.h>
34 #include <sys/types.h>
39 #include "prefs_gtk.h"
40 #include "prefs_common.h"
41 #include "prefs_display_header.h"
42 #include "prefs_summary_column.h"
43 #include "prefs_folder_column.h"
44 #include "prefs_migration.h"
45 #include "mainwindow.h"
46 #include "summaryview.h"
47 #include "folderview.h"
48 #include "messageview.h"
49 #include "manage_window.h"
55 #include "alertpanel.h"
59 #include "folderview.h"
60 #include "stock_pixmap.h"
61 #include "prefswindow.h"
62 #include "colorlabel.h"
63 #include "passwordstore.h"
64 #include "file-utils.h"
66 #ifndef USE_ALT_ADDRBOOK
67 #include "addrcustomattr.h"
76 PrefsCommon prefs_common
;
82 * In the Windows version prefs_common contains
83 * - the non-OS-specific settings of the "Common" section and
84 * - the OS-specific settings of the "CommonWin32" section
85 * The OS-specific settings of the "Common" section are not used
86 * but saved in prefs_unix.
89 # define SPECIFIC_PREFS prefs_unix
91 static PrefsCommon prefs_unix
;
93 static PrefParam param_os_specific
[] = {
96 &prefs_common
.extinc_cmd
, P_STRING
, NULL
, NULL
, NULL
},
97 {"newmail_notify_cmd", "",
98 &prefs_common
.newmail_notify_cmd
, P_STRING
, NULL
, NULL
, NULL
},
101 {"message_font_gtk2", "Monospace 9",
102 &prefs_common
.textfont
, P_STRING
, NULL
, NULL
, NULL
},
103 {"print_font_gtk2", "Monospace 9",
104 &prefs_common
.printfont
, P_STRING
, NULL
, NULL
, NULL
},
105 {"small_font_gtk2", "Sans 9",
106 &prefs_common
.smallfont
, P_STRING
, NULL
, NULL
, NULL
},
107 {"normal_font_gtk2", "Sans 9",
108 &prefs_common
.normalfont
, P_STRING
, NULL
, NULL
, NULL
},
109 {"bold_font_gtk2", "Sans 9 Bold",
110 &prefs_common
.boldfont
, P_STRING
, NULL
, NULL
, NULL
},
112 {"attach_save_directory", NULL
,
113 &prefs_common
.attach_save_dir
, P_STRING
, NULL
, NULL
, NULL
},
114 {"attach_load_directory", NULL
,
115 &prefs_common
.attach_load_dir
, P_STRING
, NULL
, NULL
, NULL
},
118 {"mime_textviewer", NULL
,
119 &prefs_common
.mime_textviewer
, P_STRING
, NULL
, NULL
, NULL
},
120 {"mime_open_command", "notepad '%s'",
121 &prefs_common
.mime_open_cmd
, P_STRING
, NULL
, NULL
, NULL
},
124 {"pixmap_theme_path", DEFAULT_PIXMAP_THEME
,
125 &prefs_common
.pixmap_theme_path
, P_STRING
, NULL
, NULL
, NULL
},
127 {"enable_alpha_svg", "TRUE",
128 &prefs_common
.enable_alpha_svg
, P_BOOL
, NULL
, NULL
, NULL
},
129 {"enable_pixmap_scaling", "TRUE",
130 &prefs_common
.enable_pixmap_scaling
, P_BOOL
, NULL
, NULL
, NULL
},
131 {"pixmap_scaling_auto", "TRUE",
132 &prefs_common
.pixmap_scaling_auto
, P_BOOL
, NULL
, NULL
, NULL
},
133 {"pixmap_scaling_ppi", "96",
134 &prefs_common
.pixmap_scaling_ppi
, P_INT
, NULL
, NULL
, NULL
},
138 {"ext_editor_command", "notepad %s",
139 &prefs_common
.ext_editor_cmd
, P_STRING
, NULL
, NULL
, NULL
},
141 {NULL
, NULL
, NULL
, P_OTHER
, NULL
, NULL
, NULL
}
144 # define SPECIFIC_PREFS prefs_common
148 parameter name, default value, pointer to the prefs variable, data type,
149 pointer to the widget pointer,
150 pointer to the function for data setting,
151 pointer to the function for widget setting
154 static PrefParam param
[] = {
155 {"config_version", "0",
156 &prefs_common
.config_version
, P_INT
, NULL
, NULL
, NULL
},
159 {"use_ext_inc", "FALSE", &prefs_common
.use_extinc
, P_BOOL
,
161 {"ext_inc_path", DEFAULT_INC_PATH
, &SPECIFIC_PREFS
.extinc_cmd
, P_STRING
,
164 {"autochk_newmail", "FALSE", &prefs_common
.autochk_newmail
, P_BOOL
,
166 {"autochk_interval", "600", &prefs_common
.autochk_itv
, P_INT
,
168 {"check_on_startup", "FALSE", &prefs_common
.chk_on_startup
, P_BOOL
,
170 {"open_inbox_on_inc", "FALSE", &prefs_common
.open_inbox_on_inc
,
171 P_BOOL
, NULL
, NULL
, NULL
},
172 {"scan_all_after_inc", "FALSE", &prefs_common
.scan_all_after_inc
,
173 P_BOOL
, NULL
, NULL
, NULL
},
174 {"newmail_notify_manu", "FALSE", &prefs_common
.newmail_notify_manu
,
175 P_BOOL
, NULL
, NULL
, NULL
},
176 {"newmail_notify_auto", "FALSE", &prefs_common
.newmail_notify_auto
,
177 P_BOOL
, NULL
, NULL
, NULL
},
178 {"newmail_notify_cmd", "", &SPECIFIC_PREFS
.newmail_notify_cmd
, P_STRING
,
180 {"receive_dialog_mode", "2", &prefs_common
.recv_dialog_mode
, P_ENUM
,
182 {"receivewin_width", "460", &prefs_common
.receivewin_width
, P_INT
,
184 {"receivewin_height", "-1", &prefs_common
.receivewin_height
, P_INT
,
186 {"no_receive_error_panel", "FALSE", &prefs_common
.no_recv_err_panel
,
187 P_BOOL
, NULL
, NULL
, NULL
},
188 {"close_receive_dialog", "TRUE", &prefs_common
.close_recv_dialog
,
189 P_BOOL
, NULL
, NULL
, NULL
},
192 {"save_message", "TRUE", &prefs_common
.savemsg
, P_BOOL
,
194 {"confirm_send_queued_messages", "FALSE", &prefs_common
.confirm_send_queued_messages
,
195 P_BOOL
, NULL
, NULL
, NULL
},
197 {"send_dialog_mode", "0", &prefs_common
.send_dialog_invisible
, P_BOOL
,
200 {"send_dialog_mode", "1", &prefs_common
.send_dialog_invisible
, P_BOOL
,
203 {"sendwin_width", "460", &prefs_common
.sendwin_width
, P_INT
,
205 {"sendwin_height", "-1", &prefs_common
.sendwin_height
, P_INT
,
208 {"outgoing_charset", CS_AUTO
, &prefs_common
.outgoing_charset
, P_STRING
,
210 {"encoding_method", "0", &prefs_common
.encoding_method
, P_ENUM
,
212 {"outgoing_fallback_to_ascii", "TRUE", &prefs_common
.outgoing_fallback_to_ascii
, P_BOOL
,
214 {"rewrite_first_from", "TRUE", &prefs_common
.rewrite_first_from
,
215 P_BOOL
, NULL
, NULL
, NULL
},
216 {"warn_empty_subj", "TRUE", &prefs_common
.warn_empty_subj
,
217 P_BOOL
, NULL
, NULL
, NULL
},
218 {"warn_sending_many_recipients_num", "0", &prefs_common
.warn_sending_many_recipients_num
, P_INT
,
220 {"hide_timezone", "FALSE", &prefs_common
.hide_timezone
,
221 P_BOOL
, NULL
, NULL
, NULL
},
222 {"allow_jisx0201_kana", "FALSE", &prefs_common
.allow_jisx0201_kana
,
223 P_BOOL
, NULL
, NULL
, NULL
},
226 {"auto_ext_editor", "FALSE", &prefs_common
.auto_exteditor
, P_BOOL
,
228 {"forward_as_attachment", "FALSE", &prefs_common
.forward_as_attachment
,
229 P_BOOL
, NULL
, NULL
, NULL
},
230 {"redirect_keep_from", "FALSE",
231 &prefs_common
.redirect_keep_from
, P_BOOL
,
233 {"undo_level", "50", &prefs_common
.undolevels
, P_INT
,
235 {"compose_with_format", "FALSE", &prefs_common
.compose_with_format
, P_BOOL
,
237 {"compose_subject_format", "",
238 &prefs_common
.compose_subject_format
, P_STRING
, NULL
, NULL
, NULL
},
239 {"compose_body_format", N_("Hello,\\n"),
240 &prefs_common
.compose_body_format
, P_STRING
, NULL
, NULL
, NULL
},
241 {"show_compose_margin", "FALSE", &prefs_common
.show_compose_margin
, P_BOOL
,
243 {"type_any_header", "FALSE", &prefs_common
.type_any_header
, P_BOOL
,
247 {"linewrap_length", "72", &prefs_common
.linewrap_len
, P_INT
,
249 {"linewrap_quotation", "TRUE", &prefs_common
.linewrap_quote
, P_BOOL
,
251 {"linewrap_pastes", "TRUE", &prefs_common
.linewrap_pastes
, P_BOOL
,
253 {"primary_paste_unselects", "FALSE", &prefs_common
.primary_paste_unselects
, P_BOOL
,
255 {"linewrap_auto", "TRUE", &prefs_common
.autowrap
, P_BOOL
,
257 {"auto_indent", "TRUE", &prefs_common
.auto_indent
, P_BOOL
,
259 {"autosave", "TRUE", &prefs_common
.autosave
,
260 P_BOOL
, NULL
, NULL
, NULL
},
261 {"autosave_length", "50", &prefs_common
.autosave_length
, P_INT
,
263 {"autosave_encrypted", "FALSE", &prefs_common
.autosave_encrypted
,
264 P_BOOL
, NULL
, NULL
, NULL
},
265 {"warn_large_insert", "TRUE", &prefs_common
.warn_large_insert
,
266 P_BOOL
, NULL
, NULL
, NULL
},
267 {"warn_large_insert_size", "500", &prefs_common
.warn_large_insert_size
,
268 P_INT
, NULL
, NULL
, NULL
},
270 {"enable_aspell", "TRUE", &prefs_common
.enable_aspell
, P_BOOL
,
272 {"dictionary", "", &prefs_common
.dictionary
, P_STRING
,
274 {"alt_dictionary", "", &prefs_common
.alt_dictionary
, P_STRING
,
276 {"use_alternate_dict", "FALSE", &prefs_common
.use_alternate
, P_BOOL
,
278 {"check_while_typing", "TRUE", &prefs_common
.check_while_typing
, P_BOOL
,
280 {"recheck_when_changing_dict", "TRUE", &prefs_common
.recheck_when_changing_dict
,
281 P_BOOL
, NULL
, NULL
, NULL
},
282 {"misspelled_color", "#ff0000", &prefs_common
.color
[COL_MISSPELLED
],
283 P_COLOR
, NULL
, NULL
, NULL
},
284 {"use_both_dicts", "FALSE", &prefs_common
.use_both_dicts
, P_BOOL
,
287 {"reply_with_quote", "TRUE", &prefs_common
.reply_with_quote
, P_BOOL
,
289 {"compose_dnd_insert_or_attach", "0", &prefs_common
.compose_dnd_mode
, P_ENUM
,
292 /* Account autoselection */
293 {"reply_account_autoselect", "TRUE",
294 &prefs_common
.reply_account_autosel
, P_BOOL
,
296 {"forward_account_autoselect", "TRUE",
297 &prefs_common
.forward_account_autosel
, P_BOOL
,
299 {"reedit_account_autoselect", "TRUE",
300 &prefs_common
.reedit_account_autosel
, P_BOOL
,
303 {"default_reply_list", "TRUE", &prefs_common
.default_reply_list
, P_BOOL
,
307 {"show_ruler", "TRUE", &prefs_common
.show_ruler
, P_BOOL
,
310 {"show_ruler", "FALSE", &prefs_common
.show_ruler
, P_BOOL
,
315 {"reply_quote_mark", "> ", &prefs_common
.quotemark
, P_STRING
,
317 {"reply_quote_format", N_("On %d\\n%f wrote:\\n\\n%q\\n%X"),
318 &prefs_common
.quotefmt
, P_STRING
, NULL
, NULL
, NULL
},
320 {"forward_quote_mark", "> ", &prefs_common
.fw_quotemark
, P_STRING
,
322 {"forward_quote_format",
323 N_("\\n\\nBegin forwarded message:\\n\\n"
324 "?d{Date: %d\\n}?f{From: %f\\n}?t{To: %t\\n}?c{Cc: %c\\n}"
325 "?n{Newsgroups: %n\\n}?s{Subject: %s\\n}\\n\\n%M"),
326 &prefs_common
.fw_quotefmt
, P_STRING
,
328 {"quote_chars", ">", &prefs_common
.quote_chars
, P_STRING
,
334 {"message_font_gtk2", "Monospace 9",
335 &SPECIFIC_PREFS
.textfont
, P_STRING
, NULL
, NULL
, NULL
},
336 {"print_font_gtk2", "Monospace 9",
337 &SPECIFIC_PREFS
.printfont
, P_STRING
, NULL
, NULL
, NULL
},
338 {"small_font_gtk2", "Sans 9",
339 &SPECIFIC_PREFS
.smallfont
, P_STRING
, NULL
, NULL
, NULL
},
340 {"normal_font_gtk2", "Sans 9",
341 &SPECIFIC_PREFS
.normalfont
, P_STRING
, NULL
, NULL
, NULL
},
342 {"bold_font_gtk2", "Sans Bold 9",
343 &SPECIFIC_PREFS
.boldfont
, P_STRING
, NULL
, NULL
, NULL
},
345 {"message_font_gtk2", "Monospace 8",
346 &SPECIFIC_PREFS
.textfont
, P_STRING
, NULL
, NULL
, NULL
},
347 {"print_font_gtk2", "Monospace 8",
348 &SPECIFIC_PREFS
.printfont
, P_STRING
, NULL
, NULL
, NULL
},
349 {"small_font_gtk2", "Sans 8",
350 &SPECIFIC_PREFS
.smallfont
, P_STRING
, NULL
, NULL
, NULL
},
351 {"normal_font_gtk2", "Sans 8",
352 &SPECIFIC_PREFS
.normalfont
, P_STRING
, NULL
, NULL
, NULL
},
353 {"bold_font_gtk2", "Sans Bold 8",
354 &SPECIFIC_PREFS
.boldfont
, P_STRING
, NULL
, NULL
, NULL
},
357 {"use_different_print_font", "FALSE", &prefs_common
.use_different_print_font
, P_BOOL
,
359 {"derive_from_normal_font", "TRUE", &prefs_common
.derive_from_normal_font
, P_BOOL
,
363 {"custom_color1", "#ff9900", &prefs_common
.custom_colorlabel
[0].color
, P_COLOR
,
365 {"custom_colorlabel1", N_("Orange"), &prefs_common
.custom_colorlabel
[0].label
, P_STRING
,
367 {"custom_color2", "#ff0000", &prefs_common
.custom_colorlabel
[1].color
, P_COLOR
,
369 {"custom_colorlabel2", N_("Red"), &prefs_common
.custom_colorlabel
[1].label
, P_STRING
,
371 {"custom_color3", "#ff66ff", &prefs_common
.custom_colorlabel
[2].color
, P_COLOR
,
373 {"custom_colorlabel3", N_("Pink"), &prefs_common
.custom_colorlabel
[2].label
, P_STRING
,
375 {"custom_color4", "#00ccff", &prefs_common
.custom_colorlabel
[3].color
, P_COLOR
,
377 {"custom_colorlabel4", N_("Sky blue"), &prefs_common
.custom_colorlabel
[3].label
, P_STRING
,
379 {"custom_color5", "#0000ff", &prefs_common
.custom_colorlabel
[4].color
, P_COLOR
,
381 {"custom_colorlabel5", N_("Blue"), &prefs_common
.custom_colorlabel
[4].label
, P_STRING
,
383 {"custom_color6", "#009900", &prefs_common
.custom_colorlabel
[5].color
, P_COLOR
,
385 {"custom_colorlabel6", N_("Green"), &prefs_common
.custom_colorlabel
[5].label
, P_STRING
,
387 {"custom_color7", "#663333", &prefs_common
.custom_colorlabel
[6].color
, P_COLOR
,
389 {"custom_colorlabel7", N_("Brown"), &prefs_common
.custom_colorlabel
[6].label
, P_STRING
,
391 {"custom_color8", "#aaaaaa", &prefs_common
.custom_colorlabel
[7].color
, P_COLOR
,
393 {"custom_colorlabel8", N_("Grey"), &prefs_common
.custom_colorlabel
[7].label
, P_STRING
,
395 {"custom_color9", "#c07254", &prefs_common
.custom_colorlabel
[8].color
, P_COLOR
,
397 {"custom_colorlabel9", N_("Light brown"), &prefs_common
.custom_colorlabel
[8].label
, P_STRING
,
399 {"custom_color10", "#c00000", &prefs_common
.custom_colorlabel
[9].color
, P_COLOR
,
401 {"custom_colorlabel10", N_("Dark red"), &prefs_common
.custom_colorlabel
[9].label
, P_STRING
,
403 {"custom_color11", "#cc1074", &prefs_common
.custom_colorlabel
[10].color
, P_COLOR
,
405 {"custom_colorlabel11", N_("Dark pink"), &prefs_common
.custom_colorlabel
[10].label
, P_STRING
,
407 {"custom_color12", "#5094cd", &prefs_common
.custom_colorlabel
[11].color
, P_COLOR
,
409 {"custom_colorlabel12", N_("Steel blue"), &prefs_common
.custom_colorlabel
[11].label
, P_STRING
,
411 {"custom_color13", "#ffd500", &prefs_common
.custom_colorlabel
[12].color
, P_COLOR
,
413 {"custom_colorlabel13", N_("Gold"), &prefs_common
.custom_colorlabel
[12].label
, P_STRING
,
415 {"custom_color14", "#00d800", &prefs_common
.custom_colorlabel
[13].color
, P_COLOR
,
417 {"custom_colorlabel14", N_("Bright green"), &prefs_common
.custom_colorlabel
[13].label
, P_STRING
,
419 {"custom_color15", "#c060c0", &prefs_common
.custom_colorlabel
[14].color
, P_COLOR
,
421 {"custom_colorlabel15", N_("Magenta"), &prefs_common
.custom_colorlabel
[14].label
, P_STRING
,
425 {"display_image", "TRUE", &prefs_common
.display_img
, P_BOOL
,
427 {"resize_image", "TRUE", &prefs_common
.resize_img
, P_BOOL
,
429 {"inline_image", "TRUE", &prefs_common
.inline_img
, P_BOOL
,
432 {"display_folder_unread_num", "0",
433 &prefs_common
.display_folder_unread
, P_INT
,
435 {"newsgroup_abbrev_len", "16",
436 &prefs_common
.ng_abbrev_len
, P_INT
,
440 {"translate_header", "TRUE", &prefs_common
.trans_hdr
, P_BOOL
,
443 {"translate_header", "FALSE", &prefs_common
.trans_hdr
, P_BOOL
,
447 /* Display: Summary View */
448 {"default_sort_key", "3", &prefs_common
.default_sort_key
, P_ENUM
,
450 {"default_sort_type", "1", &prefs_common
.default_sort_type
, P_ENUM
,
452 {"use_address_book", "FALSE", &prefs_common
.use_addr_book
, P_BOOL
,
454 {"thread_by_subject", "TRUE", &prefs_common
.thread_by_subject
, P_BOOL
,
456 {"date_format", N_("%x(%a) %H:%M"), &prefs_common
.date_format
,
457 P_STRING
, NULL
, NULL
, NULL
},
458 {"msgview_date_format", "FALSE", &prefs_common
.msgview_date_format
, P_BOOL
,
461 {"next_on_delete", "FALSE", &prefs_common
.next_on_delete
, P_BOOL
,
464 {"bold_unread", "TRUE", &prefs_common
.bold_unread
, P_BOOL
,
468 {"toolbar_style", "3", &prefs_common
.toolbar_style
, P_ENUM
,
471 {"toolbar_style", "1", &prefs_common
.toolbar_style
, P_ENUM
,
474 {"toolbar_detachable", "FALSE", &prefs_common
.toolbar_detachable
, P_BOOL
,
476 {"show_col_headers", "TRUE", &prefs_common
.show_col_headers
, P_BOOL
,
479 {"show_statusbar", "TRUE", &prefs_common
.show_statusbar
, P_BOOL
,
481 {"show_searchbar", "TRUE", &prefs_common
.show_searchbar
, P_BOOL
,
484 {"show_statusbar", "FALSE", &prefs_common
.show_statusbar
, P_BOOL
,
486 {"show_searchbar", "FALSE", &prefs_common
.show_searchbar
, P_BOOL
,
490 {"summary_col_show_mark", "TRUE",
491 &prefs_common
.summary_col_visible
[S_COL_MARK
], P_BOOL
, NULL
, NULL
, NULL
},
492 {"summary_col_show_unread", "TRUE",
493 &prefs_common
.summary_col_visible
[S_COL_STATUS
], P_BOOL
, NULL
, NULL
, NULL
},
494 {"summary_col_show_subject", "TRUE",
495 &prefs_common
.summary_col_visible
[S_COL_SUBJECT
], P_BOOL
, NULL
, NULL
, NULL
},
496 {"summary_col_show_from", "TRUE",
497 &prefs_common
.summary_col_visible
[S_COL_FROM
], P_BOOL
, NULL
, NULL
, NULL
},
498 {"summary_col_show_to", "FALSE",
499 &prefs_common
.summary_col_visible
[S_COL_TO
], P_BOOL
, NULL
, NULL
, NULL
},
500 {"summary_col_show_date", "TRUE",
501 &prefs_common
.summary_col_visible
[S_COL_DATE
], P_BOOL
, NULL
, NULL
, NULL
},
502 {"summary_col_show_mime", "TRUE",
503 &prefs_common
.summary_col_visible
[S_COL_MIME
], P_BOOL
, NULL
, NULL
, NULL
},
504 {"summary_col_show_size", "TRUE",
505 &prefs_common
.summary_col_visible
[S_COL_SIZE
], P_BOOL
, NULL
, NULL
, NULL
},
506 {"summary_col_show_number", "FALSE",
507 &prefs_common
.summary_col_visible
[S_COL_NUMBER
], P_BOOL
, NULL
, NULL
, NULL
},
508 {"summary_col_show_score", "FALSE",
509 &prefs_common
.summary_col_visible
[S_COL_SCORE
], P_BOOL
, NULL
, NULL
, NULL
},
510 {"summary_col_show_locked", "FALSE",
511 &prefs_common
.summary_col_visible
[S_COL_LOCKED
], P_BOOL
, NULL
, NULL
, NULL
},
512 {"summary_col_show_tags", "FALSE",
513 &prefs_common
.summary_col_visible
[S_COL_TAGS
], P_BOOL
, NULL
, NULL
, NULL
},
515 {"summary_col_lock", "FALSE", &prefs_common
.summary_col_lock
, P_BOOL
,
518 {"summary_col_pos_mark", "0",
519 &prefs_common
.summary_col_pos
[S_COL_MARK
], P_INT
, NULL
, NULL
, NULL
},
520 {"summary_col_pos_unread", "1",
521 &prefs_common
.summary_col_pos
[S_COL_STATUS
], P_INT
, NULL
, NULL
, NULL
},
522 {"summary_col_pos_mime", "2",
523 &prefs_common
.summary_col_pos
[S_COL_MIME
], P_INT
, NULL
, NULL
, NULL
},
524 {"summary_col_pos_subject", "3",
525 &prefs_common
.summary_col_pos
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
526 {"summary_col_pos_from", "4",
527 &prefs_common
.summary_col_pos
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
528 {"summary_col_pos_date", "5",
529 &prefs_common
.summary_col_pos
[S_COL_DATE
], P_INT
, NULL
, NULL
, NULL
},
530 {"summary_col_pos_size", "6",
531 &prefs_common
.summary_col_pos
[S_COL_SIZE
], P_INT
, NULL
, NULL
, NULL
},
532 {"summary_col_pos_number", "7",
533 &prefs_common
.summary_col_pos
[S_COL_NUMBER
], P_INT
, NULL
, NULL
, NULL
},
534 {"summary_col_pos_score", "8",
535 &prefs_common
.summary_col_pos
[S_COL_SCORE
], P_INT
, NULL
, NULL
, NULL
},
536 {"summary_col_pos_locked", "9",
537 &prefs_common
.summary_col_pos
[S_COL_LOCKED
], P_INT
, NULL
, NULL
, NULL
},
538 {"summary_col_pos_to", "10",
539 &prefs_common
.summary_col_pos
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
540 {"summary_col_pos_tags", "11",
541 &prefs_common
.summary_col_pos
[S_COL_TAGS
], P_INT
, NULL
, NULL
, NULL
},
543 {"summary_col_size_mark", "10",
544 &prefs_common
.summary_col_size
[S_COL_MARK
], P_INT
, NULL
, NULL
, NULL
},
545 {"summary_col_size_unread", "13",
546 &prefs_common
.summary_col_size
[S_COL_STATUS
], P_INT
, NULL
, NULL
, NULL
},
547 {"summary_col_size_mime", "10",
548 &prefs_common
.summary_col_size
[S_COL_MIME
], P_INT
, NULL
, NULL
, NULL
},
550 {"summary_col_size_subject", "200",
551 &prefs_common
.summary_col_size
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
552 {"summary_col_size_from", "120",
553 &prefs_common
.summary_col_size
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
554 {"summary_col_size_to", "120",
555 &prefs_common
.summary_col_size
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
557 {"summary_col_size_subject", "300",
558 &prefs_common
.summary_col_size
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
559 {"summary_col_size_from", "150",
560 &prefs_common
.summary_col_size
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
561 {"summary_col_size_to", "150",
562 &prefs_common
.summary_col_size
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
565 {"summary_col_size_date", "118",
566 &prefs_common
.summary_col_size
[S_COL_DATE
], P_INT
, NULL
, NULL
, NULL
},
567 {"summary_col_size_size", "45",
568 &prefs_common
.summary_col_size
[S_COL_SIZE
], P_INT
, NULL
, NULL
, NULL
},
569 {"summary_col_size_number", "40",
570 &prefs_common
.summary_col_size
[S_COL_NUMBER
], P_INT
, NULL
, NULL
, NULL
},
571 {"summary_col_size_score", "40",
572 &prefs_common
.summary_col_size
[S_COL_SCORE
], P_INT
, NULL
, NULL
, NULL
},
573 {"summary_col_size_locked", "13",
574 &prefs_common
.summary_col_size
[S_COL_LOCKED
], P_INT
, NULL
, NULL
, NULL
},
575 {"summary_col_size_tags", "150",
576 &prefs_common
.summary_col_size
[S_COL_TAGS
], P_INT
, NULL
, NULL
, NULL
},
579 {"folderwin_x", "16", &prefs_common
.folderwin_x
, P_INT
,
581 {"folderwin_y", "16", &prefs_common
.folderwin_y
, P_INT
,
583 {"folderview_width", "270", &prefs_common
.folderview_width
, P_INT
,
585 {"folderview_height", "450", &prefs_common
.folderview_height
, P_INT
,
587 {"folderview_visible", "TRUE", &prefs_common
.folderview_visible
, P_BOOL
,
590 {"folder_col_show_folder", "TRUE",
591 &prefs_common
.folder_col_visible
[F_COL_FOLDER
], P_BOOL
, NULL
, NULL
, NULL
},
592 {"folder_col_show_new", "TRUE",
593 &prefs_common
.folder_col_visible
[F_COL_NEW
], P_BOOL
, NULL
, NULL
, NULL
},
594 {"folder_col_show_unread", "TRUE",
595 &prefs_common
.folder_col_visible
[F_COL_UNREAD
], P_BOOL
, NULL
, NULL
, NULL
},
596 {"folder_col_show_total", "TRUE",
597 &prefs_common
.folder_col_visible
[F_COL_TOTAL
], P_BOOL
, NULL
, NULL
, NULL
},
599 {"folder_col_pos_folder", "0",
600 &prefs_common
.folder_col_pos
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
601 {"folder_col_pos_new", "1",
602 &prefs_common
.folder_col_pos
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
603 {"folder_col_pos_unread", "2",
604 &prefs_common
.folder_col_pos
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
605 {"folder_col_pos_total", "3",
606 &prefs_common
.folder_col_pos
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
609 {"folder_col_size_folder", "120",
610 &prefs_common
.folder_col_size
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
611 {"folder_col_size_new", "32",
612 &prefs_common
.folder_col_size
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
613 {"folder_col_size_unread", "32",
614 &prefs_common
.folder_col_size
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
615 {"folder_col_size_total", "32",
616 &prefs_common
.folder_col_size
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
618 {"folder_col_size_folder", "400",
619 &prefs_common
.folder_col_size
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
620 {"folder_col_size_new", "32",
621 &prefs_common
.folder_col_size
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
622 {"folder_col_size_unread", "32",
623 &prefs_common
.folder_col_size
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
624 {"folder_col_size_total", "32",
625 &prefs_common
.folder_col_size
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
628 {"folder_default_thread", "TRUE", &prefs_common
.folder_default_thread
, P_BOOL
,
630 {"folder_default_thread_collapsed", "FALSE", &prefs_common
.folder_default_thread_collapsed
, P_BOOL
,
632 {"folder_default_hide_read_threads", "FALSE", &prefs_common
.folder_default_hide_read_threads
, P_BOOL
,
634 {"folder_default_hide_read_msgs", "FALSE", &prefs_common
.folder_default_hide_read_msgs
, P_BOOL
,
636 {"folder_default_hide_del_msgs", "FALSE", &prefs_common
.folder_default_hide_del_msgs
, P_BOOL
,
639 {"summaryview_width", "500", &prefs_common
.summaryview_width
, P_INT
,
641 {"summaryview_height", "244", &prefs_common
.summaryview_height
, P_INT
,
644 {"main_messagewin_x", "256", &prefs_common
.main_msgwin_x
, P_INT
,
646 {"main_messagewin_y", "210", &prefs_common
.main_msgwin_y
, P_INT
,
648 {"messageview_width", "500", &prefs_common
.msgview_width
, P_INT
,
650 {"messageview_height", "213", &prefs_common
.msgview_height
, P_INT
,
652 {"messageview_visible", "TRUE", &prefs_common
.msgview_visible
, P_BOOL
,
655 {"mainview_x", "64", &prefs_common
.mainview_x
, P_INT
,
657 {"mainview_y", "64", &prefs_common
.mainview_y
, P_INT
,
659 {"mainview_width", "500", &prefs_common
.mainview_width
, P_INT
,
661 {"mainview_height", "400", &prefs_common
.mainview_height
, P_INT
,
663 {"mainwin_x", "64", &prefs_common
.mainwin_x
, P_INT
,
665 {"mainwin_y", "64", &prefs_common
.mainwin_y
, P_INT
,
667 {"mainwin_maximised", "FALSE", &prefs_common
.mainwin_maximised
, P_BOOL
,
669 {"mainwin_fullscreen", "FALSE", &prefs_common
.mainwin_fullscreen
, P_BOOL
,
671 {"mainwin_menubar", "TRUE", &prefs_common
.mainwin_menubar
, P_BOOL
,
674 {"mainwin_width", "800", &prefs_common
.mainwin_width
, P_INT
,
676 {"mainwin_height", "600", &prefs_common
.mainwin_height
, P_INT
,
678 {"messagewin_width", "600", &prefs_common
.msgwin_width
, P_INT
,
680 {"messagewin_height", "540", &prefs_common
.msgwin_height
, P_INT
,
682 {"mimeview_tree_height", "60", &prefs_common
.mimeview_tree_height
, P_INT
,
684 {"sourcewin_width", "600", &prefs_common
.sourcewin_width
, P_INT
,
686 {"sourcewin_height", "500", &prefs_common
.sourcewin_height
, P_INT
,
688 {"compose_width", "600", &prefs_common
.compose_width
, P_INT
,
690 {"compose_height", "560", &prefs_common
.compose_height
, P_INT
,
693 {"mainwin_width", "700", &prefs_common
.mainwin_width
, P_INT
,
695 {"mainwin_height", "470", &prefs_common
.mainwin_height
, P_INT
,
697 {"messagewin_width", "700", &prefs_common
.msgwin_width
, P_INT
,
699 {"messagewin_height", "470", &prefs_common
.msgwin_height
, P_INT
,
701 {"sourcewin_width", "700", &prefs_common
.sourcewin_width
, P_INT
,
703 {"sourcewin_height", "470", &prefs_common
.sourcewin_height
, P_INT
,
705 {"compose_width", "700", &prefs_common
.compose_width
, P_INT
,
707 {"compose_height", "470", &prefs_common
.compose_height
, P_INT
,
710 {"compose_notebook_height", "130", &prefs_common
.compose_notebook_height
, P_INT
,
712 {"compose_x", "0", &prefs_common
.compose_x
, P_INT
,
714 {"compose_y", "0", &prefs_common
.compose_y
, P_INT
,
717 {"enable_color", "TRUE", &prefs_common
.enable_color
, P_BOOL
,
720 {"quote_level1_color", "#0000b3", &prefs_common
.color
[COL_QUOTE_LEVEL1
],
721 P_COLOR
, NULL
, NULL
, NULL
},
722 {"quote_level2_color", "#0000b3", &prefs_common
.color
[COL_QUOTE_LEVEL2
],
723 P_COLOR
, NULL
, NULL
, NULL
},
724 {"quote_level3_color", "#0000b3", &prefs_common
.color
[COL_QUOTE_LEVEL3
],
725 P_COLOR
, NULL
, NULL
, NULL
},
726 {"enable_bgcolor", "FALSE", &prefs_common
.enable_bgcolor
, P_BOOL
,
728 {"quote_level1_bgcolor", "#cccccc", &prefs_common
.color
[COL_QUOTE_LEVEL1_BG
],
729 P_COLOR
, NULL
, NULL
, NULL
},
730 {"quote_level2_bgcolor", "#d4d4d4", &prefs_common
.color
[COL_QUOTE_LEVEL2_BG
],
731 P_COLOR
, NULL
, NULL
, NULL
},
732 {"quote_level3_bgcolor", "#dddddd", &prefs_common
.color
[COL_QUOTE_LEVEL3_BG
],
733 P_COLOR
, NULL
, NULL
, NULL
},
734 {"uri_color", "#007f00", &prefs_common
.color
[COL_URI
],
735 P_COLOR
, NULL
, NULL
, NULL
},
736 {"emphasis_color", "#0000cf", &prefs_common
.color
[COL_EMPHASIS
],
737 P_COLOR
, NULL
, NULL
, NULL
},
738 {"target_folder_color", "#da1cca", &prefs_common
.color
[COL_TGT_FOLDER
],
739 P_COLOR
, NULL
, NULL
, NULL
},
740 {"signature_color", "#797979", &prefs_common
.color
[COL_SIGNATURE
],
741 P_COLOR
, NULL
, NULL
, NULL
},
742 {"recycle_quote_colors", "FALSE", &prefs_common
.recycle_quote_colors
,
743 P_BOOL
, NULL
, NULL
, NULL
},
745 {"default_header_color", "#000000", &prefs_common
.color
[COL_DEFAULT_HEADER
],
746 P_COLOR
, NULL
, NULL
, NULL
},
747 {"default_header_bgcolor", "#f5f6be", &prefs_common
.color
[COL_DEFAULT_HEADER_BG
],
748 P_COLOR
, NULL
, NULL
, NULL
},
749 {"tags_color", "#000000", &prefs_common
.color
[COL_TAGS
],
750 P_COLOR
, NULL
, NULL
, NULL
},
751 {"tags_bgcolor", "#f5f6be", &prefs_common
.color
[COL_TAGS_BG
],
752 P_COLOR
, NULL
, NULL
, NULL
},
753 {"qs_active_color", "#000000", &prefs_common
.color
[COL_QS_ACTIVE
],
754 P_COLOR
, NULL
, NULL
, NULL
},
755 {"qs_active_bgcolor", "#f5f6be", &prefs_common
.color
[COL_QS_ACTIVE_BG
],
756 P_COLOR
, NULL
, NULL
, NULL
},
757 {"qs_error_color", "#000000", &prefs_common
.color
[COL_QS_ERROR
],
758 P_COLOR
, NULL
, NULL
, NULL
},
759 {"qs_error_bgcolor", "#ff7070", &prefs_common
.color
[COL_QS_ERROR_BG
],
760 P_COLOR
, NULL
, NULL
, NULL
},
762 {"display_header_pane", "FALSE", &prefs_common
.display_header_pane
,
763 P_BOOL
, NULL
, NULL
, NULL
},
764 {"display_header", "TRUE", &prefs_common
.display_header
, P_BOOL
,
766 {"display_xface", "TRUE", &prefs_common
.display_xface
,
767 P_BOOL
, NULL
, NULL
, NULL
},
768 {"save_xface", "TRUE", &prefs_common
.save_xface
,
769 P_BOOL
, NULL
, NULL
, NULL
},
770 {"render_html", "TRUE", &prefs_common
.render_html
, P_BOOL
,
772 {"invoke_plugin_on_html", "FALSE", &prefs_common
.invoke_plugin_on_html
, P_BOOL
,
774 {"promote_html_part", "FALSE", &prefs_common
.promote_html_part
, P_BOOL
,
776 {"line_space", "2", &prefs_common
.line_space
, P_INT
,
778 {"never_send_retrcpt", "FALSE", &prefs_common
.never_send_retrcpt
, P_BOOL
,
781 {"enable_smooth_scroll", "FALSE",
782 &prefs_common
.enable_smooth_scroll
, P_BOOL
,
784 {"scroll_step", "1", &prefs_common
.scroll_step
, P_INT
,
786 {"scroll_half_page", "FALSE", &prefs_common
.scroll_halfpage
, P_BOOL
,
788 {"hide_quoted", "TRUE",
789 &prefs_common
.hide_quoted
, P_BOOL
,
791 {"respect_flowed_format", "FALSE", &prefs_common
.respect_flowed_format
, P_BOOL
,
793 {"show_all_headers", "FALSE", &prefs_common
.show_all_headers
, P_BOOL
,
796 {"show_other_header", "FALSE", &prefs_common
.show_other_header
, P_BOOL
,
799 {"attach_desc", "TRUE", &prefs_common
.attach_desc
, P_BOOL
,
801 {"attach_save_directory", NULL
,
802 &SPECIFIC_PREFS
.attach_save_dir
, P_STRING
, NULL
, NULL
, NULL
},
803 {"attach_load_directory", NULL
,
804 &SPECIFIC_PREFS
.attach_load_dir
, P_STRING
, NULL
, NULL
, NULL
},
807 {"mime_textviewer", NULL
,
808 &SPECIFIC_PREFS
.mime_textviewer
, P_STRING
, NULL
, NULL
, NULL
},
809 {"mime_open_command", "xdg-open '%s'",
810 &SPECIFIC_PREFS
.mime_open_cmd
, P_STRING
, NULL
, NULL
, NULL
},
811 {"show_inline_attachments", "TRUE",
812 &prefs_common
.show_inline_attachments
, P_BOOL
, NULL
, NULL
, NULL
},
816 {"layout_mode", "0", &prefs_common
.layout_mode
, P_INT
,
819 {"layout_mode", "5", &prefs_common
.layout_mode
, P_INT
,
822 /* {"emulate_emacs", "FALSE", &prefs_common.emulate_emacs, P_BOOL,
823 NULL, NULL, NULL}, */
824 {"open_selected_message_on_folder_open", "FALSE",
825 &prefs_common
.open_selected_on_folder_open
,
826 P_BOOL
, NULL
, NULL
, NULL
},
827 {"open_selected_message_on_search_results", "FALSE",
828 &prefs_common
.open_selected_on_search_results
,
829 P_BOOL
, NULL
, NULL
, NULL
},
830 {"open_selected_message_on_prevnext", "FALSE",
831 &prefs_common
.open_selected_on_prevnext
,
832 P_BOOL
, NULL
, NULL
, NULL
},
833 {"open_selected_message_on_deletemove", "FALSE",
834 &prefs_common
.open_selected_on_deletemove
,
835 P_BOOL
, NULL
, NULL
, NULL
},
836 {"open_selected_message_on_directional", "FALSE",
837 &prefs_common
.open_selected_on_directional
,
838 P_BOOL
, NULL
, NULL
, NULL
},
839 {"always_show_message_when_selected", "FALSE",
840 &prefs_common
.always_show_msg
,
841 P_BOOL
, NULL
, NULL
, NULL
},
842 {"select_on_entry", "3", &prefs_common
.select_on_entry
,
843 P_ENUM
, NULL
, NULL
, NULL
},
844 {"show_tooltips", "TRUE", &prefs_common
.show_tooltips
,
845 P_BOOL
, NULL
, NULL
, NULL
},
847 /* do it SUMMARY_OPEN_ACTIONS-1 times */
848 {"summary_select_prio1", "0", &prefs_common
.summary_select_prio
[0], P_ENUM
,
850 {"summary_select_prio2", "0", &prefs_common
.summary_select_prio
[1], P_ENUM
,
852 {"summary_select_prio3", "0", &prefs_common
.summary_select_prio
[2], P_ENUM
,
854 {"summary_select_prio4", "0", &prefs_common
.summary_select_prio
[3], P_ENUM
,
856 {"summary_select_prio5", "0", &prefs_common
.summary_select_prio
[4], P_ENUM
,
858 {"summary_select_prio6", "0", &prefs_common
.summary_select_prio
[5], P_ENUM
,
860 {"summary_select_prio7", "0", &prefs_common
.summary_select_prio
[6], P_ENUM
,
862 {"summary_select_prio8", "0", &prefs_common
.summary_select_prio
[7], P_ENUM
,
864 {"summary_select_prio9", "0", &prefs_common
.summary_select_prio
[8], P_ENUM
,
866 {"summary_select_prio10", "0", &prefs_common
.summary_select_prio
[9], P_ENUM
,
869 {"mark_as_read_on_new_window", "FALSE",
870 &prefs_common
.mark_as_read_on_new_window
,
871 P_BOOL
, NULL
, NULL
, NULL
},
872 {"mark_as_read_delay", "0",
873 &prefs_common
.mark_as_read_delay
, P_INT
,
875 {"immediate_execution", "TRUE", &prefs_common
.immediate_exec
, P_BOOL
,
877 {"nextunreadmsg_dialog", "1", &prefs_common
.next_unread_msg_dialog
, P_ENUM
,
879 {"summary_from_show", "0", &prefs_common
.summary_from_show
, P_ENUM
,
882 {"pixmap_theme_path", DEFAULT_PIXMAP_THEME
,
883 &SPECIFIC_PREFS
.pixmap_theme_path
, P_STRING
,
886 {"enable_alpha_svg", "TRUE",
887 &SPECIFIC_PREFS
.enable_alpha_svg
, P_BOOL
,
889 {"enable_pixmap_scaling", "TRUE",
890 &SPECIFIC_PREFS
.enable_pixmap_scaling
, P_BOOL
,
892 {"pixmap_scaling_auto", "TRUE",
893 &SPECIFIC_PREFS
.pixmap_scaling_auto
, P_BOOL
,
895 {"pixmap_scaling_ppi", "96",
896 &SPECIFIC_PREFS
.pixmap_scaling_ppi
, P_INT
,
900 {"ask_mark_all_read", "TRUE", &prefs_common
.ask_mark_all_read
, P_BOOL
,
902 {"ask_override_colorlabel", "TRUE", &prefs_common
.ask_override_colorlabel
, P_BOOL
,
905 {"ask_apply_per_account_filtering_rules", "TRUE", &prefs_common
.ask_apply_per_account_filtering_rules
, P_BOOL
,
907 {"apply_per_account_filtering_rules", "0", &prefs_common
.apply_per_account_filtering_rules
, P_ENUM
,
911 {"addressbook_use_editaddress_dialog", "TRUE", &prefs_common
.addressbook_use_editaddress_dialog
,
912 P_BOOL
, NULL
, NULL
, NULL
},
913 {"addressbook_hpaned_pos", "-1", &prefs_common
.addressbook_hpaned_pos
,
914 P_INT
, NULL
, NULL
, NULL
},
915 {"addressbook_vpaned_pos", "-1", &prefs_common
.addressbook_vpaned_pos
,
916 P_INT
, NULL
, NULL
, NULL
},
920 {"uri_open_command", DEFAULT_BROWSER_CMD
,
921 &SPECIFIC_PREFS
.uri_cmd
, P_STRING
, NULL
, NULL
, NULL
},
923 {"gtk_theme", DEFAULT_W32_GTK_THEME
,
924 &SPECIFIC_PREFS
.gtk_theme
, P_STRING
, NULL
, NULL
, NULL
},
926 {"ext_editor_command", DEFAULT_EDITOR_CMD
,
927 &SPECIFIC_PREFS
.ext_editor_cmd
, P_STRING
, NULL
, NULL
, NULL
},
928 {"cmds_use_system_default", "TRUE",
929 &prefs_common
.cmds_use_system_default
, P_BOOL
, NULL
, NULL
, NULL
},
930 {"add_address_by_click", "FALSE", &prefs_common
.add_address_by_click
,
931 P_BOOL
, NULL
, NULL
, NULL
},
932 {"session_passwords", "FALSE", &prefs_common
.session_passwords
,
933 P_BOOL
, NULL
, NULL
, NULL
},
934 {"confirm_on_exit", "FALSE", &prefs_common
.confirm_on_exit
, P_BOOL
,
936 {"clean_trash_on_exit", "FALSE", &prefs_common
.clean_on_exit
, P_BOOL
,
938 {"ask_on_cleaning", "TRUE", &prefs_common
.ask_on_clean
, P_BOOL
,
940 {"warn_queued_on_exit", "TRUE", &prefs_common
.warn_queued_on_exit
,
941 P_BOOL
, NULL
, NULL
, NULL
},
942 {"work_offline", "FALSE", &prefs_common
.work_offline
, P_BOOL
,
944 {"summary_quicksearch_type", "0", &prefs_common
.summary_quicksearch_type
, P_INT
,
947 {"summary_quicksearch_recurse", "1", &prefs_common
.summary_quicksearch_recurse
, P_INT
,
950 {"summary_quicksearch_recurse", "0", &prefs_common
.summary_quicksearch_recurse
, P_INT
,
954 #if defined(__OpenBSD__)
955 {"io_timeout_secs", "80", &prefs_common
.io_timeout_secs
,
956 P_INT
, NULL
, NULL
, NULL
},
958 {"io_timeout_secs", "60", &prefs_common
.io_timeout_secs
,
959 P_INT
, NULL
, NULL
, NULL
},
961 {"hide_score", "-9999", &prefs_common
.kill_score
, P_INT
,
963 {"important_score", "1", &prefs_common
.important_score
, P_INT
,
966 {"clip_log", "TRUE", &prefs_common
.cliplog
, P_BOOL
,
968 {"log_length", "500", &prefs_common
.loglength
, P_INT
,
971 {"enable_log_standard", "TRUE", &prefs_common
.enable_log_standard
, P_BOOL
,
973 {"enable_log_warning", "TRUE", &prefs_common
.enable_log_warning
, P_BOOL
,
975 {"enable_log_error", "TRUE", &prefs_common
.enable_log_error
, P_BOOL
,
977 {"enable_log_status", "TRUE", &prefs_common
.enable_log_status
, P_BOOL
,
980 {"enable_log_standard", "FALSE", &prefs_common
.enable_log_standard
, P_BOOL
,
982 {"enable_log_warning", "FALSE", &prefs_common
.enable_log_warning
, P_BOOL
,
984 {"enable_log_error", "FALSE", &prefs_common
.enable_log_error
, P_BOOL
,
986 {"enable_log_status", "FALSE", &prefs_common
.enable_log_status
, P_BOOL
,
989 {"log_msg_color", "#00af00", &prefs_common
.color
[COL_LOG_MSG
],
990 P_COLOR
, NULL
, NULL
, NULL
},
991 {"log_warn_color", "#af0000", &prefs_common
.color
[COL_LOG_WARN
],
992 P_COLOR
, NULL
, NULL
, NULL
},
993 {"log_error_color", "#af0000", &prefs_common
.color
[COL_LOG_ERROR
],
994 P_COLOR
, NULL
, NULL
, NULL
},
995 {"log_in_color", "#000000", &prefs_common
.color
[COL_LOG_IN
],
996 P_COLOR
, NULL
, NULL
, NULL
},
997 {"log_out_color", "#0000ef", &prefs_common
.color
[COL_LOG_OUT
],
998 P_COLOR
, NULL
, NULL
, NULL
},
999 {"log_status_ok_color", "#00af00", &prefs_common
.color
[COL_LOG_STATUS_OK
],
1000 P_COLOR
, NULL
, NULL
, NULL
},
1001 {"log_status_nok_color", "#0000af", &prefs_common
.color
[COL_LOG_STATUS_NOK
],
1002 P_COLOR
, NULL
, NULL
, NULL
},
1003 {"log_status_skip_color", "#aa00aa", &prefs_common
.color
[COL_LOG_STATUS_SKIP
],
1004 P_COLOR
, NULL
, NULL
, NULL
},
1006 {"enable_filtering_debug", "FALSE", &prefs_common
.enable_filtering_debug
, P_BOOL
,
1008 {"filtering_debug_level", "1", &prefs_common
.filtering_debug_level
, P_INT
,
1010 {"enable_filtering_debug_inc", "TRUE", &prefs_common
.enable_filtering_debug_inc
, P_BOOL
,
1012 {"enable_filtering_debug_manual", "TRUE", &prefs_common
.enable_filtering_debug_manual
, P_BOOL
,
1014 {"enable_filtering_debug_folder_proc", "FALSE", &prefs_common
.enable_filtering_debug_folder_proc
, P_BOOL
,
1016 {"enable_filtering_debug_pre_proc", "FALSE", &prefs_common
.enable_filtering_debug_pre_proc
, P_BOOL
,
1018 {"enable_filtering_debug_post_proc", "FALSE", &prefs_common
.enable_filtering_debug_post_proc
, P_BOOL
,
1020 {"filtering_debug_clip_log", "TRUE", &prefs_common
.filtering_debug_cliplog
, P_BOOL
,
1022 {"filtering_debug_log_length", "500", &prefs_common
.filtering_debug_loglength
, P_INT
,
1025 {"gtk_can_change_accels", "FALSE", &prefs_common
.gtk_can_change_accels
, P_BOOL
,
1027 {"gtk_enable_accels", "TRUE", &prefs_common
.gtk_enable_accels
, P_BOOL
,
1030 {"color_new", "#0000b3", &prefs_common
.color
[COL_NEW
],
1031 P_COLOR
, NULL
, NULL
, NULL
},
1033 /* Some windows' sizes */
1034 {"filteringwin_width", "500", &prefs_common
.filteringwin_width
, P_INT
,
1036 {"filteringwin_height", "-1", &prefs_common
.filteringwin_height
, P_INT
,
1039 {"filteringactionwin_width", "490", &prefs_common
.filteringactionwin_width
, P_INT
,
1041 {"filteringactionwin_height", "-1", &prefs_common
.filteringactionwin_height
, P_INT
,
1044 {"matcherwin_width", "520", &prefs_common
.matcherwin_width
, P_INT
,
1046 {"matcherwin_height", "-1", &prefs_common
.matcherwin_height
, P_INT
,
1049 {"templateswin_width", "480", &prefs_common
.templateswin_width
, P_INT
,
1051 {"templateswin_height", "-1", &prefs_common
.templateswin_height
, P_INT
,
1054 {"actionsiodialog_width", "582", &prefs_common
.actionsiodialog_width
, P_INT
,
1056 {"actionsiodialog_height", "310", &prefs_common
.actionsiodialog_height
, P_INT
,
1059 {"actionswin_width", "486", &prefs_common
.actionswin_width
, P_INT
,
1061 {"actionswin_height", "-1", &prefs_common
.actionswin_height
, P_INT
,
1064 {"tagswin_width", "586", &prefs_common
.tagswin_width
, P_INT
,
1066 {"tagswin_height", "-1", &prefs_common
.tagswin_height
, P_INT
,
1069 {"sslmanwin_width", "486", &prefs_common
.sslmanwin_width
, P_INT
,
1071 {"sslmanwin_height", "-1", &prefs_common
.sslmanwin_height
, P_INT
,
1074 {"uriopenerwin_width", "-1", &prefs_common
.uriopenerwin_width
, P_INT
,
1076 {"uriopenerwin_height", "-1", &prefs_common
.uriopenerwin_height
, P_INT
,
1079 {"foldersortwin_width", "400", &prefs_common
.foldersortwin_width
, P_INT
,
1081 {"foldersortwin_height", "300", &prefs_common
.foldersortwin_height
, P_INT
,
1084 {"addressbookwin_width", "520", &prefs_common
.addressbookwin_width
, P_INT
,
1086 {"addressbookwin_height", "-1", &prefs_common
.addressbookwin_height
, P_INT
,
1089 {"addressbookeditpersonwin_width", "640", &prefs_common
.addressbookeditpersonwin_width
, P_INT
,
1091 {"addressbookeditpersonwin_height", "320", &prefs_common
.addressbookeditpersonwin_height
, P_INT
,
1094 {"addressbookeditgroupwin_width", "580", &prefs_common
.addressbookeditgroupwin_width
, P_INT
,
1096 {"addressbookeditgroupwin_height", "340", &prefs_common
.addressbookeditgroupwin_height
, P_INT
,
1099 {"pluginswin_width", "-1", &prefs_common
.pluginswin_width
, P_INT
,
1101 {"pluginswin_height", "-1", &prefs_common
.pluginswin_height
, P_INT
,
1104 {"prefswin_width", "600", &prefs_common
.prefswin_width
, P_INT
,
1106 {"prefswin_height", "-1", &prefs_common
.prefswin_height
, P_INT
,
1109 {"folderitemwin_width", "500", &prefs_common
.folderitemwin_width
, P_INT
,
1111 {"folderitemwin_height", "-1", &prefs_common
.folderitemwin_height
, P_INT
,
1114 {"zero_replacement_char", "0", &prefs_common
.zero_replacement
, P_STRING
,
1117 {"editaccountwin_width", "500", &prefs_common
.editaccountwin_width
, P_INT
,
1119 {"editaccountwin_height", "-1", &prefs_common
.editaccountwin_height
, P_INT
,
1122 {"accountswin_width", "500", &prefs_common
.accountswin_width
, P_INT
,
1124 {"accountswin_height", "-1", &prefs_common
.accountswin_height
, P_INT
,
1127 {"logwin_width", "520", &prefs_common
.logwin_width
, P_INT
,
1129 {"logwin_height", "-1", &prefs_common
.logwin_height
, P_INT
,
1132 {"filtering_debugwin_width", "600", &prefs_common
.filtering_debugwin_width
, P_INT
,
1134 {"filtering_debugwin_height", "-1", &prefs_common
.filtering_debugwin_height
, P_INT
,
1137 {"folderselwin_width", "300", &prefs_common
.folderselwin_width
, P_INT
,
1139 {"folderselwin_height", "-1", &prefs_common
.folderselwin_height
, P_INT
,
1142 {"addressaddwin_width", "300", &prefs_common
.addressaddwin_width
, P_INT
,
1144 {"addressaddwin_height", "-1", &prefs_common
.addressaddwin_height
, P_INT
,
1147 {"addressbook_folderselwin_width", "300", &prefs_common
.addressbook_folderselwin_width
, P_INT
,
1149 {"addressbook_folderselwin_height", "-1", &prefs_common
.addressbook_folderselwin_height
, P_INT
,
1152 {"aboutwin_width", "450", &prefs_common
.aboutwin_width
, P_INT
,
1154 {"aboutwin_height", "500", &prefs_common
.aboutwin_height
, P_INT
,
1157 {"addrgather_width", "450", &prefs_common
.addrgather_width
, P_INT
,
1159 {"addrgather_height", "-1", &prefs_common
.addrgather_height
, P_INT
,
1162 {"news_subscribe_width", "450", &prefs_common
.news_subscribe_width
, P_INT
,
1164 {"news_subscribe_height", "400", &prefs_common
.news_subscribe_height
, P_INT
,
1168 {"imap_scan_tree_recurs_limit", "64", &prefs_common
.imap_scan_tree_recurs_limit
, P_INT
,
1170 {"warn_dnd", "1", &prefs_common
.warn_dnd
, P_INT
,
1172 {"utf8_instead_of_locale_for_broken_mail", "0",
1173 &prefs_common
.broken_are_utf8
, P_INT
,
1175 {"enable_swap_from", "FALSE", &prefs_common
.swap_from
, P_BOOL
,
1177 {"use_stripes_everywhere", "TRUE", &prefs_common
.use_stripes_everywhere
, P_BOOL
,
1179 {"use_stripes_in_summaries", "TRUE", &prefs_common
.use_stripes_in_summaries
, P_BOOL
,
1181 {"stripes_color_offset", "4000", &prefs_common
.stripes_color_offset
, P_INT
,
1183 {"enable_hscrollbar", "TRUE", &prefs_common
.enable_hscrollbar
, P_BOOL
,
1185 {"folderview_vscrollbar_policy", "0",
1186 &prefs_common
.folderview_vscrollbar_policy
, P_ENUM
,
1188 {"textview_cursor_visible", "FALSE",
1189 &prefs_common
.textview_cursor_visible
, P_BOOL
,
1191 {"hover_timeout", "500", &prefs_common
.hover_timeout
, P_INT
,
1193 #ifndef GENERIC_UMPC
1194 {"cache_max_mem_usage", "4096", &prefs_common
.cache_max_mem_usage
, P_INT
,
1196 {"cache_min_keep_time", "15", &prefs_common
.cache_min_keep_time
, P_INT
,
1199 {"cache_max_mem_usage", "4096", &prefs_common
.cache_max_mem_usage
, P_INT
,
1201 {"cache_min_keep_time", "0", &prefs_common
.cache_min_keep_time
, P_INT
,
1204 {"thread_by_subject_max_age", "10", &prefs_common
.thread_by_subject_max_age
,
1205 P_INT
, NULL
, NULL
, NULL
},
1206 {"last_opened_folder", "", &prefs_common
.last_opened_folder
,
1207 P_STRING
, NULL
, NULL
, NULL
},
1208 {"goto_last_folder_on_startup", "FALSE", &prefs_common
.goto_last_folder_on_startup
,
1209 P_BOOL
, NULL
, NULL
, NULL
},
1210 {"summary_quicksearch_sticky", "1", &prefs_common
.summary_quicksearch_sticky
, P_INT
,
1212 {"summary_quicksearch_dynamic", "0", &prefs_common
.summary_quicksearch_dynamic
, P_INT
,
1214 {"summary_quicksearch_autorun", "0", &prefs_common
.summary_quicksearch_autorun
, P_INT
,
1216 {"statusbar_update_step", "10", &prefs_common
.statusbar_update_step
, P_INT
,
1218 {"compose_no_markup", "FALSE", &prefs_common
.compose_no_markup
, P_BOOL
,
1220 {"skip_ssl_cert_check", "FALSE", &prefs_common
.skip_ssl_cert_check
, P_BOOL
,
1222 {"live_dangerously", "FALSE", &prefs_common
.live_dangerously
, P_BOOL
,
1224 {"save_parts_readwrite", "FALSE", &prefs_common
.save_parts_readwrite
, P_BOOL
,
1226 {"hide_quotes", "0", &prefs_common
.hide_quotes
, P_INT
,
1228 {"unsafe_ssl_certs", "FALSE", &prefs_common
.unsafe_ssl_certs
, P_BOOL
,
1230 #ifndef GENERIC_UMPC
1231 {"real_time_sync", "FALSE", &prefs_common
.real_time_sync
, P_BOOL
,
1234 {"real_time_sync", "TRUE", &prefs_common
.real_time_sync
, P_BOOL
,
1238 {"print_paper_type", NULL
, &prefs_common
.print_paper_type
, P_STRING
,
1240 {"print_paper_orientation", "0", &prefs_common
.print_paper_orientation
, P_INT
,
1242 {"print_margin_top", "-1", &prefs_common
.print_margin_top
, P_INT
,
1244 {"print_margin_bottom", "-1", &prefs_common
.print_margin_bottom
, P_INT
,
1246 {"print_margin_left", "-1", &prefs_common
.print_margin_left
, P_INT
,
1248 {"print_margin_right", "-1", &prefs_common
.print_margin_right
, P_INT
,
1250 {"print_use_color", "0", &prefs_common
.print_use_color
, P_INT
,
1252 {"print_use_collate", "0", &prefs_common
.print_use_collate
, P_INT
,
1254 {"print_use_reverse", "0", &prefs_common
.print_use_reverse
, P_INT
,
1256 {"print_use_duplex", "0", &prefs_common
.print_use_duplex
, P_INT
,
1258 {"print_imgs", "1", &prefs_common
.print_imgs
, P_INT
,
1260 {"print_previewwin_width", "600", &prefs_common
.print_previewwin_width
, P_INT
,
1262 {"print_previewwin_height", "-1", &prefs_common
.print_previewwin_height
, P_INT
,
1264 {"use_networkmanager", "TRUE", &prefs_common
.use_networkmanager
, P_BOOL
,
1266 {"use_shred", "FALSE", &prefs_common
.use_shred
, P_BOOL
,
1269 {"two_line_vertical", "TRUE", &prefs_common
.two_line_vert
,
1270 P_BOOL
, NULL
, NULL
, NULL
},
1272 {"inherit_folder_properties", "FALSE", &prefs_common
.inherit_folder_props
, P_BOOL
,
1275 {"flush_metadata", "TRUE", &prefs_common
.flush_metadata
, P_BOOL
,
1278 {"nav_history_length", "50", &prefs_common
.nav_history_length
, P_INT
,
1281 {"diff_added_color", "#008b8b", &prefs_common
.color
[COL_DIFF_ADDED
],
1282 P_COLOR
, NULL
, NULL
, NULL
},
1283 {"diff_deleted_color", "#6a5acd", &prefs_common
.color
[COL_DIFF_DELETED
],
1284 P_COLOR
, NULL
, NULL
, NULL
},
1285 {"diff_hunk_color", "#a52a2a", &prefs_common
.color
[COL_DIFF_HUNK
],
1286 P_COLOR
, NULL
, NULL
, NULL
},
1288 {"folder_search_wildcard", "TRUE", &prefs_common
.folder_search_wildcard
, P_BOOL
,
1290 {"address_search_wildcard", "TRUE", &prefs_common
.address_search_wildcard
, P_BOOL
,
1292 {"enable_avatars", "3", &prefs_common
.enable_avatars
, P_INT
, NULL
, NULL
, NULL
},
1293 #ifndef PASSWORD_CRYPTO_OLD
1294 {"use_master_passphrase", FALSE
, &prefs_common
.use_master_passphrase
, P_BOOL
, NULL
, NULL
, NULL
},
1295 {"master_passphrase", "", &prefs_common
.master_passphrase
, P_STRING
, NULL
, NULL
, NULL
},
1296 {"master_passphrase_salt", "", &prefs_common
.master_passphrase_salt
, P_STRING
, NULL
, NULL
, NULL
},
1297 {"master_passphrase_pbkdf2_rounds", "50000", &prefs_common
.master_passphrase_pbkdf2_rounds
, P_INT
, NULL
, NULL
, NULL
},
1300 {"use_proxy", "FALSE", &prefs_common
.use_proxy
, P_BOOL
, NULL
, NULL
, NULL
},
1301 {"proxy_type", "1", &prefs_common
.proxy_info
.proxy_type
, P_ENUM
, NULL
, NULL
, NULL
},
1302 {"proxy_host", "localhost", &prefs_common
.proxy_info
.proxy_host
, P_STRING
, NULL
, NULL
, NULL
},
1303 {"proxy_port", "1080", &prefs_common
.proxy_info
.proxy_port
, P_USHORT
, NULL
, NULL
, NULL
},
1304 {"use_proxy_auth", "FALSE", &prefs_common
.proxy_info
.use_proxy_auth
, P_BOOL
, NULL
, NULL
, NULL
},
1305 {"proxy_name", "", &prefs_common
.proxy_info
.proxy_name
, P_STRING
, NULL
, NULL
, NULL
},
1306 {"proxy_pass", NULL
, &prefs_common
.proxy_info
.proxy_pass
, P_STRING
, NULL
, NULL
, NULL
},
1308 {NULL
, NULL
, NULL
, P_OTHER
, NULL
, NULL
, NULL
}
1312 * Read history list from the specified history file in the specified directory (subdir of rc_dir)
1313 * Fallback to default_list if history file is not found
1315 GList
*prefs_common_read_history_from_dir_with_defaults(const gchar
*dirname
, const gchar
*history
,
1316 GList
*default_list
)
1320 gchar buf
[PREFSBUFSIZE
];
1324 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, dirname
,
1325 G_DIR_SEPARATOR_S
, history
,
1328 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, history
,
1331 if ((fp
= claws_fopen(path
, "rb")) == NULL
) {
1332 if (ENOENT
!= errno
) FILE_OP_ERROR(path
, "claws_fopen");
1334 /* returns default list if set, otherwise NULL */
1335 return default_list
;
1338 while (claws_fgets(buf
, sizeof(buf
), fp
) != NULL
) {
1340 if (buf
[0] == '\0') continue;
1341 tmp
= add_history(tmp
, buf
);
1345 tmp
= g_list_reverse(tmp
);
1351 * Read history list from the specified history file in the specified directory (subdir of rc_dir)
1353 static GList
*prefs_common_read_history_from_dir(const gchar
*dirname
, const gchar
*history
)
1355 return prefs_common_read_history_from_dir_with_defaults(dirname
, history
, NULL
);
1359 * Read history list from the specified history file
1361 static GList
*prefs_common_read_history(const gchar
*history
)
1363 return prefs_common_read_history_from_dir(NULL
, history
);
1366 void prefs_common_read_config(void)
1371 rcpath
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, COMMON_RC
, NULL
);
1372 prefs_read_config(param
, "Common", rcpath
, NULL
);
1374 prefs_read_config(param_os_specific
, "CommonWin32", rcpath
, NULL
);
1379 tmp
= g_strdup(gettext(prefs_common
.date_format
));
1380 g_free(prefs_common
.date_format
);
1381 prefs_common
.date_format
= tmp
;
1383 prefs_common
.mime_open_cmd_history
=
1384 prefs_common_read_history(COMMAND_HISTORY
);
1385 prefs_common
.summary_quicksearch_history
=
1386 prefs_common_read_history(QUICKSEARCH_HISTORY
);
1387 prefs_common
.summary_search_from_history
=
1388 prefs_common_read_history(SUMMARY_SEARCH_FROM_HISTORY
);
1389 prefs_common
.summary_search_to_history
=
1390 prefs_common_read_history(SUMMARY_SEARCH_TO_HISTORY
);
1391 prefs_common
.summary_search_subject_history
=
1392 prefs_common_read_history(SUMMARY_SEARCH_SUBJECT_HISTORY
);
1393 prefs_common
.summary_search_body_history
=
1394 prefs_common_read_history(SUMMARY_SEARCH_BODY_HISTORY
);
1395 prefs_common
.summary_search_adv_condition_history
=
1396 prefs_common_read_history(SUMMARY_SEARCH_ADV_CONDITION_HISTORY
);
1397 prefs_common
.message_search_history
=
1398 prefs_common_read_history(MESSAGE_SEARCH_HISTORY
);
1399 prefs_common
.compose_save_to_history
=
1400 prefs_common_read_history(COMPOSE_SAVE_TO_HISTORY
);
1401 #ifndef USE_ALT_ADDRBOOK
1402 prefs_common
.addressbook_custom_attributes
= addressbook_update_custom_attr_from_prefs();
1404 colorlabel_update_colortable_from_prefs();
1410 g_warning("failed to write"); \
1415 * Save history list to the specified history file in the specified directory (subdir of rc_dir)
1417 static void prefs_common_save_history_to_dir(const gchar
*dirname
, const gchar
*history
, GList
*list
)
1421 gchar
*path
, *tmp_path
;
1424 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, dirname
,
1425 G_DIR_SEPARATOR_S
, history
,
1428 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, history
,
1431 tmp_path
= g_strconcat(path
, ".tmp", NULL
);
1433 if ((fp
= claws_fopen(tmp_path
, "wb")) == NULL
) {
1434 FILE_OP_ERROR(tmp_path
, "claws_fopen");
1438 for (cur
= list
; cur
!= NULL
; cur
= cur
->next
) {
1439 TRY(claws_fputs((gchar
*)cur
->data
, fp
) != EOF
&&
1440 claws_fputc('\n', fp
) != EOF
);
1443 if (claws_safe_fclose(fp
) == EOF
) {
1444 FILE_OP_ERROR(tmp_path
, "claws_fclose");
1452 if (g_rename(tmp_path
, path
) < 0) {
1453 FILE_OP_ERROR(path
, "rename");
1459 claws_safe_fclose(fp
);
1465 * Save history list to the specified history file
1467 static void prefs_common_save_history(const gchar
*history
, GList
*list
)
1469 prefs_common_save_history_to_dir(NULL
, history
, list
);
1474 void prefs_common_write_config(void)
1476 prefs_write_config(param
, "Common", COMMON_RC
);
1478 prefs_write_config(param_os_specific
, "CommonWin32", COMMON_RC
);
1481 prefs_common_save_history(COMMAND_HISTORY
,
1482 prefs_common
.mime_open_cmd_history
);
1483 prefs_common_save_history(QUICKSEARCH_HISTORY
,
1484 prefs_common
.summary_quicksearch_history
);
1485 prefs_common_save_history(SUMMARY_SEARCH_FROM_HISTORY
,
1486 prefs_common
.summary_search_from_history
);
1487 prefs_common_save_history(SUMMARY_SEARCH_TO_HISTORY
,
1488 prefs_common
.summary_search_to_history
);
1489 prefs_common_save_history(SUMMARY_SEARCH_SUBJECT_HISTORY
,
1490 prefs_common
.summary_search_subject_history
);
1491 prefs_common_save_history(SUMMARY_SEARCH_BODY_HISTORY
,
1492 prefs_common
.summary_search_body_history
);
1493 prefs_common_save_history(SUMMARY_SEARCH_ADV_CONDITION_HISTORY
,
1494 prefs_common
.summary_search_adv_condition_history
);
1495 prefs_common_save_history(MESSAGE_SEARCH_HISTORY
,
1496 prefs_common
.message_search_history
);
1497 prefs_common_save_history(COMPOSE_SAVE_TO_HISTORY
,
1498 prefs_common
.compose_save_to_history
);
1500 #ifndef USE_ALT_ADDRBOOK
1501 prefs_common_save_history_to_dir(ADDRBOOK_DIR
,
1502 ADDRESSBOOK_CUSTOM_ATTRIBUTES
,
1503 prefs_common
.addressbook_custom_attributes
);
1507 /* make a copy of string 'in' into buffer 'out'. un-escape \ sequences.
1508 both 'in' and 'out' must be non-NULL.
1509 'out' must be a pointer to a buffer whose size is at least equal
1510 to strlen(txt)+1, this buffer will get cleared. out's contents
1511 will always get set to a valid string, even if it's "".*/
1512 void pref_get_unescaped_pref(gchar
*out
, const gchar
*in
)
1519 cm_return_if_fail( in
!= NULL
);
1520 cm_return_if_fail( out
!= NULL
);
1524 memset(out
, 0, strlen(in
)+1);
1525 while (*i
!= '\0') {
1526 if (*i
== '\\' && *(i
+1) == 'n') {
1529 } else if (*i
== '\\' && *(i
+1) == 't') {
1532 } else if (*i
== '\\' && *(i
+1) == '\\') {
1543 /* make a copy of string 'in' into buffer 'out'. escape \ sequences.
1544 both 'in' and 'out' must be non-NULL.
1545 'out' must be a pointer to a buffer whose size is at least equal
1546 to 2*strlen(txt)+1. out's contents will always get set to a valid
1547 string, even if it's "". */
1548 void pref_get_escaped_pref(gchar
*out
, const gchar
*in
)
1555 cm_return_if_fail( in
!= NULL
);
1556 cm_return_if_fail( out
!= NULL
);
1560 while (*i
!= '\0') {
1564 } else if (*i
== '\t') {
1567 } else if (*i
== '\\') {
1578 /* set the contents of a textview widget from the internal \-escaped
1579 representation of a pref string. both txt and textview must be non-NULL. */
1580 void pref_set_textview_from_pref(GtkTextView
*textview
, const gchar
*txt
)
1582 GtkTextBuffer
*buffer
;
1585 cm_return_if_fail( textview
!= NULL
);
1587 buffer
= gtk_text_view_get_buffer(textview
);
1590 gtk_text_buffer_set_text(buffer
, "", -1);
1592 out
= g_malloc(strlen(txt
)+1);
1594 pref_get_unescaped_pref(out
, txt
);
1596 gtk_text_buffer_set_text(buffer
, out
, -1);
1601 /* set the contents of a gtkentry widget from the internal \-escaped
1602 representation of a pref string. both txt and entry must be non-NULL. */
1603 void pref_set_entry_from_pref(GtkEntry
*entry
, const gchar
*txt
)
1607 cm_return_if_fail( entry
!= NULL
);
1609 gtk_entry_set_text(entry
, "");
1611 out
= g_malloc(strlen(txt
)+1);
1613 pref_get_unescaped_pref(out
, txt
);
1615 gtk_entry_set_text(entry
, out
);
1620 /* get the \-escaped internal representation of a pref from the contents of
1621 a textview widget. textview must be non-NULL. */
1622 gchar
*pref_get_pref_from_textview(GtkTextView
*textview
)
1624 GtkTextBuffer
*buffer
;
1625 GtkTextIter start
, end
;
1628 cm_return_val_if_fail( textview
!= NULL
, "" );
1630 buffer
= gtk_text_view_get_buffer(textview
);
1631 gtk_text_buffer_get_start_iter(buffer
, &start
);
1632 gtk_text_buffer_get_iter_at_offset(buffer
, &end
, -1);
1633 tmp
= gtk_text_buffer_get_text(buffer
, &start
, &end
, FALSE
);
1634 out
= malloc(2*strlen(tmp
)+1);
1636 pref_get_escaped_pref(out
, tmp
);
1642 /* get the \-escaped internal representation of a pref from the contents of
1643 a gtkentry widget. entry must be non-NULL. */
1644 gchar
*pref_get_pref_from_entry(GtkEntry
*entry
)
1648 cm_return_val_if_fail( entry
!= NULL
, "" );
1650 tmp
= gtk_editable_get_chars(GTK_EDITABLE(entry
), 0, -1);
1651 out
= malloc(2*strlen(tmp
)+1);
1654 pref_get_escaped_pref(out
, tmp
);
1660 /* ugly hack to be able to get this pref from ssl_certificate.c */
1661 gboolean
prefs_common_unsafe_ssl_certs(void)
1663 return prefs_common
.unsafe_ssl_certs
;
1666 gboolean
prefs_common_enable_log_standard(void)
1668 return prefs_common
.enable_log_standard
;
1671 gboolean
prefs_common_enable_log_warning(void)
1673 return prefs_common
.enable_log_warning
;
1675 gboolean
prefs_common_enable_log_error(void)
1677 return prefs_common
.enable_log_error
;
1679 gboolean
prefs_common_enable_log_status(void)
1681 return prefs_common
.enable_log_status
;
1685 return the translated name of a header, if the translate_header option is
1686 set, otherwise return the untranslated header name (header_name itself).
1687 this function is provided for convenience, it's an interface to
1688 prefs_common.trans_hdr.
1689 works with header names either with or without trailing colon, provided
1690 that gettext found such header name in the sources (they should all be
1691 found in src/gtk/headers.h anyway).
1693 const gchar
*prefs_common_translated_header_name(const gchar
*header_name
)
1695 if (header_name
== NULL
|| *header_name
== '\0')
1698 return prefs_common
.trans_hdr
? gettext(header_name
) : header_name
;
1701 const gchar
*prefs_common_get_uri_cmd(void)
1708 if (!prefs_common
.cmds_use_system_default
)
1709 return prefs_common
.uri_cmd
;
1711 tmp
= g_find_program_in_path("xdg-open");
1713 return prefs_common
.uri_cmd
;
1716 return "xdg-open %s";
1720 const gchar
*prefs_common_get_ext_editor_cmd(void)
1722 return prefs_common
.ext_editor_cmd
;
1723 #if 0 /* we should do that, but it detaches the editor and breaks
1724 compose.c's external composition. */
1727 if (!prefs_common
.cmds_use_system_default
)
1728 return prefs_common
.ext_editor_cmd
;
1730 tmp
= g_find_program_in_path("xdg-open");
1732 return prefs_common
.ext_editor_cmd
;
1735 return "xdg-open %s";
1739 gboolean
prefs_common_get_use_shred(void)
1741 return prefs_common
.use_shred
;
1744 gboolean
prefs_common_get_flush_metadata (void)
1746 return prefs_common
.flush_metadata
;
1749 PrefsCommon
*prefs_common_get_prefs(void)
1751 return &prefs_common
;