+2012-11-23 [colin] 3.9.0cvs20
+
+ * src/jpilot.c
+ * src/main.c
+ * src/mainwindow.c
+ * src/matcher.c
+ * src/prefs_common.c
+ * src/prefs_common.h
+ * src/procmsg.c
+ * src/common/socket.c
+ * src/common/socket.h
+ * src/common/ssl.c
+ * src/common/ssl_certificate.c
+ * src/common/ssl_certificate.h
+ * src/etpan/imap-thread.c
+ * src/etpan/nntp-thread.c
+ Cleanup some warnings and deprecated types. Patch by
+ Christian Hesse, fixing bug #2617. Thanks!
+
2012-11-23 [colin] 3.9.0cvs19
* AUTHORS
( cvs diff -u -r 1.43.2.100 -r 1.43.2.101 src/prefs_matcher.c; ) > 3.9.0cvs17.patchset
( cvs diff -u -r 1.1.4.124 -r 1.1.4.125 src/etpan/imap-thread.c; ) > 3.9.0cvs18.patchset
( cvs diff -u -r 1.100.2.87 -r 1.100.2.88 AUTHORS; cvs diff -u -r 1.1.2.83 -r 1.1.2.84 src/gtk/authors.h; ) > 3.9.0cvs19.patchset
+( cvs diff -u -r 1.18.2.37 -r 1.18.2.38 src/jpilot.c; cvs diff -u -r 1.115.2.262 -r 1.115.2.263 src/main.c; cvs diff -u -r 1.274.2.355 -r 1.274.2.356 src/mainwindow.c; cvs diff -u -r 1.75.2.79 -r 1.75.2.80 src/matcher.c; cvs diff -u -r 1.204.2.212 -r 1.204.2.213 src/prefs_common.c; cvs diff -u -r 1.103.2.141 -r 1.103.2.142 src/prefs_common.h; cvs diff -u -r 1.150.2.131 -r 1.150.2.132 src/procmsg.c; cvs diff -u -r 1.13.2.51 -r 1.13.2.52 src/common/socket.c; cvs diff -u -r 1.13.2.27 -r 1.13.2.28 src/common/socket.h; cvs diff -u -r 1.9.2.57 -r 1.9.2.58 src/common/ssl.c; cvs diff -u -r 1.4.2.46 -r 1.4.2.47 src/common/ssl_certificate.c; cvs diff -u -r 1.1.4.20 -r 1.1.4.21 src/common/ssl_certificate.h; cvs diff -u -r 1.1.4.125 -r 1.1.4.126 src/etpan/imap-thread.c; cvs diff -u -r 1.1.2.22 -r 1.1.2.23 src/etpan/nntp-thread.c; ) > 3.9.0cvs20.patchset
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=19
+EXTRA_VERSION=20
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
}
#if USE_GNUTLS
-static gint ssl_read(gnutls_session ssl, gchar *buf, gint len)
+static gint ssl_read(gnutls_session_t ssl, gchar *buf, gint len)
{
gint r;
}
#if USE_GNUTLS
-static gint ssl_write(gnutls_session ssl, const gchar *buf, gint len)
+static gint ssl_write(gnutls_session_t ssl, const gchar *buf, gint len)
{
gint ret;
}
#ifdef USE_GNUTLS
-static gint ssl_write_all(gnutls_session ssl, const gchar *buf, gint len)
+static gint ssl_write_all(gnutls_session_t ssl, const gchar *buf, gint len)
{
gint n, wrlen = 0;
{
gint sock;
#if USE_GNUTLS
- gnutls_session ssl;
+ gnutls_session_t ssl;
gnutls_certificate_credentials_t xcred;
- gnutls_x509_crt client_crt;
- gnutls_x509_privkey client_key;
+ gnutls_x509_crt_t client_crt;
+ gnutls_x509_privkey_t client_key;
#endif
guint g_source;
GIOChannel *sock_ch;
#ifdef USE_PTHREAD
typedef struct _thread_data {
- gnutls_session ssl;
+ gnutls_session_t ssl;
gboolean done;
} thread_data;
#endif
-static int gnutls_client_cert_cb(gnutls_session session,
- const gnutls_datum *req_ca_rdn, int nreqs,
- const gnutls_pk_algorithm *sign_algos,
+static int gnutls_client_cert_cb(gnutls_session_t session,
+ const gnutls_datum_t *req_ca_rdn, int nreqs,
+ const gnutls_pk_algorithm_t *sign_algos,
int sign_algos_length, gnutls_retr_st *st)
{
SSLClientCertHookData hookdata;
SockInfo *sockinfo = (SockInfo *)gnutls_session_get_ptr(session);
- gnutls_certificate_type type = gnutls_certificate_type_get(session);
- gnutls_x509_crt crt;
- gnutls_x509_privkey key;
+ gnutls_certificate_type_t type = gnutls_certificate_type_get(session);
+ gnutls_x509_crt_t crt;
+ gnutls_x509_privkey_t key;
st->ncerts = 0;
}
#endif
-static gint SSL_connect_nb(gnutls_session ssl)
+static gint SSL_connect_nb(gnutls_session_t ssl)
{
int result;
#ifdef USE_PTHREAD
gboolean ssl_init_socket_with_method(SockInfo *sockinfo, SSLMethod method)
{
- gnutls_session session;
+ gnutls_session_t session;
int r;
- const gnutls_datum *raw_cert_list;
+ const gnutls_datum_t *raw_cert_list;
unsigned int raw_cert_list_length;
- gnutls_x509_crt cert = NULL;
+ gnutls_x509_crt_t cert = NULL;
guint status;
gnutls_certificate_credentials_t xcred;
}
gnutls_certificate_set_verify_flags (xcred, GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT);
- gnutls_transport_set_ptr(session, (gnutls_transport_ptr) GINT_TO_POINTER(sockinfo->sock));
+ gnutls_transport_set_ptr(session, (gnutls_transport_ptr_t) GINT_TO_POINTER(sockinfo->sock));
gnutls_session_set_ptr(session, sockinfo);
+ /* TODO: gnutls_certificate_client_set_retrieve_function() is deprecated and should be replaced with
+ * gnutls_certificate_set_retrieve_function() which was introduced in gnutls 2.12 in March 2011
+ * getting this right with defines is not easy, so how long do we need compatibility to gntls <= 2.10? */
gnutls_certificate_client_set_retrieve_function(xcred, gnutls_client_cert_cb);
gnutls_dh_set_prime_bits(session, 512);
}
#if USE_GNUTLS
-static gnutls_x509_crt x509_crt_copy(gnutls_x509_crt src)
+static gnutls_x509_crt_t x509_crt_copy(gnutls_x509_crt_t src)
{
int ret;
size_t size;
- gnutls_datum tmp;
- gnutls_x509_crt dest;
+ gnutls_datum_t tmp;
+ gnutls_x509_crt_t dest;
size = 0;
if (gnutls_x509_crt_init(&dest) != 0) {
}
#endif
-static SSLCertificate *ssl_certificate_new(gnutls_x509_crt x509_cert, const gchar *host, gushort port)
+static SSLCertificate *ssl_certificate_new(gnutls_x509_crt_t x509_cert, const gchar *host, gushort port)
{
SSLCertificate *cert = g_new0(SSLCertificate, 1);
size_t n;
}
#ifdef USE_GNUTLS
-static void gnutls_i2d_X509_fp(FILE *fp, gnutls_x509_crt x509_cert)
+static void gnutls_i2d_X509_fp(FILE *fp, gnutls_x509_crt_t x509_cert)
{
char output[10*1024];
size_t cert_size = 10*1024;
}
}
-size_t gnutls_i2d_X509(gnutls_x509_crt x509_cert, unsigned char **output)
+size_t gnutls_i2d_X509(gnutls_x509_crt_t x509_cert, unsigned char **output)
{
size_t cert_size = 10*1024;
int r;
return cert_size;
}
-size_t gnutls_i2d_PrivateKey(gnutls_x509_privkey pkey, unsigned char **output)
+size_t gnutls_i2d_PrivateKey(gnutls_x509_privkey_t pkey, unsigned char **output)
{
size_t key_size = 10*1024;
int r;
return key_size;
}
-static gnutls_x509_crt gnutls_d2i_X509_fp(FILE *fp, int format)
+static gnutls_x509_crt_t gnutls_d2i_X509_fp(FILE *fp, int format)
{
- gnutls_x509_crt cert = NULL;
- gnutls_datum tmp;
+ gnutls_x509_crt_t cert = NULL;
+ gnutls_datum_t tmp;
struct stat s;
int r;
if (fstat(fileno(fp), &s) < 0) {
return cert;
}
-static gnutls_x509_privkey gnutls_d2i_key_fp(FILE *fp, int format)
+static gnutls_x509_privkey_t gnutls_d2i_key_fp(FILE *fp, int format)
{
- gnutls_x509_privkey key = NULL;
- gnutls_datum tmp;
+ gnutls_x509_privkey_t key = NULL;
+ gnutls_datum_t tmp;
struct stat s;
int r;
if (fstat(fileno(fp), &s) < 0) {
static gnutls_pkcs12_t gnutls_d2i_PKCS12_fp(FILE *fp, int format)
{
gnutls_pkcs12_t p12 = NULL;
- gnutls_datum tmp;
+ gnutls_datum_t tmp;
struct stat s;
int r;
if (fstat(fileno(fp), &s) < 0) {
gchar *file = NULL;
gchar *buf;
SSLCertificate *cert = NULL;
- gnutls_x509_crt tmp_x509;
+ gnutls_x509_crt_t tmp_x509;
FILE *fp = NULL;
gboolean must_rename = FALSE;
return TRUE;
}
-static guint check_cert(gnutls_x509_crt cert)
+static guint check_cert(gnutls_x509_crt_t cert)
{
- gnutls_x509_crt *ca_list;
+ gnutls_x509_crt_t *ca_list;
unsigned int max = 512;
unsigned int flags = 0;
- gnutls_datum tmp;
+ gnutls_datum_t tmp;
struct stat s;
int r, i;
unsigned int status;
}
-char *ssl_certificate_check_signer (gnutls_x509_crt cert, guint status)
+char *ssl_certificate_check_signer (gnutls_x509_crt_t cert, guint status)
{
if (status == (guint)-1) {
status = check_cert(cert);
return NULL;
}
-gboolean ssl_certificate_check (gnutls_x509_crt x509_cert, guint status, const gchar *host, gushort port)
+gboolean ssl_certificate_check (gnutls_x509_crt_t x509_cert, guint status, const gchar *host, gushort port)
{
SSLCertificate *current_cert = NULL;
SSLCertificate *known_cert;
return TRUE;
}
-gnutls_x509_crt ssl_certificate_get_x509_from_pem_file(const gchar *file)
+gnutls_x509_crt_t ssl_certificate_get_x509_from_pem_file(const gchar *file)
{
- gnutls_x509_crt x509 = NULL;
+ gnutls_x509_crt_t x509 = NULL;
if (!file)
return NULL;
return NULL;
}
-gnutls_x509_privkey ssl_certificate_get_pkey_from_pem_file(const gchar *file)
+gnutls_x509_privkey_t ssl_certificate_get_pkey_from_pem_file(const gchar *file)
{
- gnutls_x509_privkey key = NULL;
+ gnutls_x509_privkey_t key = NULL;
if (!file)
return NULL;
static int
parse_pkcs12 (gnutls_pkcs12_t p12,
const char *password,
- gnutls_x509_privkey * key,
+ gnutls_x509_privkey_t * key,
gnutls_x509_crt_t * cert)
{
gnutls_pkcs12_bag_t bag = NULL;
for (i = 0; i < elements_in_bag; i++)
{
int type;
- gnutls_datum data;
+ gnutls_datum_t data;
type = gnutls_pkcs12_bag_get_type (bag, i);
if (type < 0)
return ret;
}
void ssl_certificate_get_x509_and_pkey_from_p12_file(const gchar *file, const gchar *password,
- gnutls_x509_crt *x509, gnutls_x509_privkey *pkey)
+ gnutls_x509_crt_t *x509, gnutls_x509_privkey_t *pkey)
{
gnutls_pkcs12_t p12 = NULL;
struct _SSLCertificate
{
- gnutls_x509_crt x509_cert;
+ gnutls_x509_crt_t x509_cert;
gchar *host;
gushort port;
gchar *fingerprint;
};
SSLCertificate *ssl_certificate_find (const gchar *host, gushort port, const gchar *fingerprint);
-gboolean ssl_certificate_check (gnutls_x509_crt x509_cert, guint status, const gchar *host, gushort port);
+gboolean ssl_certificate_check (gnutls_x509_crt_t x509_cert, guint status, const gchar *host, gushort port);
void ssl_certificate_destroy(SSLCertificate *cert);
void ssl_certificate_delete_from_disk(SSLCertificate *cert);
char * readable_fingerprint(unsigned char *src, int len);
-char *ssl_certificate_check_signer (gnutls_x509_crt cert, guint status);
+char *ssl_certificate_check_signer (gnutls_x509_crt_t cert, guint status);
-gnutls_x509_crt ssl_certificate_get_x509_from_pem_file(const gchar *file);
-gnutls_x509_privkey ssl_certificate_get_pkey_from_pem_file(const gchar *file);
+gnutls_x509_crt_t ssl_certificate_get_x509_from_pem_file(const gchar *file);
+gnutls_x509_privkey_t ssl_certificate_get_pkey_from_pem_file(const gchar *file);
void ssl_certificate_get_x509_and_pkey_from_p12_file(const gchar *file,
- const gchar *password, gnutls_x509_crt *crt, gnutls_x509_privkey *key);
-size_t gnutls_i2d_X509(gnutls_x509_crt x509_cert, unsigned char **output);
-size_t gnutls_i2d_PrivateKey(gnutls_x509_privkey pkey, unsigned char **output);
+ const gchar *password, gnutls_x509_crt_t *crt, gnutls_x509_privkey_t *key);
+size_t gnutls_i2d_X509(gnutls_x509_crt_t x509_cert, unsigned char **output);
+size_t gnutls_i2d_PrivateKey(gnutls_x509_privkey_t pkey, unsigned char **output);
gboolean ssl_certificate_check_subject_cn(SSLCertificate *cert);
gchar *ssl_certificate_get_subject_cn(SSLCertificate *cert);
#endif /* USE_GNUTLS */
{
#ifdef USE_GNUTLS
struct connect_param *param = (struct connect_param *)data;
- gnutls_x509_crt cert = NULL;
- gnutls_datum tmp;
+ gnutls_x509_crt_t cert = NULL;
+ gnutls_datum_t tmp;
if (certificate == NULL || len < 0) {
g_warning("no cert presented.\n");
PrefsAccount *account = (PrefsAccount *)data;
const gchar *cert_path = NULL;
const gchar *password = NULL;
- gnutls_x509_crt x509 = NULL;
- gnutls_x509_privkey pkey = NULL;
+ gnutls_x509_crt_t x509 = NULL;
+ gnutls_x509_privkey_t pkey = NULL;
if (account->in_ssl_client_cert_file && *account->in_ssl_client_cert_file)
cert_path = account->in_ssl_client_cert_file;
{
#ifdef USE_GNUTLS
struct connect_param *param = (struct connect_param *)data;
- gnutls_x509_crt cert = NULL;
- gnutls_datum tmp;
+ gnutls_x509_crt_t cert = NULL;
+ gnutls_datum_t tmp;
if (certificate == NULL || len < 0) {
g_warning("no cert presented.\n");
PrefsAccount *account = (PrefsAccount *)data;
const gchar *cert_path = NULL;
const gchar *password = NULL;
- gnutls_x509_crt x509 = NULL;
- gnutls_x509_privkey pkey = NULL;
+ gnutls_x509_crt_t x509 = NULL;
+ gnutls_x509_privkey_t pkey = NULL;
if (account->in_ssl_client_cert_file && *account->in_ssl_client_cert_file)
cert_path = account->in_ssl_client_cert_file;
fseek(in, 0, SEEK_SET);
r = fread(&rdbh, sizeof(RawDBHeader), 1, in);
+ if (r < 1)
+ return MGU_ERROR_READ;
if (feof(in)) {
return MGU_EOF;
}
#include "account.h"
#include "procmsg.h"
#include "inc.h"
+#include "imap.h"
#include "import.h"
#include "manage_window.h"
#include "alertpanel.h"
static void attract_by_subject_cb(GtkAction *action,
gpointer data);
+static void zoom_in_cb (GtkAction *action,
+ gpointer data);
+static void zoom_out_cb (GtkAction *action,
+ gpointer data);
static void delete_duplicated_cb (GtkAction *action,
gpointer data);
static void delete_duplicated_all_cb (GtkAction *action,
{"View/SetColumns/Folderlist", NULL, N_("In _folder list..."), NULL, NULL, G_CALLBACK(set_folder_display_item_cb) },
{"View/SetColumns/Messagelist", NULL, N_("In _message list..."), NULL, NULL, G_CALLBACK(set_summary_display_item_cb) },
{"View/---", NULL, "---" },
+ {"View/Zoom", NULL, N_("_Zoom") },
+ {"View/Zoom/In", NULL, N_("_In"), "<control>plus", NULL, G_CALLBACK(zoom_in_cb) },
+ {"View/Zoom/Out", NULL, N_("_Out"), "<control>minus", NULL, G_CALLBACK(zoom_out_cb) },
#ifndef GENERIC_UMPC
gtk_widget_show(mainwin->warning_btn);
}
+static void main_window_zoom(ZoomType type)
+{
+ static gboolean zooming = FALSE;
+
+ if (zooming)
+ return;
+ zooming = TRUE;
+
+ prefs_common_zoom_font(&prefs_common.textfont, type);
+ prefs_common_zoom_font(&prefs_common.printfont, type);
+ prefs_common_zoom_font(&prefs_common.boldfont, type);
+ prefs_common_zoom_font(&prefs_common.normalfont, type);
+ prefs_common_zoom_font(&prefs_common.smallfont, type);
+
+ main_window_reflect_prefs_all();
+
+ zooming = FALSE;
+}
+
void mainwindow_clear_error(MainWindow *mainwin)
{
gtk_widget_hide(mainwin->warning_btn);
break;
case GDK_KEY_F7:
{
- PangoFontDescription *font_desc;
- int size;
- font_desc = pango_font_description_from_string(prefs_common.normalfont);
- size = pango_font_description_get_size(font_desc)/PANGO_SCALE;
- if (size < 30) {
- size++; pango_font_description_set_size(font_desc, size*PANGO_SCALE);
- g_free(prefs_common.normalfont);
- prefs_common.normalfont = pango_font_description_to_string(font_desc);
- main_window_reflect_prefs_all();
- }
- pango_font_description_free(font_desc);
- font_desc = pango_font_description_from_string(prefs_common.textfont);
- size = pango_font_description_get_size(font_desc)/PANGO_SCALE;
- if (size < 30) {
- size++; pango_font_description_set_size(font_desc, size*PANGO_SCALE);
- g_free(prefs_common.textfont);
- prefs_common.textfont = pango_font_description_to_string(font_desc);
- main_window_reflect_prefs_all();
- }
- pango_font_description_free(font_desc);
+ main_window_zoom(ZOOM_IN);
}
break;
case GDK_KEY_F8:
{
- PangoFontDescription *font_desc;
- int size;
- font_desc = pango_font_description_from_string(prefs_common.normalfont);
- size = pango_font_description_get_size(font_desc)/PANGO_SCALE;
- if (size > 5) {
- size--; pango_font_description_set_size(font_desc, size*PANGO_SCALE);
- g_free(prefs_common.normalfont);
- prefs_common.normalfont = pango_font_description_to_string(font_desc);
- main_window_reflect_prefs_all();
- }
- pango_font_description_free(font_desc);
- font_desc = pango_font_description_from_string(prefs_common.textfont);
- size = pango_font_description_get_size(font_desc)/PANGO_SCALE;
- if (size > 5) {
- size--; pango_font_description_set_size(font_desc, size*PANGO_SCALE);
- g_free(prefs_common.textfont);
- prefs_common.textfont = pango_font_description_to_string(font_desc);
- main_window_reflect_prefs_all();
- }
- pango_font_description_free(font_desc);
+ main_window_zoom(ZOOM_OUT);
}
break;
case GDK_KEY_Escape:
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "SetColumns", "View/SetColumns", GTK_UI_MANAGER_MENU)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/SetColumns", "Folderlist", "View/SetColumns/Folderlist", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/SetColumns", "Messagelist", "View/SetColumns/Messagelist", GTK_UI_MANAGER_MENUITEM)
+ MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "Separator0", "View/---", GTK_UI_MANAGER_SEPARATOR)
+
+ MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "Zoom", "View/Zoom", GTK_UI_MANAGER_MENU)
+ MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Zoom", "In", "View/Zoom/In", GTK_UI_MANAGER_MENUITEM)
+ MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Zoom", "Out", "View/Zoom/Out", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "Separator1", "View/---", GTK_UI_MANAGER_SEPARATOR)
#ifndef MAEMO
summary_collapse_threads(mainwin->summaryview);
}
+static void zoom_in_cb(GtkAction *action, gpointer data)
+{
+ main_window_zoom(ZOOM_IN);
+}
+
+static void zoom_out_cb(GtkAction *action, gpointer data)
+{
+ main_window_zoom(ZOOM_OUT);
+}
+
static void set_summary_display_item_cb(GtkAction *action, gpointer data)
{
prefs_summary_column_open();
FILE *dst = g_fopen(newpath, "wb");
gchar buf[BUFFSIZE];
int r;
+
if (src == NULL) {
perror("fopen");
if (dst)
&prefs_common.newmail_notify_cmd, P_STRING, NULL, NULL, NULL},
/* new fonts */
- {"widget_font_gtk2", NULL,
- &prefs_common.widgetfont, P_STRING, NULL, NULL, NULL},
{"message_font_gtk2", "Monospace 9",
&prefs_common.textfont, P_STRING, NULL, NULL, NULL},
{"print_font_gtk2", "Monospace 9",
/* Display */
/* Obsolete fonts. For coexisting with Gtk+-1.2 version */
- {"widget_font", NULL,
- &prefs_common.widgetfont_gtk1, P_STRING, NULL, NULL, NULL},
{"message_font", "-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*",
&prefs_common.textfont_gtk1, P_STRING, NULL, NULL, NULL},
{"small_font", "-*-helvetica-medium-r-normal--10-*-*-*-*-*-*-*",
/* new fonts */
#ifndef GENERIC_UMPC
- {"widget_font_gtk2", NULL,
- &SPECIFIC_PREFS.widgetfont, P_STRING, NULL, NULL, NULL},
{"message_font_gtk2", "Monospace 9",
&SPECIFIC_PREFS.textfont, P_STRING, NULL, NULL, NULL},
{"print_font_gtk2", "Monospace 9",
{"bold_font_gtk2", "Sans Bold 9",
&SPECIFIC_PREFS.boldfont, P_STRING, NULL, NULL, NULL},
#else
- {"widget_font_gtk2", NULL,
- &SPECIFIC_PREFS.widgetfont, P_STRING, NULL, NULL, NULL},
{"message_font_gtk2", "Monospace 8",
&SPECIFIC_PREFS.textfont, P_STRING, NULL, NULL, NULL},
{"print_font_gtk2", "Monospace 8",
{
return &prefs_common;
}
+
+void prefs_common_zoom_font(gchar **font, ZoomType type)
+{
+ PangoFontDescription *font_desc;
+ int size;
+
+ if (font == NULL || *font == '\0')
+ return;
+
+ font_desc = pango_font_description_from_string(*font);
+ size = pango_font_description_get_size(font_desc)/PANGO_SCALE;
+
+ if (type == ZOOM_IN && size < 30)
+ size++;
+ if (type == ZOOM_OUT && size > 5)
+ size--;
+
+ pango_font_description_set_size(font_desc, size*PANGO_SCALE);
+
+ g_free(*font);
+ *font = pango_font_description_to_string(font_desc);
+ pango_font_description_free(font_desc);
+}
CTE_8BIT
} TransferEncodingMethod;
+typedef enum {
+ ZOOM_IN,
+ ZOOM_OUT
+} ZoomType;
+
typedef enum
{
/* U = unread, N = new, M = marked */
gchar *smallfont_gtk1;
/* new fonts */
- gchar *widgetfont;
gchar *textfont;
gchar *printfont;
gchar *boldfont;
gchar *normalfont;
gchar *smallfont;
- gchar *titlefont;
gboolean use_different_print_font;
gboolean derive_from_normal_font;
const gchar *prefs_common_translated_header_name(const gchar *header_name);
const gchar *prefs_common_get_uri_cmd(void);
const gchar *prefs_common_get_ext_editor_cmd(void);
+void prefs_common_zoom_font(gchar **font, ZoomType type);
#endif /* __PREFS_COMMON_H__ */
gchar buf[1024];
gchar *p;
int r;
+
cm_return_if_fail(msginfo);
if (procmime_msginfo_is_encrypted(msginfo))