2 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2007 Hiroyuki Yamamoto and the Claws Mail team
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.
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, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
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 "mainwindow.h"
45 #include "summaryview.h"
46 #include "folderview.h"
47 #include "messageview.h"
48 #include "manage_window.h"
54 #include "alertpanel.h"
58 #include "folderview.h"
59 #include "stock_pixmap.h"
60 #include "prefswindow.h"
61 #include "colorlabel.h"
69 PrefsCommon prefs_common
;
75 * In the Windows version prefs_common contains
76 * - the non-OS-specific settings of the "Common" section and
77 * - the OS-specific settings of the "CommonWin32" section
78 * The OS-specific settings of the "Common" section are not used
79 * but saved in prefs_unix.
82 # define SPECIFIC_PREFS prefs_unix
84 static PrefsCommon prefs_unix
;
86 static PrefParam param_os_specific
[] = {
89 &prefs_common
.extinc_cmd
, P_STRING
, NULL
, NULL
, NULL
},
90 {"newmail_notify_cmd", "",
91 &prefs_common
.newmail_notify_cmd
, P_STRING
, NULL
, NULL
, NULL
},
94 {"widget_font_gtk2", NULL
,
95 &prefs_common
.widgetfont
, P_STRING
, NULL
, NULL
, NULL
},
96 {"message_font_gtk2", "Monospace 9",
97 &prefs_common
.textfont
, P_STRING
, NULL
, NULL
, NULL
},
98 {"print_font_gtk2", "Monospace 9",
99 &prefs_common
.printfont
, P_STRING
, NULL
, NULL
, NULL
},
100 {"small_font_gtk2", "Sans 9",
101 &prefs_common
.smallfont
, P_STRING
, NULL
, NULL
, NULL
},
102 {"normal_font_gtk2", "Sans 9",
103 &prefs_common
.normalfont
, P_STRING
, NULL
, NULL
, NULL
},
106 {"attach_save_directory", NULL
,
107 &prefs_common
.attach_save_dir
, P_STRING
, NULL
, NULL
, NULL
},
108 {"attach_load_directory", NULL
,
109 &prefs_common
.attach_load_dir
, P_STRING
, NULL
, NULL
, NULL
},
112 {"mime_textviewer", NULL
,
113 &prefs_common
.mime_textviewer
, P_STRING
, NULL
, NULL
, NULL
},
114 {"mime_open_command", "notepad '%s'",
115 &prefs_common
.mime_open_cmd
, P_STRING
, NULL
, NULL
, NULL
},
118 {"pixmap_theme_path", DEFAULT_PIXMAP_THEME
,
119 &prefs_common
.pixmap_theme_path
, P_STRING
, NULL
, NULL
, NULL
},
122 {"uri_open_command", NULL
,
123 &prefs_common
.uri_cmd
, P_STRING
, NULL
, NULL
, NULL
},
124 {"print_command", "notepad /p %s",
125 &prefs_common
.print_cmd
, P_STRING
, NULL
, NULL
, NULL
},
126 {"ext_editor_command", "notepad %s",
127 &prefs_common
.ext_editor_cmd
, P_STRING
, NULL
, NULL
, NULL
},
129 {NULL
, NULL
, NULL
, P_OTHER
, NULL
, NULL
, NULL
}
132 # define SPECIFIC_PREFS prefs_common
136 parameter name, default value, pointer to the prefs variable, data type,
137 pointer to the widget pointer,
138 pointer to the function for data setting,
139 pointer to the function for widget setting
142 static PrefParam param
[] = {
144 {"use_ext_inc", "FALSE", &prefs_common
.use_extinc
, P_BOOL
,
146 {"ext_inc_path", DEFAULT_INC_PATH
, &SPECIFIC_PREFS
.extinc_cmd
, P_STRING
,
149 {"autochk_newmail", "FALSE", &prefs_common
.autochk_newmail
, P_BOOL
,
151 {"autochk_interval", "10", &prefs_common
.autochk_itv
, P_INT
,
153 {"check_on_startup", "FALSE", &prefs_common
.chk_on_startup
, P_BOOL
,
155 {"open_inbox_on_inc", "FALSE", &prefs_common
.open_inbox_on_inc
,
156 P_BOOL
, NULL
, NULL
, NULL
},
157 {"scan_all_after_inc", "FALSE", &prefs_common
.scan_all_after_inc
,
158 P_BOOL
, NULL
, NULL
, NULL
},
159 {"newmail_notify_manu", "FALSE", &prefs_common
.newmail_notify_manu
,
160 P_BOOL
, NULL
, NULL
, NULL
},
161 {"newmail_notify_auto", "FALSE", &prefs_common
.newmail_notify_auto
,
162 P_BOOL
, NULL
, NULL
, NULL
},
163 {"newmail_notify_cmd", "", &SPECIFIC_PREFS
.newmail_notify_cmd
, P_STRING
,
165 {"receive_dialog_mode", "1", &prefs_common
.recv_dialog_mode
, P_ENUM
,
167 {"receivewin_width", "460", &prefs_common
.receivewin_width
, P_INT
,
169 {"receivewin_height", "-1", &prefs_common
.receivewin_height
, P_INT
,
171 {"no_receive_error_panel", "FALSE", &prefs_common
.no_recv_err_panel
,
172 P_BOOL
, NULL
, NULL
, NULL
},
173 {"close_receive_dialog", "TRUE", &prefs_common
.close_recv_dialog
,
174 P_BOOL
, NULL
, NULL
, NULL
},
177 {"save_message", "TRUE", &prefs_common
.savemsg
, P_BOOL
,
179 {"confirm_send_queued_messages", "FALSE", &prefs_common
.confirm_send_queued_messages
,
180 P_BOOL
, NULL
, NULL
, NULL
},
181 {"send_dialog_mode", "0", &prefs_common
.send_dialog_mode
, P_ENUM
,
183 {"sendwin_width", "460", &prefs_common
.sendwin_width
, P_INT
,
185 {"sendwin_height", "-1", &prefs_common
.sendwin_height
, P_INT
,
188 {"outgoing_charset", CS_AUTO
, &prefs_common
.outgoing_charset
, P_STRING
,
190 {"encoding_method", "0", &prefs_common
.encoding_method
, P_ENUM
,
193 {"allow_jisx0201_kana", "FALSE", &prefs_common
.allow_jisx0201_kana
,
194 P_BOOL
, NULL
, NULL
, NULL
},
197 {"auto_ext_editor", "FALSE", &prefs_common
.auto_exteditor
, P_BOOL
,
199 {"forward_as_attachment", "FALSE", &prefs_common
.forward_as_attachment
,
200 P_BOOL
, NULL
, NULL
, NULL
},
201 {"redirect_keep_from", "FALSE",
202 &prefs_common
.redirect_keep_from
, P_BOOL
,
204 {"undo_level", "50", &prefs_common
.undolevels
, P_INT
,
206 {"compose_with_format", "FALSE", &prefs_common
.compose_with_format
, P_BOOL
,
208 {"compose_subject_format", "",
209 &prefs_common
.compose_subject_format
, P_STRING
, NULL
, NULL
, NULL
},
210 {"compose_body_format", N_("Hello,\\n"),
211 &prefs_common
.compose_body_format
, P_STRING
, NULL
, NULL
, NULL
},
213 {"linewrap_length", "72", &prefs_common
.linewrap_len
, P_INT
,
215 {"linewrap_quotation", "TRUE", &prefs_common
.linewrap_quote
, P_BOOL
,
217 {"linewrap_pastes", "TRUE", &prefs_common
.linewrap_pastes
, P_BOOL
,
219 {"linewrap_auto", "TRUE", &prefs_common
.autowrap
, P_BOOL
,
221 {"autosave", "TRUE", &prefs_common
.autosave
,
222 P_BOOL
, NULL
, NULL
, NULL
},
223 {"autosave_length", "50", &prefs_common
.autosave_length
, P_INT
,
226 {"enable_aspell", "TRUE", &prefs_common
.enable_aspell
, P_BOOL
,
228 {"aspell_path", ASPELL_PATH
, &prefs_common
.aspell_path
, P_STRING
,
230 {"dictionary", "", &prefs_common
.dictionary
, P_STRING
,
232 {"alt_dictionary", "", &prefs_common
.alt_dictionary
, P_STRING
,
234 {"aspell_sugmode", "1", &prefs_common
.aspell_sugmode
, P_INT
,
236 {"use_alternate_dict", "FALSE", &prefs_common
.use_alternate
, P_BOOL
,
238 {"check_while_typing", "TRUE", &prefs_common
.check_while_typing
, P_BOOL
,
240 {"recheck_when_changing_dict", "TRUE", &prefs_common
.recheck_when_changing_dict
,
241 P_BOOL
, NULL
, NULL
, NULL
},
242 {"misspelled_color", "16711680", &prefs_common
.misspelled_col
, P_COLOR
,
244 {"use_both_dicts", "FALSE", &prefs_common
.use_both_dicts
, P_BOOL
,
247 {"reply_with_quote", "TRUE", &prefs_common
.reply_with_quote
, P_BOOL
,
249 {"compose_dnd_insert_or_attach", "0", &prefs_common
.compose_dnd_mode
, P_ENUM
,
252 /* Account autoselection */
253 {"reply_account_autoselect", "TRUE",
254 &prefs_common
.reply_account_autosel
, P_BOOL
,
256 {"forward_account_autoselect", "TRUE",
257 &prefs_common
.forward_account_autosel
, P_BOOL
,
259 {"reedit_account_autoselect", "TRUE",
260 &prefs_common
.reedit_account_autosel
, P_BOOL
,
263 {"default_reply_list", "TRUE", &prefs_common
.default_reply_list
, P_BOOL
,
266 {"show_ruler", "TRUE", &prefs_common
.show_ruler
, P_BOOL
,
270 {"reply_quote_mark", "> ", &prefs_common
.quotemark
, P_STRING
,
272 {"reply_quote_format", N_("On %d\\n%f wrote:\\n\\n%q"),
273 &prefs_common
.quotefmt
, P_STRING
, NULL
, NULL
, NULL
},
275 {"forward_quote_mark", "> ", &prefs_common
.fw_quotemark
, P_STRING
,
277 {"forward_quote_format",
278 N_("\\n\\nBegin forwarded message:\\n\\n"
279 "?d{Date: %d\\n}?f{From: %f\\n}?t{To: %t\\n}?c{Cc: %c\\n}"
280 "?n{Newsgroups: %n\\n}?s{Subject: %s\\n}\\n\\n%M"),
281 &prefs_common
.fw_quotefmt
, P_STRING
, NULL
, NULL
, NULL
},
282 {"quote_chars", ">", &prefs_common
.quote_chars
, P_STRING
,
286 /* Obsolete fonts. For coexisting with Gtk+-1.2 version */
287 {"widget_font", NULL
,
288 &prefs_common
.widgetfont_gtk1
, P_STRING
, NULL
, NULL
, NULL
},
289 {"message_font", "-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*",
290 &prefs_common
.textfont_gtk1
, P_STRING
, NULL
, NULL
, NULL
},
291 {"small_font", "-*-helvetica-medium-r-normal--10-*-*-*-*-*-*-*",
292 &prefs_common
.smallfont_gtk1
, P_STRING
, NULL
, NULL
, NULL
},
293 {"bold_font", "-*-helvetica-bold-r-normal--12-*-*-*-*-*-*-*",
294 &prefs_common
.boldfont_gtk1
, P_STRING
, NULL
, NULL
, NULL
},
295 {"normal_font", "-*-helvetica-medium-r-normal--12-*-*-*-*-*-*-*",
296 &prefs_common
.normalfont_gtk1
, P_STRING
, NULL
, NULL
, NULL
},
299 {"widget_font_gtk2", NULL
,
300 &SPECIFIC_PREFS
.widgetfont
, P_STRING
, NULL
, NULL
, NULL
},
301 {"message_font_gtk2", "Monospace 9",
302 &SPECIFIC_PREFS
.textfont
, P_STRING
, NULL
, NULL
, NULL
},
303 {"print_font_gtk2", "Monospace 9",
304 &SPECIFIC_PREFS
.printfont
, P_STRING
, NULL
, NULL
, NULL
},
305 {"small_font_gtk2", "Sans 9",
306 &SPECIFIC_PREFS
.smallfont
, P_STRING
, NULL
, NULL
, NULL
},
307 {"normal_font_gtk2", "Sans 9",
308 &SPECIFIC_PREFS
.normalfont
, P_STRING
, NULL
, NULL
, NULL
},
311 {"custom_color1", "#ff9900", &prefs_common
.custom_colorlabel
[0].color
, P_COLOR
,
313 {"custom_colorlabel1", N_("Orange"), &prefs_common
.custom_colorlabel
[0].label
, P_STRING
,
315 {"custom_color2", "#ff0000", &prefs_common
.custom_colorlabel
[1].color
, P_COLOR
,
317 {"custom_colorlabel2", N_("Red"), &prefs_common
.custom_colorlabel
[1].label
, P_STRING
,
319 {"custom_color3", "#ff66ff", &prefs_common
.custom_colorlabel
[2].color
, P_COLOR
,
321 {"custom_colorlabel3", N_("Pink"), &prefs_common
.custom_colorlabel
[2].label
, P_STRING
,
323 {"custom_color4", "#00ccff", &prefs_common
.custom_colorlabel
[3].color
, P_COLOR
,
325 {"custom_colorlabel4", N_("Sky blue"), &prefs_common
.custom_colorlabel
[3].label
, P_STRING
,
327 {"custom_color5", "#0000ff", &prefs_common
.custom_colorlabel
[4].color
, P_COLOR
,
329 {"custom_colorlabel5", N_("Blue"), &prefs_common
.custom_colorlabel
[4].label
, P_STRING
,
331 {"custom_color6", "#009900", &prefs_common
.custom_colorlabel
[5].color
, P_COLOR
,
333 {"custom_colorlabel6", N_("Green"), &prefs_common
.custom_colorlabel
[5].label
, P_STRING
,
335 {"custom_color7", "#663366", &prefs_common
.custom_colorlabel
[6].color
, P_COLOR
,
337 {"custom_colorlabel7", N_("Brown"), &prefs_common
.custom_colorlabel
[6].label
, P_STRING
,
341 {"display_image", "TRUE", &prefs_common
.display_img
, P_BOOL
,
343 {"resize_image", "TRUE", &prefs_common
.resize_img
, P_BOOL
,
345 {"inline_image", "TRUE", &prefs_common
.inline_img
, P_BOOL
,
348 {"display_folder_unread_num", "FALSE",
349 &prefs_common
.display_folder_unread
, P_BOOL
,
351 {"newsgroup_abbrev_len", "16",
352 &prefs_common
.ng_abbrev_len
, P_INT
,
355 {"translate_header", "FALSE", &prefs_common
.trans_hdr
, P_BOOL
,
358 /* Display: Summary View */
359 {"use_address_book", "FALSE", &prefs_common
.use_addr_book
, P_BOOL
,
361 {"thread_by_subject", "TRUE", &prefs_common
.thread_by_subject
, P_BOOL
,
363 {"date_format", N_("%y/%m/%d(%a) %H:%M"), &prefs_common
.date_format
,
364 P_STRING
, NULL
, NULL
, NULL
},
366 {"bold_unread", "TRUE", &prefs_common
.bold_unread
, P_BOOL
,
369 {"enable_thread", "TRUE", &prefs_common
.enable_thread
, P_BOOL
,
371 {"toolbar_style", "3", &prefs_common
.toolbar_style
, P_ENUM
,
373 {"toolbar_detachable", "FALSE", &prefs_common
.toolbar_detachable
, P_BOOL
,
375 {"show_statusbar", "TRUE", &prefs_common
.show_statusbar
, P_BOOL
,
377 {"show_searchbar", "TRUE", &prefs_common
.show_searchbar
, P_BOOL
,
381 {"summary_col_show_mark", "TRUE",
382 &prefs_common
.summary_col_visible
[S_COL_MARK
], P_BOOL
, NULL
, NULL
, NULL
},
383 {"summary_col_show_unread", "TRUE",
384 &prefs_common
.summary_col_visible
[S_COL_STATUS
], P_BOOL
, NULL
, NULL
, NULL
},
385 {"summary_col_show_mime", "TRUE",
386 &prefs_common
.summary_col_visible
[S_COL_MIME
], P_BOOL
, NULL
, NULL
, NULL
},
387 {"summary_col_show_subject", "TRUE",
388 &prefs_common
.summary_col_visible
[S_COL_SUBJECT
], P_BOOL
, NULL
, NULL
, NULL
},
389 {"summary_col_show_from", "TRUE",
390 &prefs_common
.summary_col_visible
[S_COL_FROM
], P_BOOL
, NULL
, NULL
, NULL
},
391 {"summary_col_show_to", "FALSE",
392 &prefs_common
.summary_col_visible
[S_COL_TO
], P_BOOL
, NULL
, NULL
, NULL
},
393 {"summary_col_show_date", "TRUE",
394 &prefs_common
.summary_col_visible
[S_COL_DATE
], P_BOOL
, NULL
, NULL
, NULL
},
395 {"summary_col_show_size", "TRUE",
396 &prefs_common
.summary_col_visible
[S_COL_SIZE
], P_BOOL
, NULL
, NULL
, NULL
},
397 {"summary_col_show_number", "FALSE",
398 &prefs_common
.summary_col_visible
[S_COL_NUMBER
], P_BOOL
, NULL
, NULL
, NULL
},
399 {"summary_col_show_score", "FALSE",
400 &prefs_common
.summary_col_visible
[S_COL_SCORE
], P_BOOL
, NULL
, NULL
, NULL
},
401 {"summary_col_show_locked", "FALSE",
402 &prefs_common
.summary_col_visible
[S_COL_LOCKED
], P_BOOL
, NULL
, NULL
, NULL
},
404 {"summary_col_pos_mark", "0",
405 &prefs_common
.summary_col_pos
[S_COL_MARK
], P_INT
, NULL
, NULL
, NULL
},
406 {"summary_col_pos_unread", "1",
407 &prefs_common
.summary_col_pos
[S_COL_STATUS
], P_INT
, NULL
, NULL
, NULL
},
408 {"summary_col_pos_mime", "2",
409 &prefs_common
.summary_col_pos
[S_COL_MIME
], P_INT
, NULL
, NULL
, NULL
},
410 {"summary_col_pos_subject", "3",
411 &prefs_common
.summary_col_pos
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
412 {"summary_col_pos_from", "4",
413 &prefs_common
.summary_col_pos
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
414 {"summary_col_pos_date", "5",
415 &prefs_common
.summary_col_pos
[S_COL_DATE
], P_INT
, NULL
, NULL
, NULL
},
416 {"summary_col_pos_size", "6",
417 &prefs_common
.summary_col_pos
[S_COL_SIZE
], P_INT
, NULL
, NULL
, NULL
},
418 {"summary_col_pos_number", "7",
419 &prefs_common
.summary_col_pos
[S_COL_NUMBER
], P_INT
, NULL
, NULL
, NULL
},
420 {"summary_col_pos_score", "8",
421 &prefs_common
.summary_col_pos
[S_COL_SCORE
], P_INT
, NULL
, NULL
, NULL
},
422 {"summary_col_pos_locked", "9",
423 &prefs_common
.summary_col_pos
[S_COL_LOCKED
], P_INT
, NULL
, NULL
, NULL
},
424 {"summary_col_pos_to", "10",
425 &prefs_common
.summary_col_pos
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
427 {"summary_col_size_mark", "10",
428 &prefs_common
.summary_col_size
[S_COL_MARK
], P_INT
, NULL
, NULL
, NULL
},
429 {"summary_col_size_unread", "13",
430 &prefs_common
.summary_col_size
[S_COL_STATUS
], P_INT
, NULL
, NULL
, NULL
},
431 {"summary_col_size_mime", "10",
432 &prefs_common
.summary_col_size
[S_COL_MIME
], P_INT
, NULL
, NULL
, NULL
},
433 {"summary_col_size_subject", "200",
434 &prefs_common
.summary_col_size
[S_COL_SUBJECT
], P_INT
, NULL
, NULL
, NULL
},
435 {"summary_col_size_from", "120",
436 &prefs_common
.summary_col_size
[S_COL_FROM
], P_INT
, NULL
, NULL
, NULL
},
437 {"summary_col_size_to", "120",
438 &prefs_common
.summary_col_size
[S_COL_TO
], P_INT
, NULL
, NULL
, NULL
},
439 {"summary_col_size_date", "118",
440 &prefs_common
.summary_col_size
[S_COL_DATE
], P_INT
, NULL
, NULL
, NULL
},
441 {"summary_col_size_size", "45",
442 &prefs_common
.summary_col_size
[S_COL_SIZE
], P_INT
, NULL
, NULL
, NULL
},
443 {"summary_col_size_number", "40",
444 &prefs_common
.summary_col_size
[S_COL_NUMBER
], P_INT
, NULL
, NULL
, NULL
},
445 {"summary_col_size_score", "40",
446 &prefs_common
.summary_col_size
[S_COL_SCORE
], P_INT
, NULL
, NULL
, NULL
},
447 {"summary_col_size_locked", "13",
448 &prefs_common
.summary_col_size
[S_COL_LOCKED
], P_INT
, NULL
, NULL
, NULL
},
451 {"folderwin_x", "16", &prefs_common
.folderwin_x
, P_INT
,
453 {"folderwin_y", "16", &prefs_common
.folderwin_y
, P_INT
,
455 {"folderview_width", "270", &prefs_common
.folderview_width
, P_INT
,
457 {"folderview_height", "450", &prefs_common
.folderview_height
, P_INT
,
459 {"folderview_visible", "TRUE", &prefs_common
.folderview_visible
, P_BOOL
,
462 {"folder_col_show_folder", "TRUE",
463 &prefs_common
.folder_col_visible
[F_COL_FOLDER
], P_BOOL
, NULL
, NULL
, NULL
},
464 {"folder_col_show_new", "TRUE",
465 &prefs_common
.folder_col_visible
[F_COL_NEW
], P_BOOL
, NULL
, NULL
, NULL
},
466 {"folder_col_show_unread", "TRUE",
467 &prefs_common
.folder_col_visible
[F_COL_UNREAD
], P_BOOL
, NULL
, NULL
, NULL
},
468 {"folder_col_show_total", "TRUE",
469 &prefs_common
.folder_col_visible
[F_COL_TOTAL
], P_BOOL
, NULL
, NULL
, NULL
},
471 {"folder_col_pos_folder", "0",
472 &prefs_common
.folder_col_pos
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
473 {"folder_col_pos_new", "1",
474 &prefs_common
.folder_col_pos
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
475 {"folder_col_pos_unread", "2",
476 &prefs_common
.folder_col_pos
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
477 {"folder_col_pos_total", "3",
478 &prefs_common
.folder_col_pos
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
480 {"folder_col_size_folder", "120",
481 &prefs_common
.folder_col_size
[F_COL_FOLDER
], P_INT
, NULL
, NULL
, NULL
},
482 {"folder_col_size_new", "32",
483 &prefs_common
.folder_col_size
[F_COL_NEW
], P_INT
, NULL
, NULL
, NULL
},
484 {"folder_col_size_unread", "32",
485 &prefs_common
.folder_col_size
[F_COL_UNREAD
], P_INT
, NULL
, NULL
, NULL
},
486 {"folder_col_size_total", "32",
487 &prefs_common
.folder_col_size
[F_COL_TOTAL
], P_INT
, NULL
, NULL
, NULL
},
489 {"summaryview_width", "500", &prefs_common
.summaryview_width
, P_INT
,
491 {"summaryview_height", "244", &prefs_common
.summaryview_height
, P_INT
,
494 {"main_messagewin_x", "256", &prefs_common
.main_msgwin_x
, P_INT
,
496 {"main_messagewin_y", "210", &prefs_common
.main_msgwin_y
, P_INT
,
498 {"messageview_width", "500", &prefs_common
.msgview_width
, P_INT
,
500 {"messageview_height", "213", &prefs_common
.msgview_height
, P_INT
,
502 {"messageview_visible", "TRUE", &prefs_common
.msgview_visible
, P_BOOL
,
505 {"mainview_x", "64", &prefs_common
.mainview_x
, P_INT
,
507 {"mainview_y", "64", &prefs_common
.mainview_y
, P_INT
,
509 {"mainview_width", "500", &prefs_common
.mainview_width
, P_INT
,
511 {"mainview_height", "400", &prefs_common
.mainview_height
, P_INT
,
513 {"mainwin_x", "64", &prefs_common
.mainwin_x
, P_INT
,
515 {"mainwin_y", "64", &prefs_common
.mainwin_y
, P_INT
,
517 {"mainwin_width", "800", &prefs_common
.mainwin_width
, P_INT
,
519 {"mainwin_height", "600", &prefs_common
.mainwin_height
, P_INT
,
521 {"messagewin_width", "600", &prefs_common
.msgwin_width
, P_INT
,
523 {"messagewin_height", "540", &prefs_common
.msgwin_height
, P_INT
,
525 {"sourcewin_width", "600", &prefs_common
.sourcewin_width
, P_INT
,
527 {"sourcewin_height", "500", &prefs_common
.sourcewin_height
, P_INT
,
529 {"compose_width", "600", &prefs_common
.compose_width
, P_INT
,
531 {"compose_height", "560", &prefs_common
.compose_height
, P_INT
,
533 {"compose_x", "0", &prefs_common
.compose_x
, P_INT
,
535 {"compose_y", "0", &prefs_common
.compose_y
, P_INT
,
538 {"enable_color", "TRUE", &prefs_common
.enable_color
, P_BOOL
,
541 {"quote_level1_color", "179", &prefs_common
.quote_level1_col
, P_COLOR
,
543 {"quote_level2_color", "179", &prefs_common
.quote_level2_col
, P_COLOR
,
545 {"quote_level3_color", "179", &prefs_common
.quote_level3_col
, P_COLOR
,
547 {"enable_bgcolor", "FALSE", &prefs_common
.enable_bgcolor
, P_BOOL
,
549 {"quote_level1_bgcolor", "13421772", &prefs_common
.quote_level1_bgcol
, P_COLOR
,
551 {"quote_level2_bgcolor", "13948116", &prefs_common
.quote_level2_bgcol
, P_COLOR
,
553 {"quote_level3_bgcolor", "14540253", &prefs_common
.quote_level3_bgcol
, P_COLOR
,
555 {"uri_color", "32512", &prefs_common
.uri_col
, P_COLOR
,
557 {"target_folder_color", "14294218", &prefs_common
.tgt_folder_col
, P_COLOR
,
559 {"signature_color", "7960953", &prefs_common
.signature_col
, P_COLOR
,
561 {"recycle_quote_colors", "FALSE", &prefs_common
.recycle_quote_colors
,
562 P_BOOL
, NULL
, NULL
, NULL
},
564 {"display_header_pane", "FALSE", &prefs_common
.display_header_pane
,
565 P_BOOL
, NULL
, NULL
, NULL
},
566 {"display_header", "TRUE", &prefs_common
.display_header
, P_BOOL
,
568 {"display_xface", "TRUE", &prefs_common
.display_xface
,
569 P_BOOL
, NULL
, NULL
, NULL
},
570 {"render_html", "TRUE", &prefs_common
.render_html
, P_BOOL
,
572 {"invoke_plugin_on_html", "FALSE", &prefs_common
.invoke_plugin_on_html
, P_BOOL
,
574 {"line_space", "2", &prefs_common
.line_space
, P_INT
,
576 {"never_send_retrcpt", "FALSE", &prefs_common
.never_send_retrcpt
, P_BOOL
,
579 {"enable_smooth_scroll", "FALSE",
580 &prefs_common
.enable_smooth_scroll
, P_BOOL
,
582 {"scroll_step", "1", &prefs_common
.scroll_step
, P_INT
,
584 {"scroll_half_page", "FALSE", &prefs_common
.scroll_halfpage
, P_BOOL
,
586 {"respect_flowed_format", "FALSE", &prefs_common
.respect_flowed_format
, P_BOOL
,
589 {"show_other_header", "FALSE", &prefs_common
.show_other_header
, P_BOOL
,
592 {"use_different_print_font", "FALSE", &prefs_common
.use_different_print_font
, P_BOOL
,
595 {"attach_desc", "TRUE", &prefs_common
.attach_desc
, P_BOOL
,
597 {"attach_save_directory", NULL
,
598 &SPECIFIC_PREFS
.attach_save_dir
, P_STRING
, NULL
, NULL
, NULL
},
599 {"attach_load_directory", NULL
,
600 &SPECIFIC_PREFS
.attach_load_dir
, P_STRING
, NULL
, NULL
, NULL
},
603 {"mime_textviewer", NULL
,
604 &SPECIFIC_PREFS
.mime_textviewer
, P_STRING
, NULL
, NULL
, NULL
},
605 {"mime_open_command", "gedit '%s'",
606 &SPECIFIC_PREFS
.mime_open_cmd
, P_STRING
, NULL
, NULL
, NULL
},
609 {"separate_folder", "FALSE", &prefs_common
.sep_folder
, P_BOOL
,
611 {"separate_message", "FALSE", &prefs_common
.sep_msg
, P_BOOL
,
614 /* {"emulate_emacs", "FALSE", &prefs_common.emulate_emacs, P_BOOL,
615 NULL, NULL, NULL}, */
616 {"always_show_message_when_selected", "FALSE",
617 &prefs_common
.always_show_msg
,
618 P_BOOL
, NULL
, NULL
, NULL
},
619 {"select_on_entry", "2", &prefs_common
.select_on_entry
,
620 P_ENUM
, NULL
, NULL
, NULL
},
621 {"mark_as_read_on_new_window", "FALSE",
622 &prefs_common
.mark_as_read_on_new_window
,
623 P_BOOL
, NULL
, NULL
, NULL
},
624 {"mark_as_read_delay", "0",
625 &prefs_common
.mark_as_read_delay
, P_INT
,
627 {"immediate_execution", "TRUE", &prefs_common
.immediate_exec
, P_BOOL
,
629 {"nextunreadmsg_dialog", "1", &prefs_common
.next_unread_msg_dialog
, P_ENUM
,
632 {"pixmap_theme_path", DEFAULT_PIXMAP_THEME
,
633 &SPECIFIC_PREFS
.pixmap_theme_path
, P_STRING
,
636 {"ask_mark_all_read", "TRUE", &prefs_common
.ask_mark_all_read
, P_BOOL
,
639 {"ask_apply_per_account_filtering_rules", "TRUE", &prefs_common
.ask_apply_per_account_filtering_rules
, P_BOOL
,
641 {"apply_per_account_filtering_rules", "0", &prefs_common
.apply_per_account_filtering_rules
, P_ENUM
,
645 {"addressbook_use_editaddress_dialog", "TRUE", &prefs_common
.addressbook_use_editaddress_dialog
,
646 P_BOOL
, NULL
, NULL
, NULL
},
647 {"addressbook_hpaned_pos", "-1", &prefs_common
.addressbook_hpaned_pos
,
648 P_INT
, NULL
, NULL
, NULL
},
649 {"addressbook_vpaned_pos", "-1", &prefs_common
.addressbook_vpaned_pos
,
650 P_INT
, NULL
, NULL
, NULL
},
653 {"uri_open_command", DEFAULT_BROWSER_CMD
,
654 &SPECIFIC_PREFS
.uri_cmd
, P_STRING
, NULL
, NULL
, NULL
},
655 {"print_command", "lpr %s",
656 &SPECIFIC_PREFS
.print_cmd
, P_STRING
, NULL
, NULL
, NULL
},
657 {"ext_editor_command", DEFAULT_EDITOR_CMD
,
658 &SPECIFIC_PREFS
.ext_editor_cmd
, P_STRING
, NULL
, NULL
, NULL
},
659 {"add_address_by_click", "FALSE", &prefs_common
.add_address_by_click
,
660 P_BOOL
, NULL
, NULL
, NULL
},
661 {"confirm_on_exit", "FALSE", &prefs_common
.confirm_on_exit
, P_BOOL
,
663 {"clean_trash_on_exit", "FALSE", &prefs_common
.clean_on_exit
, P_BOOL
,
665 {"ask_on_cleaning", "TRUE", &prefs_common
.ask_on_clean
, P_BOOL
,
667 {"warn_queued_on_exit", "TRUE", &prefs_common
.warn_queued_on_exit
,
668 P_BOOL
, NULL
, NULL
, NULL
},
669 {"work_offline", "FALSE", &prefs_common
.work_offline
, P_BOOL
,
671 {"summary_quicksearch_type", "0", &prefs_common
.summary_quicksearch_type
, P_INT
,
673 {"summary_quicksearch_recurse", "1", &prefs_common
.summary_quicksearch_recurse
, P_INT
,
676 {"io_timeout_secs", "60", &prefs_common
.io_timeout_secs
,
677 P_INT
, NULL
, NULL
, NULL
},
678 {"hide_score", "-9999", &prefs_common
.kill_score
, P_INT
,
680 {"important_score", "1", &prefs_common
.important_score
, P_INT
,
682 {"clip_log", "TRUE", &prefs_common
.cliplog
, P_BOOL
,
684 {"log_length", "500", &prefs_common
.loglength
, P_INT
,
686 {"log_msg_color", "#00af00", &prefs_common
.log_msg_color
, P_COLOR
,
688 {"log_warn_color", "#af0000", &prefs_common
.log_warn_color
, P_COLOR
,
690 {"log_error_color", "#af0000", &prefs_common
.log_error_color
, P_COLOR
,
692 {"log_in_color", "#000000", &prefs_common
.log_in_color
, P_COLOR
,
694 {"log_out_color", "#0000ef", &prefs_common
.log_out_color
, P_COLOR
,
697 {"color_new", "179", &prefs_common
.color_new
, P_COLOR
,
700 /* Some windows' sizes */
701 {"filteringwin_width", "500", &prefs_common
.filteringwin_width
, P_INT
,
703 {"filteringwin_height", "-1", &prefs_common
.filteringwin_height
, P_INT
,
706 {"filteringactionwin_width", "490", &prefs_common
.filteringactionwin_width
, P_INT
,
708 {"filteringactionwin_height", "-1", &prefs_common
.filteringactionwin_height
, P_INT
,
711 {"matcherwin_width", "520", &prefs_common
.matcherwin_width
, P_INT
,
713 {"matcherwin_height", "-1", &prefs_common
.matcherwin_height
, P_INT
,
716 {"templateswin_width", "440", &prefs_common
.templateswin_width
, P_INT
,
718 {"templateswin_height", "-1", &prefs_common
.templateswin_height
, P_INT
,
721 {"actionswin_width", "486", &prefs_common
.actionswin_width
, P_INT
,
723 {"actionswin_height", "-1", &prefs_common
.actionswin_height
, P_INT
,
726 {"addressbookwin_width", "520", &prefs_common
.addressbookwin_width
, P_INT
,
728 {"addressbookwin_height", "-1", &prefs_common
.addressbookwin_height
, P_INT
,
731 {"addressbookeditpersonwin_width", "640", &prefs_common
.addressbookeditpersonwin_width
, P_INT
,
733 {"addressbookeditpersonwin_height", "320", &prefs_common
.addressbookeditpersonwin_height
, P_INT
,
736 {"addressbookeditgroupwin_width", "580", &prefs_common
.addressbookeditgroupwin_width
, P_INT
,
738 {"addressbookeditgroupwin_height", "340", &prefs_common
.addressbookeditgroupwin_height
, P_INT
,
741 {"pluginswin_width", "-1", &prefs_common
.pluginswin_width
, P_INT
,
743 {"pluginswin_height", "-1", &prefs_common
.pluginswin_height
, P_INT
,
746 {"prefswin_width", "600", &prefs_common
.prefswin_width
, P_INT
,
748 {"prefswin_height", "-1", &prefs_common
.prefswin_height
, P_INT
,
751 {"folderitemwin_width", "500", &prefs_common
.folderitemwin_width
, P_INT
,
753 {"folderitemwin_height", "-1", &prefs_common
.folderitemwin_height
, P_INT
,
756 {"editaccountwin_width", "500", &prefs_common
.editaccountwin_width
, P_INT
,
758 {"editaccountwin_height", "-1", &prefs_common
.editaccountwin_height
, P_INT
,
761 {"accountswin_width", "500", &prefs_common
.accountswin_width
, P_INT
,
763 {"accountswin_height", "-1", &prefs_common
.accountswin_height
, P_INT
,
766 {"logwin_width", "520", &prefs_common
.logwin_width
, P_INT
,
768 {"logwin_height", "-1", &prefs_common
.logwin_height
, P_INT
,
771 {"folderselwin_width", "300", &prefs_common
.folderselwin_width
, P_INT
,
773 {"folderselwin_height", "-1", &prefs_common
.folderselwin_height
, P_INT
,
776 {"addressaddwin_width", "300", &prefs_common
.addressaddwin_width
, P_INT
,
778 {"addressaddwin_height", "-1", &prefs_common
.addressaddwin_height
, P_INT
,
781 {"addressbook_folderselwin_width", "300", &prefs_common
.addressbook_folderselwin_width
, P_INT
,
783 {"addressbook_folderselwin_height", "-1", &prefs_common
.addressbook_folderselwin_height
, P_INT
,
787 {"warn_dnd", "1", &prefs_common
.warn_dnd
, P_INT
,
789 {"utf8_instead_of_locale_for_broken_mail", "0",
790 &prefs_common
.broken_are_utf8
, P_INT
,
792 {"enable_swap_from", "FALSE", &prefs_common
.swap_from
, P_BOOL
,
794 {"use_stripes_everywhere", "TRUE", &prefs_common
.use_stripes_everywhere
, P_BOOL
,
796 {"use_stripes_in_summaries", "TRUE", &prefs_common
.use_stripes_in_summaries
, P_BOOL
,
798 {"stripes_color_offset", "4000", &prefs_common
.stripes_color_offset
, P_INT
,
800 {"enable_dotted_lines", "FALSE", &prefs_common
.enable_dotted_lines
, P_BOOL
,
802 {"enable_hscrollbar", "TRUE", &prefs_common
.enable_hscrollbar
, P_BOOL
,
804 {"folderview_vscrollbar_policy", "0",
805 &prefs_common
.folderview_vscrollbar_policy
, P_ENUM
,
807 {"textview_cursor_visible", "FALSE",
808 &prefs_common
.textview_cursor_visible
, P_BOOL
,
810 {"hover_timeout", "500", &prefs_common
.hover_timeout
, P_INT
,
812 {"cache_max_mem_usage", "4096", &prefs_common
.cache_max_mem_usage
, P_INT
,
814 {"cache_min_keep_time", "15", &prefs_common
.cache_min_keep_time
, P_INT
,
816 {"thread_by_subject_max_age", "10", &prefs_common
.thread_by_subject_max_age
,
817 P_INT
, NULL
, NULL
, NULL
},
818 {"summary_quicksearch_sticky", "1", &prefs_common
.summary_quicksearch_sticky
, P_INT
,
820 {"summary_quicksearch_dynamic", "0", &prefs_common
.summary_quicksearch_dynamic
, P_INT
,
822 {"statusbar_update_step", "10", &prefs_common
.statusbar_update_step
, P_INT
,
824 {"compose_no_markup", "FALSE", &prefs_common
.compose_no_markup
, P_BOOL
,
826 {"skip_ssl_cert_check", "FALSE", &prefs_common
.skip_ssl_cert_check
, P_BOOL
,
828 {"live_dangerously", "FALSE", &prefs_common
.live_dangerously
, P_BOOL
,
830 {"hide_quotes", "0", &prefs_common
.hide_quotes
, P_INT
,
832 {"unsafe_ssl_certs", "FALSE", &prefs_common
.unsafe_ssl_certs
, P_BOOL
,
835 {NULL
, NULL
, NULL
, P_OTHER
, NULL
, NULL
, NULL
}
838 PrefsCommon
*prefs_common_get(void)
840 return &prefs_common
;
844 * Read history list from the specified history file
846 GList
*prefs_common_read_history(const gchar
*history
)
850 gchar buf
[PREFSBUFSIZE
];
853 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, history
,
855 if ((fp
= g_fopen(path
, "rb")) == NULL
) {
856 if (ENOENT
!= errno
) FILE_OP_ERROR(path
, "fopen");
861 while (fgets(buf
, sizeof(buf
), fp
) != NULL
) {
863 if (buf
[0] == '\0') continue;
864 tmp
= add_history(tmp
, buf
);
868 tmp
= g_list_reverse(tmp
);
873 void prefs_common_read_config(void)
878 rcpath
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, COMMON_RC
, NULL
);
879 prefs_read_config(param
, "Common", rcpath
, NULL
);
881 prefs_read_config(param_os_specific
, "CommonWin32", rcpath
, NULL
);
886 tmp
= g_strdup(gettext(prefs_common
.quotefmt
));
887 g_free(prefs_common
.quotefmt
);
888 prefs_common
.quotefmt
= tmp
;
890 tmp
= g_strdup(gettext(prefs_common
.fw_quotefmt
));
891 g_free(prefs_common
.fw_quotefmt
);
892 prefs_common
.fw_quotefmt
= tmp
;
894 tmp
= g_strdup(gettext(prefs_common
.date_format
));
895 g_free(prefs_common
.date_format
);
896 prefs_common
.date_format
= tmp
;
898 tmp
= g_strdup(gettext(prefs_common
.compose_body_format
));
899 g_free(prefs_common
.compose_body_format
);
900 prefs_common
.compose_body_format
= tmp
;
902 prefs_common
.mime_open_cmd_history
=
903 prefs_common_read_history(COMMAND_HISTORY
);
904 prefs_common
.summary_quicksearch_history
=
905 prefs_common_read_history(QUICKSEARCH_HISTORY
);
906 prefs_common
.summary_search_from_history
=
907 prefs_common_read_history(SUMMARY_SEARCH_FROM_HISTORY
);
908 prefs_common
.summary_search_to_history
=
909 prefs_common_read_history(SUMMARY_SEARCH_TO_HISTORY
);
910 prefs_common
.summary_search_subject_history
=
911 prefs_common_read_history(SUMMARY_SEARCH_SUBJECT_HISTORY
);
912 prefs_common
.summary_search_body_history
=
913 prefs_common_read_history(SUMMARY_SEARCH_BODY_HISTORY
);
914 prefs_common
.summary_search_adv_condition_history
=
915 prefs_common_read_history(SUMMARY_SEARCH_ADV_CONDITION_HISTORY
);
916 prefs_common
.message_search_history
=
917 prefs_common_read_history(MESSAGE_SEARCH_HISTORY
);
919 colorlabel_update_colortable_from_prefs();
923 * Save history list to the specified history file
925 void prefs_common_save_history(const gchar
*history
, GList
*list
)
931 path
= g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S
, history
,
933 if ((fp
= g_fopen(path
, "wb")) == NULL
) {
934 FILE_OP_ERROR(path
, "fopen");
939 for (cur
= list
; cur
!= NULL
; cur
= cur
->next
) {
940 fputs((gchar
*)cur
->data
, fp
);
948 void prefs_common_write_config(void)
950 prefs_write_config(param
, "Common", COMMON_RC
);
952 prefs_write_config(param_os_specific
, "CommonWin32", COMMON_RC
);
955 prefs_common_save_history(COMMAND_HISTORY
,
956 prefs_common
.mime_open_cmd_history
);
957 prefs_common_save_history(QUICKSEARCH_HISTORY
,
958 prefs_common
.summary_quicksearch_history
);
959 prefs_common_save_history(SUMMARY_SEARCH_FROM_HISTORY
,
960 prefs_common
.summary_search_from_history
);
961 prefs_common_save_history(SUMMARY_SEARCH_TO_HISTORY
,
962 prefs_common
.summary_search_to_history
);
963 prefs_common_save_history(SUMMARY_SEARCH_SUBJECT_HISTORY
,
964 prefs_common
.summary_search_subject_history
);
965 prefs_common_save_history(SUMMARY_SEARCH_BODY_HISTORY
,
966 prefs_common
.summary_search_body_history
);
967 prefs_common_save_history(SUMMARY_SEARCH_ADV_CONDITION_HISTORY
,
968 prefs_common
.summary_search_adv_condition_history
);
969 prefs_common_save_history(MESSAGE_SEARCH_HISTORY
,
970 prefs_common
.message_search_history
);
973 /* make a copy of string 'in' into buffer 'out'. un-escape \ sequences.
974 both 'in' and 'out' must be non-NULL.
975 'out' must be a pointer to a buffer whose size is at least equal
976 to strlen(txt)+1, this buffer will get cleared. out's contents
977 will always get set to a valid string, even if it's "".*/
978 void pref_get_unescaped_pref(gchar
*out
, const gchar
*in
)
985 g_return_if_fail( in
!= NULL
);
986 g_return_if_fail( out
!= NULL
);
990 memset(out
, 0, strlen(in
)+1);
992 if (*i
== '\\' && *(i
+1) == 'n') {
995 } else if (*i
== '\\' && *(i
+1) == 't') {
998 } else if (*i
== '\\' && *(i
+1) == '\\') {
1009 /* make a copy of string 'in' into buffer 'out'. escape \ sequences.
1010 both 'in' and 'out' must be non-NULL.
1011 'out' must be a pointer to a buffer whose size is at least equal
1012 to 2*strlen(txt)+1. out's contents will always get set to a valid
1013 string, even if it's "". */
1014 void pref_get_escaped_pref(gchar
*out
, const gchar
*in
)
1021 g_return_if_fail( in
!= NULL
);
1022 g_return_if_fail( out
!= NULL
);
1026 while (*i
!= '\0') {
1030 } else if (*i
== '\t') {
1033 } else if (*i
== '\\') {
1044 /* set the contents of a textview widget from the internal \-escaped
1045 representation of a pref string. both txt and textview must be non-NULL. */
1046 void pref_set_textview_from_pref(GtkTextView
*textview
, const gchar
*txt
)
1048 GtkTextBuffer
*buffer
;
1051 g_return_if_fail( txt
!= NULL
);
1052 g_return_if_fail( textview
!= NULL
);
1054 buffer
= gtk_text_view_get_buffer(textview
);
1055 out
= malloc(strlen(txt
)+1);
1057 pref_get_unescaped_pref(out
, txt
);
1059 gtk_text_buffer_set_text(buffer
, out
?out
:"", -1);
1063 /* set the contents of a gtkentry widget from the internal \-escaped
1064 representation of a pref string. both txt and entry must be non-NULL. */
1065 void pref_set_entry_from_pref(GtkEntry
*entry
, const gchar
*txt
)
1069 g_return_if_fail( txt
!= NULL
);
1070 g_return_if_fail( entry
!= NULL
);
1072 out
= malloc(strlen(txt
)+1);
1074 pref_get_unescaped_pref(out
, txt
);
1076 gtk_entry_set_text(entry
, out
?out
:"");
1080 /* get the \-escaped internal representation of a pref from the contents of
1081 a textview widget. textview must be non-NULL. */
1082 gchar
*pref_get_pref_from_textview(GtkTextView
*textview
)
1084 GtkTextBuffer
*buffer
;
1085 GtkTextIter start
, end
;
1088 g_return_val_if_fail( textview
!= NULL
, "" );
1090 buffer
= gtk_text_view_get_buffer(textview
);
1091 gtk_text_buffer_get_start_iter(buffer
, &start
);
1092 gtk_text_buffer_get_iter_at_offset(buffer
, &end
, -1);
1093 tmp
= gtk_text_buffer_get_text(buffer
, &start
, &end
, FALSE
);
1094 out
= malloc(2*strlen(tmp
)+1);
1096 pref_get_escaped_pref(out
, tmp
);
1102 /* get the \-escaped internal representation of a pref from the contents of
1103 a gtkentry widget. entry must be non-NULL. */
1104 gchar
*pref_get_pref_from_entry(GtkEntry
*entry
)
1108 g_return_val_if_fail( entry
!= NULL
, "" );
1110 tmp
= gtk_editable_get_chars(GTK_EDITABLE(entry
), 0, -1);
1111 out
= malloc(2*strlen(tmp
)+1);
1113 pref_get_escaped_pref(out
, tmp
);
1119 /* ugly hack to be able to get this pref from ssl_certificate.c */
1120 gboolean
prefs_common_unsafe_ssl_certs(void)
1122 return prefs_common
.unsafe_ssl_certs
;