summaryrefslogtreecommitdiff
path: root/recipes/sylpheed
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/sylpheed
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/sylpheed')
-rw-r--r--recipes/sylpheed/claws-mail_3.6.1.bb55
-rw-r--r--recipes/sylpheed/claws-plugin-gtkhtml2-viewer_0.17.1.bb20
-rw-r--r--recipes/sylpheed/claws-plugin-mailmbox_1.14.bb15
-rw-r--r--recipes/sylpheed/claws-plugin-rssyl_0.18.bb14
-rw-r--r--recipes/sylpheed/files/Makefile-am.patch12
-rw-r--r--recipes/sylpheed/files/claws-mail-g_strcmp0.patch575
-rw-r--r--recipes/sylpheed/files/claws-plugin-mailmbox-fixup.patch218
-rw-r--r--recipes/sylpheed/files/desktop.patch19
-rw-r--r--recipes/sylpheed/files/streamline-ui.patch1008
-rw-r--r--recipes/sylpheed/files/sylpheed-2.2.2-libsylph-Makefile-am.patch11
-rw-r--r--recipes/sylpheed/files/sylpheed-2.2.2-src-Makefile-am.patch11
-rw-r--r--recipes/sylpheed/files/sylpheed-gnutls_2.2.4.patch140
-rw-r--r--recipes/sylpheed/sylpheed_2.2.9.bb32
-rw-r--r--recipes/sylpheed/sylpheed_2.5.0.bb32
14 files changed, 2162 insertions, 0 deletions
diff --git a/recipes/sylpheed/claws-mail_3.6.1.bb b/recipes/sylpheed/claws-mail_3.6.1.bb
new file mode 100644
index 0000000000..a2d7101ece
--- /dev/null
+++ b/recipes/sylpheed/claws-mail_3.6.1.bb
@@ -0,0 +1,55 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent"
+DEPENDS = "gtk+ libetpan openssl aspell"
+LICENSE = "GPL"
+PR = "r1"
+
+inherit autotools pkgconfig
+
+# translation patch: http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1774
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/sylpheed-claws/claws-mail-${PV}.tar.bz2 \
+ http://www.penguin.cz/~utx/ftp/claws-mail/claws-mail-${PV}-po-update.patch;patch=1 \
+ file://desktop.patch;patch=1 \
+ file://claws-mail-g_strcmp0.patch;patch=1 \
+ "
+
+do_configure_append() {
+ cd po ; for PO in *.po ; do MO=`echo $PO | sed s/\\.po//`.gmo ; if ! test -f $MO ; then msgfmt $PO -o $MO ; fi ; done
+}
+
+# FIXME: maemo builds may want --enable-maemo
+# FIXME: some platforms may want --enable-generic-umpc
+EXTRA_OECONF = "--disable-aspell-test \
+ --enable-aspell \
+ --disable-manual \
+ --disable-crash-dialog \
+ --disable-jpilot \
+ --disable-trayicon-plugin \
+ --disable-spamassassin-plugin \
+ --disable-bogofilter-plugin \
+ --disable-pgpcore-plugin \
+ --disable-pgpmime-plugin \
+ --disable-pgpinline-plugin \
+ --disable-dillo-viewer-plugin \
+ --disable-clamav-plugin \
+ --disable-gnomeprint \
+ --disable-valgrind \
+ "
+
+# Remove enchant references:
+do_install_prepend() {
+ sed -i -e 's:${STAGING_INCDIR}:${includedir}:g;s:${STAGING_LIBDIR}:${libdir}:g' claws-mail.pc
+}
+
+# Work-around broken GPE icon lookup:
+do_install_append() {
+ rm -r ${D}${datadir}/icons
+ install -d ${D}${datadir}/pixmaps
+ install -m 0644 claws-mail.png ${D}${datadir}/pixmaps/
+ sed -i 's/Icon=[^.]*$/&.png/' ${D}${datadir}/applications/claws-mail.desktop
+}
+
+do_stage() {
+ autotools_stage_includes
+}
diff --git a/recipes/sylpheed/claws-plugin-gtkhtml2-viewer_0.17.1.bb b/recipes/sylpheed/claws-plugin-gtkhtml2-viewer_0.17.1.bb
new file mode 100644
index 0000000000..5ca95d9dfb
--- /dev/null
+++ b/recipes/sylpheed/claws-plugin-gtkhtml2-viewer_0.17.1.bb
@@ -0,0 +1,20 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent plugins"
+DEPENDS = "claws-mail gtkhtml2 curl"
+LICENSE = "GPL"
+PR = "r0"
+
+SRC_URI = "http://www.claws-mail.org/downloads/plugins/gtkhtml2_viewer-${PV}.tar.gz"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/gtkhtml2_viewer-${PV}"
+
+do_configure() {
+ gnu-configize
+ libtoolize --force
+ oe_runconf
+}
+
+FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
+
diff --git a/recipes/sylpheed/claws-plugin-mailmbox_1.14.bb b/recipes/sylpheed/claws-plugin-mailmbox_1.14.bb
new file mode 100644
index 0000000000..621fbb4fdf
--- /dev/null
+++ b/recipes/sylpheed/claws-plugin-mailmbox_1.14.bb
@@ -0,0 +1,15 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent plugins"
+DEPENDS = "claws-mail"
+LICENSE = "GPL"
+PR = "r2"
+
+SRC_URI = "http://www.claws-mail.org/downloads/plugins/mailmbox-${PV}.tar.gz\
+ file://claws-plugin-mailmbox-fixup.patch;patch=1"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/mailmbox-${PV}"
+
+FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
+FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
diff --git a/recipes/sylpheed/claws-plugin-rssyl_0.18.bb b/recipes/sylpheed/claws-plugin-rssyl_0.18.bb
new file mode 100644
index 0000000000..fd30e81ef6
--- /dev/null
+++ b/recipes/sylpheed/claws-plugin-rssyl_0.18.bb
@@ -0,0 +1,14 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent plugins"
+DEPENDS = "claws-mail libxml2 curl glib-2.0 gtk+"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "http://www.claws-mail.org/downloads/plugins/rssyl-${PV}.tar.gz"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/rssyl-${PV}"
+
+FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
+FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
diff --git a/recipes/sylpheed/files/Makefile-am.patch b/recipes/sylpheed/files/Makefile-am.patch
new file mode 100644
index 0000000000..d1fb09ffcf
--- /dev/null
+++ b/recipes/sylpheed/files/Makefile-am.patch
@@ -0,0 +1,12 @@
+--- sylpheed-1.9.12/src/Makefile.am.orig 2006-01-16 13:14:05.000000000 +0000
++++ sylpheed-1.9.12/src/Makefile.am 2006-01-16 13:14:19.000000000 +0000
+@@ -177,8 +177,7 @@
+ -DG_LOG_DOMAIN=\"Sylpheed\" \
+ $(GTK_CFLAGS) \
+ $(GDK_PIXBUF_CFLAGS) \
+- $(GPGME_CFLAGS) \
+- -I$(includedir)
++ $(GPGME_CFLAGS)
+
+ sylpheed_LDADD = \
+ $(INTLLIBS) \
diff --git a/recipes/sylpheed/files/claws-mail-g_strcmp0.patch b/recipes/sylpheed/files/claws-mail-g_strcmp0.patch
new file mode 100644
index 0000000000..17c213d732
--- /dev/null
+++ b/recipes/sylpheed/files/claws-mail-g_strcmp0.patch
@@ -0,0 +1,575 @@
+http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1773
+
+However using if (g_utf8_collate(foo1, foo2)) works and gives good results (at
+least if glibc or locale data are not broken), this usage is bad.
+
+If you need to just compare strings to get equal/non-equal return value, than
+using of four-pass locale wise lexicographic collating is purely superfluous.
+
+Using simpler functions like strcmp() or g_strcmp0() will give the same result
+5-50 times faster.
+
+In attached patch, I replaces all occurrences of upper mentioned use case.
+
+Stanislav Brabec
+
+diff -ur claws-mail-3.6.1.orig/src/addrcustomattr.c claws-mail-3.6.1/src/addrcustomattr.c
+--- claws-mail-3.6.1.orig/src/addrcustomattr.c 2008-07-25 23:01:29.000000000 +0200
++++ claws-mail-3.6.1/src/addrcustomattr.c 2008-11-14 14:27:12.000000000 +0100
+@@ -353,7 +353,7 @@
+ gchar *attr;
+ gtk_tree_model_get(model, iter, CUSTOM_ATTR_NAME, &attr, -1);
+
+- if (g_utf8_collate(data->attr, attr)==0) {
++ if (g_strcmp0(data->attr, attr)==0) {
+ data->path = path; /* signal we found it */
+ data->iter = *iter;
+ return TRUE;
+diff -ur claws-mail-3.6.1.orig/src/addressbook_foldersel.c claws-mail-3.6.1/src/addressbook_foldersel.c
+--- claws-mail-3.6.1.orig/src/addressbook_foldersel.c 2008-09-09 19:10:50.000000000 +0200
++++ claws-mail-3.6.1/src/addressbook_foldersel.c 2008-11-14 14:27:12.000000000 +0100
+@@ -392,12 +392,19 @@
+ corresponds to what we received */
+
+ if ( path != NULL ) {
+- if ( g_utf8_collate(path, _("Any")) == 0 || strcasecmp(path, "Any") ==0 || *path == '\0' )
++ /* FIXME: Do we really need to recognize "anY" (and translated form)? */
++ /* It's a bit more complicated than g_utf8_collate, but still much faster */
++ char *tmp1, *tmp2;
++ tmp1 = g_utf8_casefold(path, -1);
++ tmp2 = g_utf8_casefold(_("Any"), -1); /* FIXME: This should be done only once. */
++ if ( g_strcmp0(tmp1, tmp2) == 0 || g_ascii_strcasecmp(path, "Any") ==0 || *path == '\0' )
+ /* consider "Any" (both translated or untranslated forms) and ""
+ as valid addressbook roots */
+ folder_path_match.matched = TRUE;
+ else
+ folder_path_match.folder_path = g_strsplit( path, "/", 256 );
++ g_free(tmp1);
++ g_free(tmp2);
+ }
+
+ addressbook_foldersel_load_data( addrIndex, &folder_path_match );
+diff -ur claws-mail-3.6.1.orig/src/addrgather.c claws-mail-3.6.1/src/addrgather.c
+--- claws-mail-3.6.1.orig/src/addrgather.c 2008-09-09 19:10:50.000000000 +0200
++++ claws-mail-3.6.1/src/addrgather.c 2008-11-14 14:27:12.000000000 +0100
+@@ -507,7 +507,7 @@
+ for (i = 0; i < NUM_FIELDS; i++) {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(addrgather_dlg.checkHeader[i]),
+ FALSE);
+- if (g_utf8_collate(_harv_headerNames_[i], HEADER_FROM) == 0)
++ if (g_strcmp0(_harv_headerNames_[i], HEADER_FROM) == 0)
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(addrgather_dlg.checkHeader[i]),
+ TRUE);
+ }
+diff -ur claws-mail-3.6.1.orig/src/common/mgutils.c claws-mail-3.6.1/src/common/mgutils.c
+--- claws-mail-3.6.1.orig/src/common/mgutils.c 2007-10-15 19:19:53.000000000 +0200
++++ claws-mail-3.6.1/src/common/mgutils.c 2008-11-14 14:27:12.000000000 +0100
+@@ -356,7 +356,7 @@
+ if( strlen( str ) > 0 ) {
+ node = list;
+ while( node ) {
+- if( g_utf8_collate( str, node->data ) == 0 )
++ if( g_strcmp0( str, node->data ) == 0 )
+ return FALSE;
+ node = g_slist_next( node );
+ }
+@@ -380,7 +380,7 @@
+ if( strlen( str ) > 0 ) {
+ node = list;
+ while( node ) {
+- if( g_utf8_collate( str, node->data ) == 0 )
++ if( g_strcmp0( str, node->data ) == 0 )
+ return FALSE;
+ node = g_list_next( node );
+ }
+diff -ur claws-mail-3.6.1.orig/src/compose.c claws-mail-3.6.1/src/compose.c
+--- claws-mail-3.6.1.orig/src/compose.c 2008-10-04 12:58:45.000000000 +0200
++++ claws-mail-3.6.1/src/compose.c 2008-11-14 14:27:12.000000000 +0100
+@@ -2399,7 +2399,7 @@
+ for (h_list = compose->header_list; h_list != NULL; h_list = h_list->next) {
+ entry = GTK_ENTRY(((ComposeHeaderEntry *)h_list->data)->entry);
+ if (gtk_entry_get_text(entry) &&
+- !g_utf8_collate(gtk_entry_get_text(entry), mailto)) {
++ !g_strcmp0(gtk_entry_get_text(entry), mailto)) {
+ if (yellow_initialised) {
+ gtk_widget_modify_base(
+ GTK_WIDGET(((ComposeHeaderEntry *)h_list->data)->entry),
+@@ -4858,7 +4858,7 @@
+ headerentry = ((ComposeHeaderEntry *)list->data);
+ headerentryname = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((headerentry->combo)))));
+
+- if (g_utf8_collate(headerentryname, to_hdr) == 0) {
++ if (g_strcmp0(headerentryname, to_hdr) == 0) {
+ const gchar *entstr = gtk_entry_get_text(GTK_ENTRY(headerentry->entry));
+ Xstrdup_a(str, entstr, return -1);
+ g_strstrip(str);
+@@ -4886,7 +4886,7 @@
+ headerentry = ((ComposeHeaderEntry *)list->data);
+ headerentryname = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((headerentry->combo)))));
+
+- if (g_utf8_collate(headerentryname, cc_hdr) == 0) {
++ if (g_strcmp0(headerentryname, cc_hdr) == 0) {
+ const gchar *strg = gtk_entry_get_text(GTK_ENTRY(headerentry->entry));
+ Xstrdup_a(str, strg, return -1);
+ g_strstrip(str);
+@@ -5760,7 +5760,7 @@
+ headerentry = ((ComposeHeaderEntry *)list->data);
+ headerentryname = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((headerentry->combo)))));
+
+- if (!g_utf8_collate(trans_fieldname, headerentryname)) {
++ if (!g_strcmp0(trans_fieldname, headerentryname)) {
+ str = gtk_editable_get_chars(GTK_EDITABLE(headerentry->entry), 0, -1);
+ g_strstrip(str);
+ if (str[0] != '\0') {
+diff -ur claws-mail-3.6.1.orig/src/customheader.c claws-mail-3.6.1/src/customheader.c
+--- claws-mail-3.6.1.orig/src/customheader.c 2007-07-11 18:33:01.000000000 +0200
++++ claws-mail-3.6.1/src/customheader.c 2008-11-14 14:27:12.000000000 +0100
+@@ -83,7 +83,7 @@
+
+ for (cur = header_list; cur != NULL; cur = cur->next) {
+ chdr = (CustomHeader *)cur->data;
+- if (!g_utf8_collate(chdr->name, header))
++ if (!g_strcmp0(chdr->name, header))
+ return chdr;
+ }
+
+diff -ur claws-mail-3.6.1.orig/src/exportldif.c claws-mail-3.6.1/src/exportldif.c
+--- claws-mail-3.6.1.orig/src/exportldif.c 2007-10-04 19:36:26.000000000 +0200
++++ claws-mail-3.6.1/src/exportldif.c 2008-11-14 14:27:12.000000000 +0100
+@@ -275,7 +275,7 @@
+ UserAttribute *attrib = node->data;
+
+ node = g_list_next( node );
+- if( g_utf8_collate( attrib->name, LDIF_TAG_DN ) == 0 ) {
++ if( g_strcmp0( attrib->name, LDIF_TAG_DN ) == 0 ) {
+ retVal = g_strdup( attrib->value );
+ break;
+ }
+diff -ur claws-mail-3.6.1.orig/src/gtk/combobox.c claws-mail-3.6.1/src/gtk/combobox.c
+--- claws-mail-3.6.1.orig/src/gtk/combobox.c 2008-08-29 10:37:19.000000000 +0200
++++ claws-mail-3.6.1/src/gtk/combobox.c 2008-11-14 14:27:12.000000000 +0100
+@@ -101,7 +101,7 @@
+ const gchar *curdata;
+
+ gtk_tree_model_get (GTK_TREE_MODEL(model), iter, 0, &curdata, -1);
+- if (!g_utf8_collate(data, curdata)) {
++ if (!g_strcmp0(data, curdata)) {
+ gtk_combo_box_set_active_iter(combobox, iter);
+ return TRUE;
+ }
+diff -ur claws-mail-3.6.1.orig/src/jpilot.c claws-mail-3.6.1/src/jpilot.c
+--- claws-mail-3.6.1.orig/src/jpilot.c 2008-10-01 09:10:29.000000000 +0200
++++ claws-mail-3.6.1/src/jpilot.c 2008-11-14 14:27:12.000000000 +0100
+@@ -1322,7 +1322,7 @@
+ }
+ }
+
+- if( g_utf8_collate( labelName, lbl ) == 0 ) {
++ if( g_strcmp0( labelName, lbl ) == 0 ) {
+ ind = i;
+ break;
+ }
+@@ -1640,7 +1640,7 @@
+ if( labelName ) {
+ node = pilotFile->customLabels;
+ while( node ) {
+- if( g_utf8_collate( labelName, ( gchar * ) node->data ) == 0 ) {
++ if( g_strcmp0( labelName, ( gchar * ) node->data ) == 0 ) {
+ retVal = TRUE;
+ break;
+ }
+diff -ur claws-mail-3.6.1.orig/src/ldapserver.c claws-mail-3.6.1/src/ldapserver.c
+--- claws-mail-3.6.1.orig/src/ldapserver.c 2007-08-22 18:08:33.000000000 +0200
++++ claws-mail-3.6.1/src/ldapserver.c 2008-11-14 14:27:12.000000000 +0100
+@@ -437,7 +437,7 @@
+ /* Search backwards for query */
+ while( node ) {
+ LdapQuery *qry = node->data;
+- if( g_utf8_collate( ADDRQUERY_SEARCHVALUE(qry), searchTerm ) == 0 ) {
++ if( g_strcmp0( ADDRQUERY_SEARCHVALUE(qry), searchTerm ) == 0 ) {
+ if( qry->agedFlag ) continue;
+ if( qry->completed ) {
+ /* Found */
+diff -ur claws-mail-3.6.1.orig/src/ldif.c claws-mail-3.6.1/src/ldif.c
+--- claws-mail-3.6.1.orig/src/ldif.c 2008-08-06 21:38:36.000000000 +0200
++++ claws-mail-3.6.1/src/ldif.c 2008-11-14 14:27:12.000000000 +0100
+@@ -536,19 +536,19 @@
+ }
+ g_strstrip( val );
+
+- if( g_utf8_collate( nm, LDIF_TAG_COMMONNAME ) == 0 ) {
++ if( g_strcmp0( nm, LDIF_TAG_COMMONNAME ) == 0 ) {
+ rec->listCName = g_slist_append( rec->listCName, val );
+ }
+- else if( g_utf8_collate( nm, LDIF_TAG_FIRSTNAME ) == 0 ) {
++ else if( g_strcmp0( nm, LDIF_TAG_FIRSTNAME ) == 0 ) {
+ rec->listFName = g_slist_append( rec->listFName, val );
+ }
+- else if( g_utf8_collate( nm, LDIF_TAG_LASTNAME ) == 0 ) {
++ else if( g_strcmp0( nm, LDIF_TAG_LASTNAME ) == 0 ) {
+ rec->listLName = g_slist_append( rec->listLName, val );
+ }
+- else if( g_utf8_collate( nm, LDIF_TAG_NICKNAME ) == 0 ) {
++ else if( g_strcmp0( nm, LDIF_TAG_NICKNAME ) == 0 ) {
+ rec->listNName = g_slist_append( rec->listNName, val );
+ }
+- else if( g_utf8_collate( nm, LDIF_TAG_EMAIL ) == 0 ) {
++ else if( g_strcmp0( nm, LDIF_TAG_EMAIL ) == 0 ) {
+ rec->listAddress = g_slist_append( rec->listAddress, val );
+ }
+ else {
+@@ -759,27 +759,27 @@
+ gchar *key = g_strdup( tag );
+
+ rec = ldif_create_fieldrec( tag );
+- if( g_utf8_collate( tag, LDIF_TAG_DN ) == 0 ) {
++ if( g_strcmp0( tag, LDIF_TAG_DN ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( "dn" );
+ }
+- else if( g_utf8_collate( tag, LDIF_TAG_COMMONNAME ) == 0 ) {
++ else if( g_strcmp0( tag, LDIF_TAG_COMMONNAME ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( _( "Display Name" ) );
+ }
+- else if( g_utf8_collate( tag, LDIF_TAG_FIRSTNAME ) == 0 ) {
++ else if( g_strcmp0( tag, LDIF_TAG_FIRSTNAME ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( _( "First Name" ) );
+ }
+- else if( g_utf8_collate( tag, LDIF_TAG_LASTNAME ) == 0 ) {
++ else if( g_strcmp0( tag, LDIF_TAG_LASTNAME ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( _( "Last Name" ) );
+ }
+- else if( g_utf8_collate( tag, LDIF_TAG_NICKNAME ) == 0 ) {
++ else if( g_strcmp0( tag, LDIF_TAG_NICKNAME ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( _( "Nick Name" ) );
+ }
+- else if( g_utf8_collate( tag, LDIF_TAG_EMAIL ) == 0 ) {
++ else if( g_strcmp0( tag, LDIF_TAG_EMAIL ) == 0 ) {
+ rec->reserved = rec->selected = TRUE;
+ rec->userName = g_strdup( _( "Email Address" ) );
+ }
+@@ -894,7 +894,7 @@
+ /* Add tag to list */
+ listTags = g_slist_append( listTags, tagName );
+
+- if( g_utf8_collate(
++ if( g_strcmp0(
+ tagName, LDIF_TAG_EMAIL ) == 0 )
+ {
+ flagMail = TRUE;
+diff -ur claws-mail-3.6.1.orig/src/plugins/bogofilter/bogofilter_gtk.c claws-mail-3.6.1/src/plugins/bogofilter/bogofilter_gtk.c
+--- claws-mail-3.6.1.orig/src/plugins/bogofilter/bogofilter_gtk.c 2008-09-09 19:10:52.000000000 +0200
++++ claws-mail-3.6.1/src/plugins/bogofilter/bogofilter_gtk.c 2008-11-14 14:27:12.000000000 +0100
+@@ -296,7 +296,7 @@
+ config->whitelist_ab_folder);
+ else
+ /* backward compatibility (when translated "Any" was stored) */
+- if (g_utf8_collate(config->whitelist_ab_folder, _("Any")) == 0)
++ if (g_strcmp0(config->whitelist_ab_folder, _("Any")) == 0)
+ gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((whitelist_ab_folder_combo)))),
+ config->whitelist_ab_folder);
+ else
+@@ -373,7 +373,7 @@
+ config->whitelist_ab_folder = gtk_editable_get_chars(
+ GTK_EDITABLE(gtk_bin_get_child(GTK_BIN((page->whitelist_ab_folder_combo)))), 0, -1);
+ /* store UNtranslated "Any" */
+- if (g_utf8_collate(config->whitelist_ab_folder, _("Any")) == 0) {
++ if (g_strcmp0(config->whitelist_ab_folder, _("Any")) == 0) {
+ g_free(config->whitelist_ab_folder);
+ config->whitelist_ab_folder = g_strdup("Any");
+ }
+diff -ur claws-mail-3.6.1.orig/src/plugins/dillo_viewer/dillo_prefs.c claws-mail-3.6.1/src/plugins/dillo_viewer/dillo_prefs.c
+--- claws-mail-3.6.1.orig/src/plugins/dillo_viewer/dillo_prefs.c 2008-08-07 18:38:59.000000000 +0200
++++ claws-mail-3.6.1/src/plugins/dillo_viewer/dillo_prefs.c 2008-11-14 14:27:12.000000000 +0100
+@@ -209,7 +209,7 @@
+ _("Any"));
+ else
+ /* backward compatibility (when translated "Any" was stored) */
+- if (g_utf8_collate(dillo_prefs.whitelist_ab_folder, _("Any")) == 0)
++ if (g_strcmp0(dillo_prefs.whitelist_ab_folder, _("Any")) == 0)
+ gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((whitelist_ab_folder_combo)))),
+ dillo_prefs.whitelist_ab_folder);
+ else
+@@ -272,7 +272,7 @@
+ dillo_prefs.whitelist_ab_folder = gtk_editable_get_chars(
+ GTK_EDITABLE(gtk_bin_get_child(GTK_BIN((prefs_page->whitelist_ab_folder_combo)))), 0, -1);
+ /* store UNtranslated "Any" */
+- if (g_utf8_collate(dillo_prefs.whitelist_ab_folder, _("Any")) == 0) {
++ if (g_strcmp0(dillo_prefs.whitelist_ab_folder, _("Any")) == 0) {
+ g_free(dillo_prefs.whitelist_ab_folder);
+ dillo_prefs.whitelist_ab_folder = g_strdup("Any");
+ }
+diff -ur claws-mail-3.6.1.orig/src/plugins/spamassassin/spamassassin_gtk.c claws-mail-3.6.1/src/plugins/spamassassin/spamassassin_gtk.c
+--- claws-mail-3.6.1.orig/src/plugins/spamassassin/spamassassin_gtk.c 2008-09-09 19:10:52.000000000 +0200
++++ claws-mail-3.6.1/src/plugins/spamassassin/spamassassin_gtk.c 2008-11-14 14:27:12.000000000 +0100
+@@ -480,7 +480,7 @@
+ config->whitelist_ab_folder);
+ else
+ /* backward compatibility (when translated "Any" was stored) */
+- if (g_utf8_collate(config->whitelist_ab_folder, _("Any")) == 0)
++ if (g_strcmp0(config->whitelist_ab_folder, _("Any")) == 0)
+ gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((whitelist_ab_folder_combo)))),
+ config->whitelist_ab_folder);
+ else
+@@ -603,7 +603,7 @@
+ config->whitelist_ab_folder = gtk_editable_get_chars(
+ GTK_EDITABLE(gtk_bin_get_child(GTK_BIN((page->whitelist_ab_folder_combo)))), 0, -1);
+ /* store UNtranslated "Any" */
+- if (g_utf8_collate(config->whitelist_ab_folder, _("Any")) == 0) {
++ if (g_strcmp0(config->whitelist_ab_folder, _("Any")) == 0) {
+ g_free(config->whitelist_ab_folder);
+ config->whitelist_ab_folder = g_strdup("Any");
+ }
+diff -ur claws-mail-3.6.1.orig/src/prefs_matcher.c claws-mail-3.6.1/src/prefs_matcher.c
+--- claws-mail-3.6.1.orig/src/prefs_matcher.c 2008-10-08 20:23:51.000000000 +0200
++++ claws-mail-3.6.1/src/prefs_matcher.c 2008-11-14 14:27:12.000000000 +0100
+@@ -1484,10 +1484,10 @@
+ if (*expr == '\0') {
+ gchar *tmp;
+
+- if (g_utf8_collate(header, Q_("Filtering Matcher Menu|All")) == 0)
++ if (g_strcmp0(header, Q_("Filtering Matcher Menu|All")) == 0)
+ tmp = g_strdup(_("all addresses in all headers"));
+ else
+- if (g_utf8_collate(header, _("Any")) == 0)
++ if (g_strcmp0(header, _("Any")) == 0)
+ tmp = g_strdup(_("any address in any header"));
+ else
+ tmp = g_strdup_printf(_("the address(es) in header '%s'"), header);
+@@ -1499,12 +1499,12 @@
+ return NULL;
+ }
+ /* store UNtranslated "Any"/"All" in matcher expressions */
+- if (g_utf8_collate(header, Q_("Filtering Matcher Menu|All")) == 0)
++ if (g_strcmp0(header, Q_("Filtering Matcher Menu|All")) == 0)
+ header = "All";
+ else
+- if (g_utf8_collate(header, _("Any")) == 0)
++ if (g_strcmp0(header, _("Any")) == 0)
+ header = "Any";
+- if (g_utf8_collate(expr, _("Any")) == 0)
++ if (g_strcmp0(expr, _("Any")) == 0)
+ expr = "Any";
+ break;
+ }
+diff -ur claws-mail-3.6.1.orig/src/prefs_toolbar.c claws-mail-3.6.1/src/prefs_toolbar.c
+--- claws-mail-3.6.1.orig/src/prefs_toolbar.c 2008-09-09 19:10:50.000000000 +0200
++++ claws-mail-3.6.1/src/prefs_toolbar.c 2008-11-14 14:27:12.000000000 +0100
+@@ -391,7 +391,7 @@
+ gtk_tree_model_get(model_set, &iter,
+ SET_EVENT, &entry,
+ -1);
+- if (g_utf8_collate(chosen_action, entry) == 0)
++ if (g_strcmp0(chosen_action, entry) == 0)
+ result = TRUE;
+ g_free(entry);
+ } while (!result && gtk_tree_model_iter_next(model_set, &iter));
+@@ -551,7 +551,7 @@
+ prefs_toolbar->item_func_combo));
+
+ if (is_duplicate(prefs_toolbar, icon_event)
+- && g_utf8_collate(icon_event, set_event) != 0){
++ && g_strcmp0(icon_event, set_event) != 0){
+ alertpanel_error(ERROR_MSG);
+ g_free(icon_event);
+ g_free(set_event);
+@@ -1179,7 +1179,7 @@
+ gtk_button_set_image(GTK_BUTTON(prefs_toolbar->icon_button),
+ gtk_image_new_from_pixbuf(pix));
+
+- if (g_utf8_collate(toolbar_ret_descr_from_val(A_SEPARATOR), descr) == 0) {
++ if (g_strcmp0(toolbar_ret_descr_from_val(A_SEPARATOR), descr) == 0) {
+ gtk_button_set_label(GTK_BUTTON(prefs_toolbar->icon_button),
+ _("None"));
+ g_free(prefs_toolbar->item_icon_file);
+@@ -1196,7 +1196,7 @@
+ gtk_entry_set_text(GTK_ENTRY(prefs_toolbar->item_text_entry),
+ icon_text);
+
+- if (g_utf8_collate(toolbar_ret_descr_from_val(A_CLAWS_ACTIONS), descr) == 0) {
++ if (g_strcmp0(toolbar_ret_descr_from_val(A_CLAWS_ACTIONS), descr) == 0) {
+ gtk_combo_box_set_active(GTK_COMBO_BOX(
+ prefs_toolbar->item_type_combo), ITEM_USER_ACTION);
+
+@@ -1205,7 +1205,7 @@
+ gchar *item_string;
+ get_action_name((gchar *)cur2->data, &item_string);
+
+- if(g_utf8_collate(item_string, icon_text) == 0) {
++ if(g_strcmp0(item_string, icon_text) == 0) {
+ gtk_combo_box_set_active(
+ GTK_COMBO_BOX(prefs_toolbar->item_action_combo),
+ item_num);
+@@ -1231,7 +1231,7 @@
+ for (cur = prefs_toolbar->combo_action_list, item_num = 0; cur != NULL;
+ cur = cur->next) {
+ gchar *item_str = (gchar*)cur->data;
+- if (g_utf8_collate(item_str, descr) == 0) {
++ if (g_strcmp0(item_str, descr) == 0) {
+ gtk_combo_box_set_active(
+ GTK_COMBO_BOX(prefs_toolbar->item_func_combo),
+ item_num);
+diff -ur claws-mail-3.6.1.orig/src/procmime.c claws-mail-3.6.1/src/procmime.c
+--- claws-mail-3.6.1.orig/src/procmime.c 2008-10-01 09:10:29.000000000 +0200
++++ claws-mail-3.6.1/src/procmime.c 2008-11-14 14:27:12.000000000 +0100
+@@ -1020,14 +1020,6 @@
+ return hash_result;
+ }
+
+-static gint procmime_str_equal(gconstpointer gptr1, gconstpointer gptr2)
+-{
+- const char *str1 = gptr1;
+- const char *str2 = gptr2;
+-
+- return !g_utf8_collate(str1, str2);
+-}
+-
+ static GHashTable *procmime_get_mime_type_table(void)
+ {
+ GHashTable *table = NULL;
+@@ -1040,7 +1032,7 @@
+ if (!mime_type_list) return NULL;
+ }
+
+- table = g_hash_table_new(procmime_str_hash, procmime_str_equal);
++ table = g_hash_table_new(procmime_str_hash, g_str_equal);
+
+ for (cur = mime_type_list; cur != NULL; cur = cur->next) {
+ gint i;
+diff -ur claws-mail-3.6.1.orig/src/summaryview.c claws-mail-3.6.1/src/summaryview.c
+--- claws-mail-3.6.1.orig/src/summaryview.c 2008-10-09 20:17:53.000000000 +0200
++++ claws-mail-3.6.1/src/summaryview.c 2008-11-14 14:27:12.000000000 +0100
+@@ -4240,7 +4240,7 @@
+ g_strdup_printf("%s",
+ account->address);
+
+- if (g_utf8_collate(from_name, msginfo->from) == 0) {
++ if (g_strcmp0(from_name, msginfo->from) == 0) {
+ g_free(from_name);
+ found = TRUE;
+ break;
+diff -ur claws-mail-3.6.1.orig/src/toolbar.c claws-mail-3.6.1/src/toolbar.c
+--- claws-mail-3.6.1.orig/src/toolbar.c 2008-09-13 12:07:43.000000000 +0200
++++ claws-mail-3.6.1/src/toolbar.c 2008-11-14 14:39:07.000000000 +0100
+@@ -236,7 +236,7 @@
+ gint i;
+
+ for (i = 0; i < N_ACTION_VAL; i++) {
+- if (g_utf8_collate(gettext(toolbar_text[i].descr), descr) == 0)
++ if (g_strcmp0(gettext(toolbar_text[i].descr), descr) == 0)
+ return i;
+ }
+
+@@ -255,7 +255,7 @@
+ gint i;
+
+ for (i = 0; i < N_ACTION_VAL; i++) {
+- if (g_utf8_collate(toolbar_text[i].index_str, text) == 0)
++ if (g_strcmp0(toolbar_text[i].index_str, text) == 0)
+ return i;
+ }
+
+@@ -346,11 +346,11 @@
+ name = ((XMLAttr *)attr->data)->name;
+ value = ((XMLAttr *)attr->data)->value;
+
+- if (g_utf8_collate(name, TOOLBAR_ICON_FILE) == 0)
++ if (g_strcmp0(name, TOOLBAR_ICON_FILE) == 0)
+ item->file = g_strdup (value);
+- else if (g_utf8_collate(name, TOOLBAR_ICON_TEXT) == 0)
++ else if (g_strcmp0(name, TOOLBAR_ICON_TEXT) == 0)
+ item->text = g_strdup (gettext(value));
+- else if (g_utf8_collate(name, TOOLBAR_ICON_ACTION) == 0)
++ else if (g_strcmp0(name, TOOLBAR_ICON_ACTION) == 0)
+ item->index = toolbar_ret_val_from_text(value);
+ if (item->index == -1 && !strcmp(value, "A_DELETE")) {
+ /* switch button */
+@@ -821,7 +821,7 @@
+
+ action_p = strstr(action, ": ");
+ action_p[0] = 0x00;
+- if (g_utf8_collate(act->name, action) == 0) {
++ if (g_strcmp0(act->name, action) == 0) {
+ found = TRUE;
+ g_free(action);
+ break;
+diff -ur claws-mail-3.6.1.orig/src/vcard.c claws-mail-3.6.1/src/vcard.c
+--- claws-mail-3.6.1.orig/src/vcard.c 2008-08-06 21:38:43.000000000 +0200
++++ claws-mail-3.6.1/src/vcard.c 2008-11-14 14:27:12.000000000 +0100
+@@ -348,7 +348,7 @@
+ str = nodeRemarks->data;
+ if( nodeRemarks ) {
+ if( str ) {
+- if( g_utf8_collate( str, "internet" ) != 0 ) {
++ if( g_strcmp0( str, "internet" ) != 0 ) {
+ if( *str != '\0' )
+ addritem_email_set_remarks( email, str );
+ }
+@@ -442,7 +442,7 @@
+ /* g_print( "\ttype: %s\n", tagtype ); */
+ /* g_print( "\tvalue: %s\n", tagvalue ); */
+
+- if( g_utf8_collate( tagtype, VCARD_TYPE_QP ) == 0 ) {
++ if( g_strcmp0( tagtype, VCARD_TYPE_QP ) == 0 ) {
+ gchar *tmp;
+ /* Quoted-Printable: could span multiple lines */
+ tagvalue = vcard_read_qp( cardFile, tagvalue );
+@@ -452,26 +452,26 @@
+ /* g_print( "QUOTED-PRINTABLE !!! final\n>%s<\n", tagvalue ); */
+ }
+
+- if( g_utf8_collate( tagname, VCARD_TAG_START ) == 0 &&
++ if( g_strcmp0( tagname, VCARD_TAG_START ) == 0 &&
+ g_ascii_strcasecmp( tagvalue, VCARD_NAME ) == 0 ) {
+ /* g_print( "start card\n" ); */
+ vcard_free_lists( listName, listAddress, listRemarks, listID );
+ listName = listAddress = listRemarks = listID = NULL;
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_FULLNAME ) == 0 ) {
++ if( g_strcmp0( tagname, VCARD_TAG_FULLNAME ) == 0 ) {
+ /* g_print( "- full name: %s\n", tagvalue ); */
+ listName = g_slist_append( listName, g_strdup( tagvalue ) );
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_EMAIL ) == 0 ) {
++ if( g_strcmp0( tagname, VCARD_TAG_EMAIL ) == 0 ) {
+ /* g_print( "- address: %s\n", tagvalue ); */
+ listAddress = g_slist_append( listAddress, g_strdup( tagvalue ) );
+ listRemarks = g_slist_append( listRemarks, g_strdup( tagtype ) );
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_UID ) == 0 ) {
++ if( g_strcmp0( tagname, VCARD_TAG_UID ) == 0 ) {
+ /* g_print( "- id: %s\n", tagvalue ); */
+ listID = g_slist_append( listID, g_strdup( tagvalue ) );
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_END ) == 0 &&
++ if( g_strcmp0( tagname, VCARD_TAG_END ) == 0 &&
+ g_ascii_strcasecmp( tagvalue, VCARD_NAME ) == 0 ) {
+ /* vCard is complete */
+ /* g_print( "end card\n--\n" ); */
+@@ -659,7 +659,7 @@
+ tagtemp = NULL;
+ }
+
+- if( g_utf8_collate( tagtype, VCARD_TYPE_QP ) == 0 ) {
++ if( g_strcmp0( tagtype, VCARD_TYPE_QP ) == 0 ) {
+ gchar *tmp;
+ /* Quoted-Printable: could span multiple lines */
+ tagvalue = vcard_read_qp( cardFile, tagvalue );
+@@ -667,11 +667,11 @@
+ g_free(tagvalue);
+ tagvalue=tmp;
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_START ) == 0 &&
++ if( g_strcmp0( tagname, VCARD_TAG_START ) == 0 &&
+ g_ascii_strcasecmp( tagvalue, VCARD_NAME ) == 0 ) {
+ haveStart = TRUE;
+ }
+- if( g_utf8_collate( tagname, VCARD_TAG_END ) == 0 &&
++ if( g_strcmp0( tagname, VCARD_TAG_END ) == 0 &&
+ g_ascii_strcasecmp( tagvalue, VCARD_NAME ) == 0 ) {
+ /* vCard is complete */
+ if( haveStart ) cardFile->retVal = MGU_SUCCESS;
diff --git a/recipes/sylpheed/files/claws-plugin-mailmbox-fixup.patch b/recipes/sylpheed/files/claws-plugin-mailmbox-fixup.patch
new file mode 100644
index 0000000000..f8cce25225
--- /dev/null
+++ b/recipes/sylpheed/files/claws-plugin-mailmbox-fixup.patch
@@ -0,0 +1,218 @@
+Index: mailmbox-1.14/src/plugin_gtk.c
+===================================================================
+--- mailmbox-1.14.orig/src/plugin_gtk.c 2008-12-04 06:18:50.000000000 +0300
++++ mailmbox-1.14/src/plugin_gtk.c 2008-12-04 06:49:40.000000000 +0300
+@@ -35,39 +35,41 @@
+
+ #include "pluginconfig.h"
+
+-static void new_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void delete_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void rename_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void move_folder_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void update_tree_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void remove_mailbox_cb(FolderView *folderview, guint action, GtkWidget *widget);
+-static void add_mailbox(gpointer callback_data, guint callback_action, GtkWidget *widget);
+-
+-static GtkItemFactoryEntry claws_mailmbox_popup_entries[] =
+-{
+- {N_("/Create _new folder..."), NULL, new_folder_cb, 0, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_Rename folder..."), NULL, rename_folder_cb, 0, NULL},
+- {N_("/M_ove folder..."), NULL, move_folder_cb, 0, NULL},
+- {N_("/Cop_y folder..."), NULL, move_folder_cb, 1, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_Delete folder"), NULL, delete_folder_cb, 0, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_Check for new messages"), NULL, update_tree_cb, 0, NULL},
+- {N_("/C_heck for new folders"), NULL, update_tree_cb, 1, NULL},
+- {N_("/R_ebuild folder tree"), NULL, update_tree_cb, 2, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/Remove _mailbox"), NULL, remove_mailbox_cb, 0, NULL},
+- {N_("/---"), NULL, NULL, 0, "<Separator>"},
++static void new_folder_cb(GtkAction *action, gpointer data);
++static void delete_folder_cb(GtkAction *action, gpointer data);
++static void rename_folder_cb(GtkAction *action, gpointer data);
++static void move_folder_cb(GtkAction *action, gpointer data);
++static void update_tree_cb(GtkAction *action, gpointer data);
++static void remove_mailbox_cb(GtkAction *action, gpointer data);
++static void add_mailbox(gpointer callback_data, guint callback_action, gpointer data);
++
++static GtkActionEntry claws_mailmbox_popup_entries[] =
++{
++ {"FolderViewPopup/CreateNewFolder", NULL, N_("/Create _new folder..."), NULL, NULL, G_CALLBACK(new_folder_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/RenameFolder", NULL, N_("/_Rename folder..."), NULL, NULL, G_CALLBACK(rename_folder_cb) },
++ {"FolderViewPopup/MoveFolder", NULL, N_("/M_ove folder..."), NULL, NULL, G_CALLBACK(move_folder_cb) },
++ {"FolderViewPopup/CopyFolder", NULL, N_("/Cop_y folder..."), NULL, NULL, G_CALLBACK(move_folder_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/DeleteFolder", NULL, N_("/_Delete folder"), NULL, NULL, G_CALLBACK(delete_folder_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/CheckNewMessages", NULL, N_("/_Check for new messages"), NULL, NULL, G_CALLBACK(update_tree_cb) },
++ {"FolderViewPopup/CheckNewFolders", NULL, N_("/C_heck for new folders"), NULL, NULL, G_CALLBACK(update_tree_cb) },
++ {"FolderViewPopup/RebuildfTree", NULL, N_("/R_ebuild folder tree"), NULL, NULL, G_CALLBACK(update_tree_cb) },
++ {"FolderViewPopup/---", NULL, N_("/---") },
++ {"FolderViewPopup/RemoveMailbox", NULL, N_("/Remove _mailbox"), NULL, NULL, G_CALLBACK(remove_mailbox_cb) },
+ };
+
+-static void set_sensitivity(GtkItemFactory *factory, FolderItem *item);
++static void set_sensitivity(GtkUIManager *factory, FolderItem *item);
+
+ static FolderViewPopup claws_mailmbox_popup =
+ {
+ "mailmbox",
+ "<MailmboxFolder>",
+- NULL,
++ claws_mailmbox_popup_entries,
++ G_N_ELEMENTS(claws_mailmbox_popup_entries),
++ NULL, 0,
++ NULL, 0, 0, NULL, NULL,
+ set_sensitivity
+ };
+
+@@ -85,11 +87,6 @@
+ GtkItemFactory *ifactory;
+ MainWindow *mainwin = mainwindow_get_mainwindow();
+
+- n_entries = sizeof(claws_mailmbox_popup_entries) /
+- sizeof(claws_mailmbox_popup_entries[0]);
+- for (i = 0; i < n_entries; i++)
+- claws_mailmbox_popup.entries = g_slist_append(claws_mailmbox_popup.entries, &claws_mailmbox_popup_entries[i]);
+-
+ folderview_register_popup(&claws_mailmbox_popup);
+
+ ifactory = gtk_item_factory_from_widget(mainwin->menubar);
+@@ -115,7 +112,7 @@
+ gtk_item_factory_delete_item(ifactory, mainwindow_add_mailbox.path);
+ }
+
+-static void set_sensitivity(GtkItemFactory *factory, FolderItem *item)
++static void set_sensitivity(GtkUIManager *factory, FolderItem *item)
+ {
+ #define SET_SENS(name, sens) \
+ menu_set_sensitive(factory, name, sens)
+@@ -132,10 +129,13 @@
+ #undef SET_SENS
+ }
+
+-static void update_tree_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++#define DO_ACTION(name, act) { if (!strcmp(a_name, name)) act; }
++
++static void update_tree_cb(GtkAction *action, gpointer data)
+ {
++ FolderView *folderview = (FolderView *)data;
+ FolderItem *item;
++ const gchar *a_name = gtk_action_get_name(action);
+
+ item = folderview_get_selected_item(folderview);
+ g_return_if_fail(item != NULL);
+@@ -144,16 +144,12 @@
+
+ g_return_if_fail(item->folder != NULL);
+
+- if (action == 0)
+- folderview_check_new(item->folder);
+- else if (action == 1)
+- folderview_rescan_tree(item->folder, FALSE);
+- else if (action == 2)
+- folderview_rescan_tree(item->folder, TRUE);
++ DO_ACTION("FolderViewPopup/CheckNewMessages", folderview_check_new(item->folder));
++ DO_ACTION("FolderViewPopup/CheckNewFolders", folderview_rescan_tree(item->folder, FALSE));
++ DO_ACTION("FolderViewPopup/RebuildTree", folderview_rescan_tree(item->folder, FALSE));
+ }
+
+-static void add_mailbox(gpointer callback_data, guint callback_action,
+- GtkWidget *widget)
++static void add_mailbox(gpointer callback_data, guint callback_action, gpointer data)
+ {
+ MainWindow *mainwin = (MainWindow *) callback_data;
+ gchar *path, *basename;
+@@ -193,10 +189,10 @@
+ return;
+ }
+
+-static void new_folder_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++static void new_folder_cb(GtkAction *action, gpointer data)
+ {
+- GtkCTree *ctree = GTK_CTREE(folderview->ctree);
++ FolderView *folderview = (FolderView *)data;
++ GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
+ FolderItem *item;
+ FolderItem *new_item;
+ gchar *new_folder;
+@@ -245,9 +241,10 @@
+ folder_write_list();
+ }
+
+-static void remove_mailbox_cb(FolderView *folderview, guint action, GtkWidget *widget)
++static void remove_mailbox_cb(GtkAction *action, gpointer data)
+ {
+- GtkCTree *ctree = GTK_CTREE(folderview->ctree);
++ FolderView *folderview = (FolderView *)data;
++ GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
+ GtkCTreeNode *node;
+ FolderItem *item;
+ gchar *name;
+@@ -276,10 +273,10 @@
+ folder_destroy(item->folder);
+ }
+
+-static void delete_folder_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++static void delete_folder_cb(GtkAction *action, gpointer data)
+ {
+- GtkCTree *ctree = GTK_CTREE(folderview->ctree);
++ FolderView *folderview = (FolderView *)data;
++ GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
+ FolderItem *item;
+ gchar *message, *name;
+ AlertValue avalue;
+@@ -329,24 +326,41 @@
+
+ }
+
+-static void move_folder_cb(FolderView *folderview, guint action, GtkWidget *widget)
++static void move_folder_cb(GtkAction *action, gpointer data)
++{
++ FolderView *folderview = (FolderView *)data;
++ FolderItem *from_folder = NULL, *to_folder = NULL;
++
++ from_folder = folderview_get_selected_item(folderview);
++ if (!from_folder || from_folder->folder->klass != claws_mailmbox_get_class())
++ return;
++
++ to_folder = foldersel_folder_sel(from_folder->folder, FOLDER_SEL_MOVE, NULL, TRUE);
++ if (!to_folder)
++ return;
++
++ folderview_move_folder(folderview, from_folder, to_folder, 0);
++}
++
++static void copy_folder_cb(GtkAction *action, gpointer data)
+ {
++ FolderView *folderview = (FolderView *)data;
+ FolderItem *from_folder = NULL, *to_folder = NULL;
+
+ from_folder = folderview_get_selected_item(folderview);
+ if (!from_folder || from_folder->folder->klass != claws_mailmbox_get_class())
+ return;
+
+- to_folder = foldersel_folder_sel(from_folder->folder, FOLDER_SEL_MOVE, NULL);
++ to_folder = foldersel_folder_sel(from_folder->folder, FOLDER_SEL_MOVE, NULL, TRUE);
+ if (!to_folder)
+ return;
+
+- folderview_move_folder(folderview, from_folder, to_folder, action);
++ folderview_move_folder(folderview, from_folder, to_folder, 1);
+ }
+
+-static void rename_folder_cb(FolderView *folderview, guint action,
+- GtkWidget *widget)
++static void rename_folder_cb(GtkAction *action, gpointer data)
+ {
++ FolderView *folderview = (FolderView *)data;
+ FolderItem *item, *parent;
+ gchar *new_folder;
+ gchar *name;
diff --git a/recipes/sylpheed/files/desktop.patch b/recipes/sylpheed/files/desktop.patch
new file mode 100644
index 0000000000..c5ed7a9c7d
--- /dev/null
+++ b/recipes/sylpheed/files/desktop.patch
@@ -0,0 +1,19 @@
+Index: claws-mail-2.9.1/claws-mail.desktop
+===================================================================
+--- claws-mail-2.9.1.orig/claws-mail.desktop 2007-04-24 17:40:20.000000000 +0100
++++ claws-mail-2.9.1/claws-mail.desktop 2007-04-25 07:08:36.000000000 +0100
+@@ -1,11 +1,11 @@
+ [Desktop Entry]
+ Encoding=UTF-8
+-Name=Claws Mail
++Name=Mail
+ Exec=claws-mail
+ Icon=claws-mail
+-Info="Claws Mail"
++Info=Email Application
+ Categories=GTK;Network;Email;
+-Comment="Gtk+ based Mail Client"
++Comment=Email Application
+ Terminal=false
+ Type=Application
+ StartupNotify=true
diff --git a/recipes/sylpheed/files/streamline-ui.patch b/recipes/sylpheed/files/streamline-ui.patch
new file mode 100644
index 0000000000..29a52ff795
--- /dev/null
+++ b/recipes/sylpheed/files/streamline-ui.patch
@@ -0,0 +1,1008 @@
+Index: claws-mail-2.9.1/src/mainwindow.c
+===================================================================
+--- claws-mail-2.9.1.orig/src/mainwindow.c 2007-04-25 07:40:10.000000000 +0100
++++ claws-mail-2.9.1/src/mainwindow.c 2007-04-25 10:26:40.000000000 +0100
+@@ -189,9 +189,6 @@
+ static void toggle_statusbar_cb (MainWindow *mainwin,
+ guint action,
+ GtkWidget *widget);
+-static void set_layout_cb (MainWindow *mainwin,
+- guint action,
+- GtkWidget *widget);
+
+ static void addressbook_open_cb (MainWindow *mainwin,
+ guint action,
+@@ -538,94 +535,24 @@
+ {N_("/_Edit/_Search folder..."), "<shift><control>F", search_cb, 1, NULL},
+ {N_("/_Edit/_Quick search"), "slash", mainwindow_quicksearch, 0, NULL},
+ {N_("/_View"), NULL, NULL, 0, "<Branch>"},
+- {N_("/_View/Show or hi_de"), NULL, NULL, 0, "<Branch>"},
+- {N_("/_View/Show or hi_de/_Message view"),
+- "V", toggle_message_cb, 0, "<ToggleItem>"},
+- {N_("/_View/Show or hi_de/_Toolbar"),
+- NULL, NULL, 0, "<Branch>"},
+- {N_("/_View/Show or hi_de/_Toolbar/Text _below icons"),
+- NULL, toggle_toolbar_cb, TOOLBAR_BOTH, "<RadioItem>"},
+- {N_("/_View/Show or hi_de/_Toolbar/Text be_side icons"),
+- NULL, toggle_toolbar_cb, TOOLBAR_BOTH_HORIZ, "/View/Show or hide/Toolbar/Text below icons"},
+- {N_("/_View/Show or hi_de/_Toolbar/_Icons only"),
+- NULL, toggle_toolbar_cb, TOOLBAR_ICON, "/View/Show or hide/Toolbar/Text below icons"},
+- {N_("/_View/Show or hi_de/_Toolbar/_Text only"),
+- NULL, toggle_toolbar_cb, TOOLBAR_TEXT, "/View/Show or hide/Toolbar/Text below icons"},
+- {N_("/_View/Show or hi_de/_Toolbar/_Hide"),
+- NULL, toggle_toolbar_cb, TOOLBAR_NONE, "/View/Show or hide/Toolbar/Text below icons"},
+- {N_("/_View/Show or hi_de/Status _bar"),
+- NULL, toggle_statusbar_cb, 0, "<ToggleItem>"},
+ {N_("/_View/Set displayed _columns"), NULL, NULL, 0, "<Branch>"},
+ {N_("/_View/Set displayed _columns/in _Folder list..."), NULL, set_folder_display_item_cb, 0, NULL},
+ {N_("/_View/Set displayed _columns/in _Message list..."),NULL, set_summary_display_item_cb, 0, NULL},
+
+ {N_("/_View/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_View/La_yout"), NULL, NULL, 0, "<Branch>"},
+- {N_("/_View/Layout/_Standard"), NULL, set_layout_cb, NORMAL_LAYOUT, "<RadioItem>"},
+- {N_("/_View/Layout/_Three columns"), NULL, set_layout_cb, VERTICAL_LAYOUT, "/View/Layout/Standard"},
+- {N_("/_View/Layout/_Wide message"), NULL, set_layout_cb, WIDE_LAYOUT, "/View/Layout/Standard"},
+- {N_("/_View/Layout/W_ide message list"),NULL, set_layout_cb, WIDE_MSGLIST_LAYOUT, "/View/Layout/Standard"},
+- {N_("/_View/Layout/S_mall screen"), NULL, set_layout_cb, SMALL_LAYOUT, "/View/Layout/Standard"},
+- {N_("/_View/---"), NULL, NULL, 0, "<Separator>"},
+ {N_("/_View/_Sort"), NULL, NULL, 0, "<Branch>"},
+- {N_("/_View/_Sort/by _number"), NULL, sort_summary_cb, SORT_BY_NUMBER, "<RadioItem>"},
+- {N_("/_View/_Sort/by S_ize"), NULL, sort_summary_cb, SORT_BY_SIZE, "/View/Sort/by number"},
+- {N_("/_View/_Sort/by _Date"), NULL, sort_summary_cb, SORT_BY_DATE, "/View/Sort/by number"},
+- {N_("/_View/_Sort/by _From"), NULL, sort_summary_cb, SORT_BY_FROM, "/View/Sort/by number"},
+- {N_("/_View/_Sort/by _To"), NULL, sort_summary_cb, SORT_BY_TO, "/View/Sort/by number"},
+- {N_("/_View/_Sort/by S_ubject"), NULL, sort_summary_cb, SORT_BY_SUBJECT, "/View/Sort/by number"},
+- {N_("/_View/_Sort/by _color label"),
+- NULL, sort_summary_cb, SORT_BY_LABEL, "/View/Sort/by number"},
+- {N_("/_View/_Sort/by _mark"), NULL, sort_summary_cb, SORT_BY_MARK, "/View/Sort/by number"},
+- {N_("/_View/_Sort/by _status"), NULL, sort_summary_cb, SORT_BY_STATUS, "/View/Sort/by number"},
+- {N_("/_View/_Sort/by a_ttachment"),
+- NULL, sort_summary_cb, SORT_BY_MIME, "/View/Sort/by number"},
+- {N_("/_View/_Sort/by score"), NULL, sort_summary_cb, SORT_BY_SCORE, "/View/Sort/by number"},
+- {N_("/_View/_Sort/by locked"), NULL, sort_summary_cb, SORT_BY_LOCKED, "/View/Sort/by number"},
+- {N_("/_View/_Sort/D_on't sort"), NULL, sort_summary_cb, SORT_BY_NONE, "/View/Sort/by number"},
++ {N_("/_View/_Sort/by _Date"), NULL, sort_summary_cb, SORT_BY_DATE, "<RadioItem>"},
++ {N_("/_View/_Sort/by _From"), NULL, sort_summary_cb, SORT_BY_FROM, "/View/Sort/by Date"},
++ {N_("/_View/_Sort/by _To"), NULL, sort_summary_cb, SORT_BY_TO, "/View/Sort/by Date"},
++ {N_("/_View/_Sort/by S_ubject"), NULL, sort_summary_cb, SORT_BY_SUBJECT, "/View/Sort/by Date"},
+ {N_("/_View/_Sort/---"), NULL, NULL, 0, "<Separator>"},
+ {N_("/_View/_Sort/Ascending"), NULL, sort_summary_type_cb, SORT_ASCENDING, "<RadioItem>"},
+ {N_("/_View/_Sort/Descending"), NULL, sort_summary_type_cb, SORT_DESCENDING, "/View/Sort/Ascending"},
+- {N_("/_View/_Sort/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_View/_Sort/_Attract by subject"),
+- NULL, attract_by_subject_cb, 0, NULL},
+ {N_("/_View/Th_read view"), "<control>T", thread_cb, 0, "<ToggleItem>"},
+ {N_("/_View/E_xpand all threads"), NULL, expand_threads_cb, 0, NULL},
+ {N_("/_View/Co_llapse all threads"), NULL, collapse_threads_cb, 0, NULL},
+ {N_("/_View/_Hide read messages"), NULL, hide_read_messages, 0, "<ToggleItem>"},
+
+- {N_("/_View/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_View/_Go to"), NULL, NULL, 0, "<Branch>"},
+- {N_("/_View/_Go to/_Previous message"), "P", prev_cb, 0, NULL},
+- {N_("/_View/_Go to/_Next message"), "N", next_cb, 0, NULL},
+- {N_("/_View/_Go to/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_View/_Go to/P_revious unread message"),
+- "<shift>P", prev_unread_cb, 0, NULL},
+- {N_("/_View/_Go to/N_ext unread message"),
+- "<shift>N", next_unread_cb, 0, NULL},
+- {N_("/_View/_Go to/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_View/_Go to/Previous ne_w message"), NULL, prev_new_cb, 0, NULL},
+- {N_("/_View/_Go to/Ne_xt new message"), NULL, next_new_cb, 0, NULL},
+- {N_("/_View/_Go to/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_View/_Go to/Previous _marked message"),
+- NULL, prev_marked_cb, 0, NULL},
+- {N_("/_View/_Go to/Next m_arked message"),
+- NULL, next_marked_cb, 0, NULL},
+- {N_("/_View/_Go to/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_View/_Go to/Previous _labeled message"),
+- NULL, prev_labeled_cb, 0, NULL},
+- {N_("/_View/_Go to/Next la_beled message"),
+- NULL, next_labeled_cb, 0, NULL},
+- {N_("/_View/_Go to/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_View/_Go to/Last read message"),
+- NULL, last_read_cb, 0, NULL},
+- {N_("/_View/_Go to/Parent message"),
+- "<control>Up", parent_cb, 0, NULL},
+- {N_("/_View/_Go to/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_View/_Go to/Next unread _folder"), "<shift>G", goto_unread_folder_cb, 0, NULL},
+- {N_("/_View/_Go to/_Other folder..."), "G", goto_folder_cb, 0, NULL},
+- {N_("/_View/---"), NULL, NULL, 0, "<Separator>"},
+-
+ #define ENC_SEPARATOR \
+ {N_("/_View/Character _encoding/---"), NULL, NULL, 0, "<Separator>"}
+ #define ENC_ACTION(action) \
+@@ -742,7 +669,6 @@
+ #undef DEC_ACTION
+
+ {N_("/_View/---"), NULL, NULL, 0, "<Separator>"},
+- {N_("/_View/Open in new _window"), "<control><alt>N", open_msg_cb, 0, NULL},
+ {N_("/_View/Mess_age source"), "<control>U", view_source_cb, 0, NULL},
+ {N_("/_View/All headers"), "<control>H", show_all_header_cb, 0, "<ToggleItem>"},
+ {N_("/_View/Quotes"), NULL, NULL, 0, "<Branch>"},
+@@ -1137,23 +1063,14 @@
+ gint i;
+ guint n_menu_entries;
+
+- static GdkGeometry geometry;
+-
+ debug_print("Creating main window...\n");
+ mainwin = g_new0(MainWindow, 1);
+
+ /* main window */
+ window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "mainwindow");
+- gtk_window_set_title(GTK_WINDOW(window), PROG_VERSION);
++ gtk_window_set_title(GTK_WINDOW(window), _("Mail"));
+ gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+
+- if (!geometry.min_height) {
+- geometry.min_width = 320;
+- geometry.min_height = 200;
+- }
+- gtk_window_set_geometry_hints(GTK_WINDOW(window), NULL, &geometry,
+- GDK_HINT_MIN_SIZE);
+-
+ g_signal_connect(G_OBJECT(window), "delete_event",
+ G_CALLBACK(main_window_close_cb), mainwin);
+ MANAGE_WINDOW_SIGNALS_CONNECT(window);
+@@ -1184,21 +1101,9 @@
+ /* gtk_widget_show(gtk_item_factory_get_item(ifactory,"/Message/Mailing-List"));
+ main_create_mailing_list_menu (mainwin, NULL); */
+
+- menu_set_sensitive(ifactory, "/Help/Manual", manual_available(MANUAL_MANUAL_LOCAL));
+-
+- if (prefs_common.toolbar_detachable) {
+- handlebox = gtk_handle_box_new();
+- gtk_widget_show(handlebox);
+- gtk_box_pack_start(GTK_BOX(vbox), handlebox, FALSE, FALSE, 0);
+- g_signal_connect(G_OBJECT(handlebox), "child_attached",
+- G_CALLBACK(toolbar_child_attached), mainwin);
+- g_signal_connect(G_OBJECT(handlebox), "child_detached",
+- G_CALLBACK(toolbar_child_detached), mainwin);
+- } else {
+- handlebox = gtk_hbox_new(FALSE, 0);
+- gtk_widget_show(handlebox);
+- gtk_box_pack_start(GTK_BOX(vbox), handlebox, FALSE, FALSE, 0);
+- }
++ handlebox = gtk_hbox_new(FALSE, 0);
++ gtk_widget_show(handlebox);
++ gtk_box_pack_start(GTK_BOX(vbox), handlebox, FALSE, FALSE, 0);
+ /* link window to mainwin->window to avoid gdk warnings */
+ mainwin->window = window;
+
+@@ -1405,36 +1310,6 @@
+ (ifactory, "/View/Character encoding/Auto detect");
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);
+
+- switch (prefs_common.toolbar_style) {
+- case TOOLBAR_NONE:
+- menuitem = gtk_item_factory_get_item
+- (ifactory, "/View/Show or hide/Toolbar/Hide");
+- break;
+- case TOOLBAR_ICON:
+- menuitem = gtk_item_factory_get_item
+- (ifactory, "/View/Show or hide/Toolbar/Icons only");
+- break;
+- case TOOLBAR_TEXT:
+- menuitem = gtk_item_factory_get_item
+- (ifactory, "/View/Show or hide/Toolbar/Text only");
+- break;
+- case TOOLBAR_BOTH:
+- menuitem = gtk_item_factory_get_item
+- (ifactory, "/View/Show or hide/Toolbar/Text below icons");
+- break;
+- case TOOLBAR_BOTH_HORIZ:
+- menuitem = gtk_item_factory_get_item
+- (ifactory,
+- "/View/Show or hide/Toolbar/Text beside icons");
+- }
+- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);
+-
+- gtk_widget_hide(mainwin->hbox_stat);
+- menuitem = gtk_item_factory_get_item
+- (ifactory, "/View/Show or hide/Status bar");
+- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem),
+- prefs_common.show_statusbar);
+-
+ /* set account selection menu */
+ ac_menu = gtk_item_factory_get_widget
+ (ifactory, "/Configuration/Change current account");
+@@ -2284,16 +2159,6 @@
+ {"/View/Expand all threads" , M_MSG_EXIST},
+ {"/View/Collapse all threads" , M_MSG_EXIST},
+ {"/View/Hide read messages" , M_HIDE_READ_MSG},
+- {"/View/Go to/Previous message" , M_MSG_EXIST},
+- {"/View/Go to/Next message" , M_MSG_EXIST},
+- {"/View/Go to/Previous unread message" , M_MSG_EXIST},
+- {"/View/Go to/Previous new message" , M_MSG_EXIST},
+- {"/View/Go to/Previous marked message" , M_MSG_EXIST},
+- {"/View/Go to/Previous labeled message", M_MSG_EXIST},
+- {"/View/Go to/Next labeled message", M_MSG_EXIST},
+- {"/View/Go to/Last read message" , M_SINGLE_TARGET_EXIST},
+- {"/View/Go to/Parent message" , M_SINGLE_TARGET_EXIST},
+- {"/View/Open in new window" , M_SINGLE_TARGET_EXIST},
+ {"/View/Message source" , M_SINGLE_TARGET_EXIST},
+ {"/View/All headers" , M_SINGLE_TARGET_EXIST},
+ {"/View/Quotes" , M_SINGLE_TARGET_EXIST},
+@@ -2379,40 +2244,20 @@
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), active); \
+ }
+
+- SET_CHECK_MENU_ACTIVE("/View/Show or hide/Message view",
+- messageview_is_visible(mainwin->messageview));
+-
+ summaryview = mainwin->summaryview;
+- menu_path = "/View/Sort/Don't sort";
++ menu_path = "/View/Sort/by Date";
+
+ switch (summaryview->sort_key) {
+- case SORT_BY_NUMBER:
+- menu_path = "/View/Sort/by number"; break;
+- case SORT_BY_SIZE:
+- menu_path = "/View/Sort/by Size"; break;
+- case SORT_BY_DATE:
+- menu_path = "/View/Sort/by Date"; break;
+ case SORT_BY_FROM:
+ menu_path = "/View/Sort/by From"; break;
+ case SORT_BY_TO:
+ menu_path = "/View/Sort/by To"; break;
+ case SORT_BY_SUBJECT:
+ menu_path = "/View/Sort/by Subject"; break;
+- case SORT_BY_LABEL:
+- menu_path = "/View/Sort/by color label"; break;
+- case SORT_BY_MARK:
+- menu_path = "/View/Sort/by mark"; break;
+- case SORT_BY_STATUS:
+- menu_path = "/View/Sort/by status"; break;
+- case SORT_BY_MIME:
+- menu_path = "/View/Sort/by attachment"; break;
+- case SORT_BY_SCORE:
+- menu_path = "/View/Sort/by score"; break;
+- case SORT_BY_LOCKED:
+- menu_path = "/View/Sort/by locked"; break;
+ case SORT_BY_NONE:
++ case SORT_BY_DATE:
+ default:
+- menu_path = "/View/Sort/Don't sort"; break;
++ menu_path = "/View/Sort/by Date"; break;
+ }
+ SET_CHECK_MENU_ACTIVE(menu_path, TRUE);
+
+@@ -2735,8 +2580,6 @@
+ gtk_widget_destroy(mainwin->hpaned);
+ }
+
+- menu_set_sensitive(ifactory, "/View/Show or hide/Message view",
+- (layout_mode != WIDE_MSGLIST_LAYOUT && layout_mode != SMALL_LAYOUT));
+ switch (layout_mode) {
+ case VERTICAL_LAYOUT:
+ case NORMAL_LAYOUT:
+@@ -2877,37 +2720,6 @@
+
+ prefs_common.layout_mode = layout_mode;
+
+- menuitem = gtk_item_factory_get_item
+- (ifactory, "/View/Show or hide/Message view");
+- gtk_check_menu_item_set_active
+- (GTK_CHECK_MENU_ITEM(menuitem),
+- messageview_is_visible(mainwin->messageview));
+-
+-#define SET_CHECK_MENU_ACTIVE(path, active) \
+-{ \
+- menuitem = gtk_item_factory_get_widget(ifactory, path); \
+- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), active); \
+-}
+-
+- switch (prefs_common.layout_mode) {
+- case NORMAL_LAYOUT:
+- SET_CHECK_MENU_ACTIVE("/View/Layout/Standard", TRUE);
+- break;
+- case VERTICAL_LAYOUT:
+- SET_CHECK_MENU_ACTIVE("/View/Layout/Three columns", TRUE);
+- break;
+- case WIDE_LAYOUT:
+- SET_CHECK_MENU_ACTIVE("/View/Layout/Wide message", TRUE);
+- break;
+- case WIDE_MSGLIST_LAYOUT:
+- SET_CHECK_MENU_ACTIVE("/View/Layout/Wide message list", TRUE);
+- break;
+- case SMALL_LAYOUT:
+- SET_CHECK_MENU_ACTIVE("/View/Layout/Small screen", TRUE);
+- break;
+- }
+-#undef SET_CHECK_MENU_ACTIVE
+-
+ if (folderwin) {
+ g_signal_connect
+ (G_OBJECT(folderwin), "size_allocate",
+@@ -3116,12 +2928,6 @@
+ summary_toggle_view(mainwin->summaryview);
+ }
+
+-static void toggle_toolbar_cb(MainWindow *mainwin, guint action,
+- GtkWidget *widget)
+-{
+- toolbar_toggle(action, mainwin);
+-}
+-
+ static void main_window_reply_cb(MainWindow *mainwin, guint action,
+ GtkWidget *widget)
+ {
+Index: claws-mail-2.9.1/src/prefs_common.c
+===================================================================
+--- claws-mail-2.9.1.orig/src/prefs_common.c 2007-04-25 07:40:10.000000000 +0100
++++ claws-mail-2.9.1/src/prefs_common.c 2007-04-25 07:42:17.000000000 +0100
+@@ -262,7 +262,7 @@
+ {"default_reply_list", "TRUE", &prefs_common.default_reply_list, P_BOOL,
+ NULL, NULL, NULL},
+
+-#ifndef MAEMO
++#if 0
+ {"show_ruler", "TRUE", &prefs_common.show_ruler, P_BOOL,
+ NULL, NULL, NULL},
+ #else
+@@ -300,7 +300,7 @@
+ &prefs_common.normalfont_gtk1, P_STRING, NULL, NULL, NULL},
+
+ /* new fonts */
+-#ifndef MAEMO
++#if 0
+ {"widget_font_gtk2", NULL,
+ &SPECIFIC_PREFS.widgetfont, P_STRING, NULL, NULL, NULL},
+ {"message_font_gtk2", "Monospace 9",
+@@ -416,7 +416,7 @@
+
+ {"enable_thread", "TRUE", &prefs_common.enable_thread, P_BOOL,
+ NULL, NULL, NULL},
+-#ifndef MAEMO
++#if 0
+ {"toolbar_style", "3", &prefs_common.toolbar_style, P_ENUM,
+ NULL, NULL, NULL},
+ #else
+@@ -544,7 +544,7 @@
+ {"folder_col_pos_total", "3",
+ &prefs_common.folder_col_pos[F_COL_TOTAL], P_INT, NULL, NULL, NULL},
+
+-#ifndef MAEMO
++#if 0
+ {"folder_col_size_folder", "120",
+ &prefs_common.folder_col_size[F_COL_FOLDER], P_INT, NULL, NULL, NULL},
+ {"folder_col_size_new", "32",
+@@ -702,7 +702,7 @@
+ &SPECIFIC_PREFS.mime_open_cmd, P_STRING, NULL, NULL, NULL},
+
+ /* Interface */
+-#ifndef MAEMO
++#if 0
+ {"layout_mode", "0", &prefs_common.layout_mode, P_INT,
+ NULL, NULL, NULL},
+ #else
+Index: claws-mail-2.9.1/src/toolbar.c
+===================================================================
+--- claws-mail-2.9.1.orig/src/toolbar.c 2007-04-25 07:40:10.000000000 +0100
++++ claws-mail-2.9.1/src/toolbar.c 2007-04-25 07:42:17.000000000 +0100
+@@ -841,26 +841,17 @@
+ gtk_widget_hide(handlebox_wid);
+ break;
+ case TOOLBAR_ICON:
+- gtk_toolbar_set_style(GTK_TOOLBAR(toolbar_wid),
+- GTK_TOOLBAR_ICONS);
+- break;
+ case TOOLBAR_TEXT:
+- gtk_toolbar_set_style(GTK_TOOLBAR(toolbar_wid),
+- GTK_TOOLBAR_TEXT);
+- break;
+ case TOOLBAR_BOTH:
+- gtk_toolbar_set_style(GTK_TOOLBAR(toolbar_wid),
+- GTK_TOOLBAR_BOTH);
+- break;
+ case TOOLBAR_BOTH_HORIZ:
+ gtk_toolbar_set_style(GTK_TOOLBAR(toolbar_wid),
+- GTK_TOOLBAR_BOTH_HORIZ);
++ GTK_TOOLBAR_ICONS);
+ break;
+ default:
+ return;
+ }
+
+- prefs_common.toolbar_style = (ToolbarStyle)action;
++ prefs_common.toolbar_style = (ToolbarStyle)TOOLBAR_ICON;
+ gtk_widget_set_size_request(handlebox_wid, 1, -1);
+
+ if (prefs_common.toolbar_style != TOOLBAR_NONE) {
+@@ -1594,7 +1585,7 @@
+ gtk_container_add(GTK_CONTAINER(container), toolbar);
+ gtk_container_set_border_width(GTK_CONTAINER(container), 2);
+ gtk_toolbar_set_orientation(GTK_TOOLBAR(toolbar), GTK_ORIENTATION_HORIZONTAL);
+- gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH);
++ gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);
+
+ for (cur = toolbar_list; cur != NULL; cur = cur->next) {
+
+Index: claws-mail-2.9.1/src/gtk/prefswindow.c
+===================================================================
+--- claws-mail-2.9.1.orig/src/gtk/prefswindow.c 2007-04-25 07:40:10.000000000 +0100
++++ claws-mail-2.9.1/src/gtk/prefswindow.c 2007-04-25 10:30:15.000000000 +0100
+@@ -343,6 +343,10 @@
+ gint x = gdk_screen_width();
+ gint y = gdk_screen_height();
+ static GdkGeometry geometry;
++ gint col_count = g_slist_length (prefs_pages);
++
++ if (col_count > 1)
++ col_count = 2;
+
+ prefswindow = g_new0(PrefsWindow, 1);
+
+@@ -360,39 +364,52 @@
+ gtk_window_set_resizable (GTK_WINDOW(prefswindow->window), TRUE);
+ gtk_container_set_border_width(GTK_CONTAINER(prefswindow->window), 4);
+
+- prefswindow->table1 = gtk_table_new(2, 2, FALSE);
++ prefswindow->table1 = gtk_table_new(col_count, col_count, FALSE);
+ gtk_widget_show(prefswindow->table1);
+ gtk_container_add(GTK_CONTAINER(prefswindow->window), prefswindow->table1);
+
+- prefswindow->scrolledwindow1 = gtk_scrolled_window_new(NULL, NULL);
+- gtk_widget_show(prefswindow->scrolledwindow1);
+- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(prefswindow->scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+- gtk_table_attach(GTK_TABLE(prefswindow->table1), prefswindow->scrolledwindow1, 0, 1, 0, 1, GTK_FILL, GTK_FILL | GTK_EXPAND, 2, 2);
+-
+- prefswindow->tree_view = prefswindow_tree_view_create(prefswindow);
+- gtk_widget_show(prefswindow->tree_view);
+- gtk_container_add(GTK_CONTAINER(prefswindow->scrolledwindow1),
+- prefswindow->tree_view);
+-
+- prefswindow->frame = gtk_frame_new(NULL);
+- gtk_widget_show(prefswindow->frame);
+- gtk_frame_set_shadow_type(GTK_FRAME(prefswindow->frame), GTK_SHADOW_IN);
+- gtk_table_attach(GTK_TABLE(prefswindow->table1), prefswindow->frame, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, 2, 2);
+-
+- prefswindow->table2 = gtk_table_new(1, 2, FALSE);
+- gtk_widget_show(prefswindow->table2);
+- gtk_container_add(GTK_CONTAINER(prefswindow->frame), prefswindow->table2);
+-
+- prefswindow->labelframe = gtk_frame_new(NULL);
+- gtk_widget_show(prefswindow->labelframe);
+- gtk_frame_set_shadow_type(GTK_FRAME(prefswindow->labelframe), GTK_SHADOW_OUT);
+- gtk_table_attach(GTK_TABLE(prefswindow->table2), prefswindow->labelframe, 0, 1, 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL, 1, 1);
+-
+- prefswindow->pagelabel = gtk_label_new("");
+- gtk_widget_show(prefswindow->pagelabel);
+- gtk_label_set_justify(GTK_LABEL(prefswindow->pagelabel), GTK_JUSTIFY_LEFT);
+- gtk_misc_set_alignment(GTK_MISC(prefswindow->pagelabel), 0, 0.0);
+- gtk_container_add(GTK_CONTAINER(prefswindow->labelframe), prefswindow->pagelabel);
++ if (col_count > 1)
++ {
++ prefswindow->scrolledwindow1 = gtk_scrolled_window_new(NULL, NULL);
++ gtk_widget_show(prefswindow->scrolledwindow1);
++ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(prefswindow->scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
++ gtk_table_attach(GTK_TABLE(prefswindow->table1), prefswindow->scrolledwindow1, 0, 1, 0, 1, GTK_FILL, GTK_FILL | GTK_EXPAND, 2, 2);
++
++ prefswindow->tree_view = prefswindow_tree_view_create(prefswindow);
++ gtk_widget_show(prefswindow->tree_view);
++ gtk_container_add(GTK_CONTAINER(prefswindow->scrolledwindow1),
++ prefswindow->tree_view);
++
++ prefswindow->frame = gtk_frame_new(NULL);
++ gtk_widget_show(prefswindow->frame);
++ gtk_frame_set_shadow_type(GTK_FRAME(prefswindow->frame), GTK_SHADOW_IN);
++ gtk_table_attach(GTK_TABLE(prefswindow->table1), prefswindow->frame, col_count - 1, col_count, 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, 2, 2);
++
++ prefswindow->table2 = gtk_table_new(1, 2, FALSE);
++ gtk_widget_show(prefswindow->table2);
++ gtk_container_add(GTK_CONTAINER(prefswindow->frame), prefswindow->table2);
++ }
++ else
++ {
++ prefswindow->table2 = gtk_table_new(1, 2, FALSE);
++ gtk_widget_show(prefswindow->table2);
++ gtk_table_attach(GTK_TABLE(prefswindow->table1), prefswindow->table2, 0, 1, 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, 2, 2);
++ }
++
++
++ if (col_count > 1)
++ {
++ prefswindow->labelframe = gtk_frame_new(NULL);
++ gtk_widget_show(prefswindow->labelframe);
++ gtk_frame_set_shadow_type(GTK_FRAME(prefswindow->labelframe), GTK_SHADOW_OUT);
++ gtk_table_attach(GTK_TABLE(prefswindow->table2), prefswindow->labelframe, 0, 1, 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL, 1, 1);
++
++ prefswindow->pagelabel = gtk_label_new("");
++ gtk_widget_show(prefswindow->pagelabel);
++ gtk_label_set_justify(GTK_LABEL(prefswindow->pagelabel), GTK_JUSTIFY_LEFT);
++ gtk_misc_set_alignment(GTK_MISC(prefswindow->pagelabel), 0, 0.0);
++ gtk_container_add(GTK_CONTAINER(prefswindow->labelframe), prefswindow->pagelabel);
++ }
+
+ prefswindow->scrolledwindow2 = gtk_scrolled_window_new(NULL, NULL);
+ gtk_widget_show(prefswindow->scrolledwindow2);
+@@ -411,9 +428,38 @@
+ gtk_widget_show(prefswindow->empty_page);
+ gtk_container_add(GTK_CONTAINER(prefswindow->notebook), prefswindow->empty_page);
+
+- prefswindow_build_tree(prefswindow->tree_view, prefs_pages);
++ if (col_count > 1)
++ {
++ prefswindow_build_tree(prefswindow->tree_view, prefs_pages);
++
++ gtk_widget_grab_focus(prefswindow->tree_view);
++ }
++ else
++ {
++ PrefsPage * page = prefs_pages->data;
++ gint pagenum;
++ GtkAdjustment *adj;
++
++ if (!page->page_open)
++ {
++ page->create_widget(page,
++ GTK_WINDOW(prefswindow->window),
++ prefswindow->data);
++ gtk_container_add(GTK_CONTAINER(prefswindow->notebook),
++ page->widget);
++ page->page_open = TRUE;
++ }
++
++ pagenum = gtk_notebook_page_num(GTK_NOTEBOOK(prefswindow->notebook),
++ page->widget);
++ gtk_notebook_set_current_page(GTK_NOTEBOOK(prefswindow->notebook),
++ pagenum);
+
+- gtk_widget_grab_focus(prefswindow->tree_view);
++ adj = gtk_scrolled_window_get_vadjustment(
++ GTK_SCROLLED_WINDOW(prefswindow->scrolledwindow2));
++ gtk_adjustment_set_value(adj, 0);
++
++ }
+
+ gtkut_stock_button_set_create(&prefswindow->confirm_area,
+ &prefswindow->apply_btn, GTK_STOCK_APPLY,
+@@ -440,28 +486,6 @@
+ G_CALLBACK(prefswindow_key_pressed), &(prefswindow->window));
+ #endif
+
+- /* connect to callback only if we hhave non-NULL pointers to store size to */
+- if (prefswindow->save_width && prefswindow->save_height) {
+- g_signal_connect(G_OBJECT(prefswindow->window), "size_allocate",
+- G_CALLBACK(prefs_size_allocate_cb), prefswindow);
+- }
+-
+- if (!geometry.min_height) {
+-
+- if (x < 800 && y < 600) {
+- geometry.min_width = 600;
+- geometry.min_height = 440;
+- } else {
+- geometry.min_width = 700;
+- geometry.min_height = 550;
+- }
+- }
+- gtk_window_set_geometry_hints(GTK_WINDOW(prefswindow->window), NULL, &geometry,
+- GDK_HINT_MIN_SIZE);
+- if (prefswindow->save_width && prefswindow->save_height) {
+- gtk_widget_set_size_request(prefswindow->window, *(prefswindow->save_width),
+- *(prefswindow->save_height));
+- }
+
+ gtk_widget_show(prefswindow->window);
+ #ifdef MAEMO
+Index: claws-mail-2.9.1/src/compose.c
+===================================================================
+--- claws-mail-2.9.1.orig/src/compose.c 2007-04-25 07:40:10.000000000 +0100
++++ claws-mail-2.9.1/src/compose.c 2007-04-25 10:18:13.000000000 +0100
+@@ -352,9 +352,6 @@
+
+ /* callback functions */
+
+-static gboolean compose_edit_size_alloc (GtkEditable *widget,
+- GtkAllocation *allocation,
+- GtkSHRuler *shruler);
+ static void account_activated (GtkComboBox *optmenu,
+ gpointer data);
+ static void attach_selected (GtkTreeView *tree_view,
+@@ -439,9 +436,6 @@
+ guint action,
+ GtkWidget *widget);
+
+-static void compose_toggle_ruler_cb (gpointer data,
+- guint action,
+- GtkWidget *widget);
+ static void compose_toggle_sign_cb (gpointer data,
+ guint action,
+ GtkWidget *widget);
+@@ -788,7 +782,6 @@
+ ENC_ACTION(C_WINDOWS_874)},
+
+ {N_("/_Tools"), NULL, NULL, 0, "<Branch>"},
+- {N_("/_Tools/Show _ruler"), NULL, compose_toggle_ruler_cb, 0, "<ToggleItem>"},
+ {N_("/_Tools/_Address book"), "<shift><control>A", compose_address_cb , 0, NULL},
+ {N_("/_Tools/_Template"), NULL, NULL, 0, "<Branch>"},
+ {N_("/_Tools/Actio_ns"), NULL, NULL, 0, "<Branch>"},
+@@ -2067,7 +2060,6 @@
+ menu_set_sensitive(ifactory, "/Message/Insert signature", FALSE);
+ menu_set_sensitive(ifactory, "/Edit", FALSE);
+ menu_set_sensitive(ifactory, "/Options", FALSE);
+- menu_set_sensitive(ifactory, "/Tools/Show ruler", FALSE);
+ menu_set_sensitive(ifactory, "/Tools/Actions", FALSE);
+
+ if (compose->toolbar->draft_btn)
+@@ -5684,7 +5676,7 @@
+ g_signal_connect(G_OBJECT(GTK_COMBO(combo)->entry), "grab_focus",
+ G_CALLBACK(compose_grab_focus_cb), compose);
+ gtk_widget_show(combo);
+- gtk_table_attach(GTK_TABLE(compose->header_table), combo, 0, 1, compose->header_nextrow, compose->header_nextrow+1, GTK_SHRINK, GTK_FILL, 0, 0);
++ gtk_table_attach(GTK_TABLE(compose->header_table), combo, 0, 1, compose->header_nextrow, compose->header_nextrow+1, GTK_FILL, GTK_FILL, 0, 0);
+ if (compose->header_last) {
+ const gchar *last_header_entry = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(compose->header_last->combo)->entry));
+ string = headers;
+@@ -5778,7 +5770,7 @@
+
+ static GtkWidget *compose_create_header(Compose *compose)
+ {
+- GtkWidget *from_optmenu_hbox;
++ GtkWidget *from_optmenu;
+ GtkWidget *header_scrolledwin;
+ GtkWidget *header_table;
+
+@@ -5788,18 +5780,20 @@
+ header_scrolledwin = gtk_scrolled_window_new(NULL, NULL);
+ gtk_widget_show(header_scrolledwin);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(header_scrolledwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+-
+ header_table = gtk_table_new(2, 2, FALSE);
++ gtk_table_set_col_spacings (GTK_TABLE (header_table), BORDER_WIDTH);
+ gtk_widget_show(header_table);
+ gtk_container_set_border_width(GTK_CONTAINER(header_table), BORDER_WIDTH);
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(header_scrolledwin), header_table);
+- gtk_viewport_set_shadow_type(GTK_VIEWPORT(GTK_BIN(header_scrolledwin)->child), GTK_SHADOW_ETCHED_IN);
++ gtk_viewport_set_shadow_type(GTK_VIEWPORT(GTK_BIN(header_scrolledwin)->child), GTK_SHADOW_NONE);
+ count = 0;
+
+ /* option menu for selecting accounts */
+- from_optmenu_hbox = compose_account_option_menu_create(compose);
+- gtk_table_attach(GTK_TABLE(header_table), from_optmenu_hbox,
+- 0, 2, count, count + 1, GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0);
++ from_optmenu = compose_account_option_menu_create(compose);
++ gtk_table_attach(GTK_TABLE(header_table), from_optmenu,
++ 0, 1, count, count + 1, GTK_FILL, GTK_FILL, 0, 0);
++ gtk_table_attach(GTK_TABLE(header_table), compose->from_name,
++ 1, 2, count, count + 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ count++;
+
+ compose->header_table = header_table;
+@@ -6140,15 +6134,12 @@
+ GtkWidget *vbox2;
+
+ GtkWidget *label;
+- GtkWidget *subject_hbox;
+- GtkWidget *subject_frame;
++ GtkWidget *edit_frame;
+ GtkWidget *subject_entry;
+ GtkWidget *subject;
+ GtkWidget *paned;
+
+ GtkWidget *edit_vbox;
+- GtkWidget *ruler_hbox;
+- GtkWidget *ruler;
+ GtkWidget *scrolledwin;
+ GtkWidget *text;
+ GtkTextBuffer *buffer;
+@@ -6169,8 +6160,6 @@
+ GtkAspell * gtkaspell = NULL;
+ #endif
+
+- static GdkGeometry geometry;
+-
+ g_return_val_if_fail(account != NULL, NULL);
+
+ debug_print("Creating compose window...\n");
+@@ -6190,28 +6179,6 @@
+
+ window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "compose");
+
+- gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
+- gtk_widget_set_size_request(window, -1, prefs_common.compose_height);
+-
+- if (!geometry.max_width) {
+- geometry.max_width = gdk_screen_width();
+- geometry.max_height = gdk_screen_height();
+- }
+-
+- gtk_window_set_geometry_hints(GTK_WINDOW(window), NULL,
+- &geometry, GDK_HINT_MAX_SIZE);
+- if (!geometry.min_width) {
+- geometry.min_width = 600;
+- geometry.min_height = 480;
+- }
+- gtk_window_set_geometry_hints(GTK_WINDOW(window), NULL,
+- &geometry, GDK_HINT_MIN_SIZE);
+-
+-#ifndef MAEMO
+- if (compose_force_window_origin)
+- gtk_widget_set_uposition(window, prefs_common.compose_x,
+- prefs_common.compose_y);
+-#endif
+ g_signal_connect(G_OBJECT(window), "delete_event",
+ G_CALLBACK(compose_delete_cb), compose);
+ MANAGE_WINDOW_SIGNALS_CONNECT(window);
+@@ -6227,11 +6194,7 @@
+ n_menu_entries, "<Compose>", compose);
+ gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, TRUE, 0);
+
+- if (prefs_common.toolbar_detachable) {
+- handlebox = gtk_handle_box_new();
+- } else {
+- handlebox = gtk_hbox_new(FALSE, 0);
+- }
++ handlebox = gtk_hbox_new(FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), handlebox, FALSE, FALSE, 0);
+
+ gtk_widget_realize(handlebox);
+@@ -6244,7 +6207,6 @@
+
+ /* Notebook */
+ notebook = gtk_notebook_new();
+- gtk_widget_set_size_request(notebook, -1, 130);
+ gtk_widget_show(notebook);
+
+ /* header labels and entries */
+@@ -6258,18 +6220,10 @@
+ /* Others Tab */
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
+ compose_create_others(compose),
+- gtk_label_new_with_mnemonic(_("Othe_rs")));
++ gtk_label_new_with_mnemonic(_("Othe_r")));
+
+ /* Subject */
+- subject_hbox = gtk_hbox_new(FALSE, 0);
+- gtk_widget_show(subject_hbox);
+-
+- subject_frame = gtk_frame_new(NULL);
+- gtk_frame_set_shadow_type(GTK_FRAME(subject_frame), GTK_SHADOW_NONE);
+- gtk_box_pack_start(GTK_BOX(subject_hbox), subject_frame, TRUE, TRUE, 0);
+- gtk_widget_show(subject_frame);
+-
+- subject = gtk_hbox_new(FALSE, HSPACING_NARROW);
++ subject = gtk_hbox_new(FALSE, BORDER_WIDTH);
+ gtk_container_set_border_width(GTK_CONTAINER(subject), 0);
+ gtk_widget_show(subject);
+
+@@ -6283,20 +6237,16 @@
+ G_CALLBACK(compose_grab_focus_cb), compose);
+ gtk_widget_show(subject_entry);
+ compose->subject_entry = subject_entry;
+- gtk_container_add(GTK_CONTAINER(subject_frame), subject);
+
+- edit_vbox = gtk_vbox_new(FALSE, 0);
++ edit_vbox = gtk_vbox_new(FALSE, BORDER_WIDTH);
++ gtk_container_set_border_width(GTK_CONTAINER(edit_vbox), BORDER_WIDTH);
+
+- gtk_box_pack_start(GTK_BOX(edit_vbox), subject_hbox, FALSE, FALSE, 0);
++ gtk_box_pack_start(GTK_BOX(edit_vbox), subject, FALSE, FALSE, 0);
+
+- /* ruler */
+- ruler_hbox = gtk_hbox_new(FALSE, 0);
+- gtk_box_pack_start(GTK_BOX(edit_vbox), ruler_hbox, FALSE, FALSE, 0);
+-
+- ruler = gtk_shruler_new();
+- gtk_ruler_set_range(GTK_RULER(ruler), 0.0, 100.0, 1.0, 100.0);
+- gtk_box_pack_start(GTK_BOX(ruler_hbox), ruler, TRUE, TRUE,
+- BORDER_WIDTH);
++ edit_frame = gtk_frame_new(NULL);
++ gtk_frame_set_shadow_type(GTK_FRAME(edit_frame), GTK_SHADOW_IN);
++ gtk_widget_show(edit_frame);
++ gtk_container_add(GTK_CONTAINER(edit_frame), edit_vbox);
+
+ /* text widget */
+ scrolledwin = gtk_scrolled_window_new(NULL, NULL);
+@@ -6317,9 +6267,6 @@
+
+ gtk_container_add(GTK_CONTAINER(scrolledwin), text);
+
+- g_signal_connect_after(G_OBJECT(text), "size_allocate",
+- G_CALLBACK(compose_edit_size_alloc),
+- ruler);
+ g_signal_connect(G_OBJECT(buffer), "changed",
+ G_CALLBACK(compose_changed_cb), compose);
+ g_signal_connect(G_OBJECT(text), "grab_focus",
+@@ -6363,7 +6310,7 @@
+ gtk_widget_set_size_request(edit_vbox, -1, mode == COMPOSE_NEW ? 250 : 230);
+ #endif
+ gtk_paned_add1(GTK_PANED(paned), notebook);
+- gtk_paned_add2(GTK_PANED(paned), edit_vbox);
++ gtk_paned_add2(GTK_PANED(paned), edit_frame);
+ gtk_widget_show_all(paned);
+
+
+@@ -6408,8 +6355,6 @@
+
+ compose->notebook = notebook;
+ compose->edit_vbox = edit_vbox;
+- compose->ruler_hbox = ruler_hbox;
+- compose->ruler = ruler;
+ compose->scrolledwin = scrolledwin;
+ compose->text = text;
+
+@@ -6531,13 +6476,6 @@
+
+ compose_list = g_list_append(compose_list, compose);
+
+- if (!prefs_common.show_ruler)
+- gtk_widget_hide(ruler_hbox);
+-
+- menuitem = gtk_item_factory_get_item(ifactory, "/Tools/Show ruler");
+- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem),
+- prefs_common.show_ruler);
+-
+ /* Priority */
+ compose->priority = PRIORITY_NORMAL;
+ compose_update_priority_menu_item(compose);
+@@ -6568,7 +6506,6 @@
+ static GtkWidget *compose_account_option_menu_create(Compose *compose)
+ {
+ GList *accounts;
+- GtkWidget *hbox;
+ GtkWidget *optmenu;
+ GtkWidget *optmenubox;
+ GtkListStore *menu;
+@@ -6584,7 +6521,6 @@
+ optmenu = gtkut_sc_combobox_create(optmenubox, FALSE);
+ menu = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu)));
+
+- hbox = gtk_hbox_new(FALSE, 6);
+ from_name = gtk_entry_new();
+
+ g_signal_connect_after(G_OBJECT(from_name), "grab_focus",
+@@ -6623,9 +6559,6 @@
+ G_CALLBACK(account_activated),
+ compose);
+
+- gtk_box_pack_start(GTK_BOX(hbox), optmenubox, FALSE, FALSE, 0);
+- gtk_box_pack_start(GTK_BOX(hbox), from_name, TRUE, TRUE, 0);
+-
+ gtk_tooltips_set_tip(compose->tooltips, optmenubox,
+ _("Account to use for this email"), NULL);
+ gtk_tooltips_set_tip(compose->tooltips, from_name,
+@@ -6633,7 +6566,7 @@
+
+ compose->from_name = from_name;
+
+- return hbox;
++ return optmenubox;
+ }
+
+ static void compose_set_priority_cb(gpointer data,
+@@ -7851,32 +7784,6 @@
+
+ /* callback functions */
+
+-/* compose_edit_size_alloc() - called when resized. don't know whether Gtk
+- * includes "non-client" (windows-izm) in calculation, so this calculation
+- * may not be accurate.
+- */
+-static gboolean compose_edit_size_alloc(GtkEditable *widget,
+- GtkAllocation *allocation,
+- GtkSHRuler *shruler)
+-{
+- if (prefs_common.show_ruler) {
+- gint char_width = 0, char_height = 0;
+- gint line_width_in_chars;
+-
+- gtkut_get_font_size(GTK_WIDGET(widget),
+- &char_width, &char_height);
+- line_width_in_chars =
+- (allocation->width - allocation->x) / char_width;
+-
+- /* got the maximum */
+- gtk_ruler_set_range(GTK_RULER(shruler),
+- 0.0, line_width_in_chars, 0,
+- /*line_width_in_chars*/ char_width);
+- }
+-
+- return TRUE;
+-}
+-
+ static void account_activated(GtkComboBox *optmenu, gpointer data)
+ {
+ Compose *compose = (Compose *)data;
+@@ -9040,21 +8947,6 @@
+ compose_update_privacy_system_menu_item(compose, warn);
+ }
+
+-static void compose_toggle_ruler_cb(gpointer data, guint action,
+- GtkWidget *widget)
+-{
+- Compose *compose = (Compose *)data;
+-
+- if (GTK_CHECK_MENU_ITEM(widget)->active) {
+- gtk_widget_show(compose->ruler_hbox);
+- prefs_common.show_ruler = TRUE;
+- } else {
+- gtk_widget_hide(compose->ruler_hbox);
+- gtk_widget_queue_resize(compose->edit_vbox);
+- prefs_common.show_ruler = FALSE;
+- }
+-}
+-
+ static void compose_attach_drag_received_cb (GtkWidget *widget,
+ GdkDragContext *context,
+ gint x,
+Index: claws-mail-2.9.1/src/folderview.c
+===================================================================
+--- claws-mail-2.9.1.orig/src/folderview.c 2007-04-03 19:10:25.000000000 +0100
++++ claws-mail-2.9.1/src/folderview.c 2007-04-25 10:28:00.000000000 +0100
+@@ -73,6 +73,11 @@
+ #define COL_FOLDER_WIDTH 150
+ #define COL_NUM_WIDTH 32
+
++/* added dummy column to stop the last column from
++ * resizing insanely in small screen view
++ */
++#define _N_FOLDER_COLS (N_FOLDER_COLS + 1)
++
+ static GList *folderview_list = NULL;
+
+ static GtkStyle *normal_style;
+@@ -448,7 +453,7 @@
+ gint *col_pos;
+ FolderColumnState *col_state;
+ FolderColumnType type;
+- gchar *titles[N_FOLDER_COLS];
++ gchar *titles[_N_FOLDER_COLS];
+ gint i;
+ GtkWidget *scrolledwin = folderview->scrolledwin;
+
+@@ -471,8 +476,9 @@
+ titles[col_pos[F_COL_UNREAD]] = _("Unread");
+ /* TRANSLATORS: This in Number sign in American style */
+ titles[col_pos[F_COL_TOTAL]] = _("#");
++ titles[F_COL_DUMMY] = "";
+
+- ctree = gtk_sctree_new_with_titles(N_FOLDER_COLS, col_pos[F_COL_FOLDER],
++ ctree = gtk_sctree_new_with_titles(_N_FOLDER_COLS, col_pos[F_COL_FOLDER],
+ titles);
+
+ gtk_clist_set_selection_mode(GTK_CLIST(ctree), GTK_SELECTION_BROWSE);
+@@ -510,6 +516,9 @@
+ (GTK_CLIST(ctree), i, col_state[i].visible);
+ }
+
++ GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(ctree)->column[i].button,
++ GTK_CAN_FOCUS);
++
+ g_signal_connect(G_OBJECT(ctree), "key_press_event",
+ G_CALLBACK(folderview_key_pressed),
+ folderview);
+@@ -605,9 +614,6 @@
+ (GTK_SCROLLED_WINDOW(scrolledwin),
+ GTK_POLICY_AUTOMATIC,
+ prefs_common.folderview_vscrollbar_policy);
+- gtk_widget_set_size_request(scrolledwin,
+- prefs_common.folderview_width,
+- prefs_common.folderview_height);
+
+ folderview->scrolledwin = scrolledwin;
+ ctree = folderview_ctree_create(folderview);
+@@ -2268,7 +2274,7 @@
+ static void folderview_create_folder_node(FolderView *folderview, FolderItem *item)
+ {
+ GtkCTree *ctree = GTK_CTREE(folderview->ctree);
+- gchar *text[N_FOLDER_COLS] = {NULL, "0", "0", "0"};
++ gchar *text[_N_FOLDER_COLS] = {NULL, "0", "0", "0", ""};
+ GtkCTreeNode *node, *parent_node;
+ gint *col_pos = folderview->col_pos;
+ FolderItemUpdateData hookdata;
+Index: claws-mail-2.9.1/src/folderview.h
+===================================================================
+--- claws-mail-2.9.1.orig/src/folderview.h 2007-03-22 17:22:52.000000000 +0000
++++ claws-mail-2.9.1/src/folderview.h 2007-04-25 10:16:55.000000000 +0100
+@@ -37,7 +37,8 @@
+ F_COL_FOLDER,
+ F_COL_NEW,
+ F_COL_UNREAD,
+- F_COL_TOTAL
++ F_COL_TOTAL,
++ F_COL_DUMMY
+ } FolderColumnType;
+
+ #define N_FOLDER_COLS 4
diff --git a/recipes/sylpheed/files/sylpheed-2.2.2-libsylph-Makefile-am.patch b/recipes/sylpheed/files/sylpheed-2.2.2-libsylph-Makefile-am.patch
new file mode 100644
index 0000000000..e4570acb9d
--- /dev/null
+++ b/recipes/sylpheed/files/sylpheed-2.2.2-libsylph-Makefile-am.patch
@@ -0,0 +1,11 @@
+--- sylpheed-2.2.2/libsylph/Makefile.am.orig 2006-03-03 14:45:37.000000000 -0800
++++ sylpheed-2.2.2/libsylph/Makefile.am 2006-03-03 14:45:50.000000000 -0800
+@@ -3,7 +3,7 @@
+ -DG_LOG_DOMAIN=\"LibSylph\" \
+ -DSYSCONFDIR=\""$(sysconfdir)"\"
+
+-INCLUDES = $(GLIB_CFLAGS) -I$(top_srcdir) -I$(includedir)
++INCLUDES = $(GLIB_CFLAGS) -I$(top_srcdir)
+
+ #lib_LTLIBRARIES = libsylph.la
+ noinst_LTLIBRARIES = libsylph.la
diff --git a/recipes/sylpheed/files/sylpheed-2.2.2-src-Makefile-am.patch b/recipes/sylpheed/files/sylpheed-2.2.2-src-Makefile-am.patch
new file mode 100644
index 0000000000..4e1fe97378
--- /dev/null
+++ b/recipes/sylpheed/files/sylpheed-2.2.2-src-Makefile-am.patch
@@ -0,0 +1,11 @@
+--- sylpheed-2.2.2/src/Makefile.am.orig 2006-03-03 14:41:42.000000000 -0800
++++ sylpheed-2.2.2/src/Makefile.am 2006-03-03 14:42:45.000000000 -0800
+@@ -102,8 +102,6 @@
+ -DG_LOG_DOMAIN=\"Sylpheed\" \
+ $(GTK_CFLAGS) \
+ $(GDK_PIXBUF_CFLAGS) \
+- $(GPGME_CFLAGS) \
+- -I$(includedir) \
+ -I$(top_srcdir)/libsylph
+
+ if HAVE_WINDRES
diff --git a/recipes/sylpheed/files/sylpheed-gnutls_2.2.4.patch b/recipes/sylpheed/files/sylpheed-gnutls_2.2.4.patch
new file mode 100644
index 0000000000..2bc27a484f
--- /dev/null
+++ b/recipes/sylpheed/files/sylpheed-gnutls_2.2.4.patch
@@ -0,0 +1,140 @@
+--- sylpheed-2.2.4/config.h.in.orig 2005-11-16 10:12:37.000000000 +0000
++++ sylpheed-2.2.4/config.h.in 2006-04-28 11:36:36.000000000 +0100
+@@ -251,6 +251,9 @@
+ /* Define to 1 if your <sys/time.h> declares `struct tm'. */
+ #undef TM_IN_SYS_TIME
+
++/* Define if you use GnuTLS to support SSL. */
++#undef USE_GNUTLS
++
+ /* Define if you use GPGME to support OpenPGP. */
+ #undef USE_GPGME
+
+@@ -264,6 +267,9 @@
+ #undef USE_LDAP
+
+ /* Define if you use OpenSSL to support SSL. */
++#undef USE_OPENSSL
++
++/* Define if SSL is supported. */
+ #undef USE_SSL
+
+ /* Whether to use multithread or not */
+--- sylpheed-2.2.4/configure.in.orig 2006-03-24 04:22:10.000000000 +0000
++++ sylpheed-2.2.4/configure.in 2006-04-28 11:36:36.000000000 +0100
+@@ -231,7 +231,8 @@
+ #include <openssl/opensslv.h>
+ ], [ return OPENSSL_VERSION_NUMBER; ],
+ [ AC_MSG_RESULT(yes)
+- AC_DEFINE(USE_SSL, 1, Define if you use OpenSSL to support SSL.) ],
++ AC_DEFINE(USE_SSL, 1, Define if SSL is supported.)
++ AC_DEFINE(USE_OPENSSL, 1, Define if you use OpenSSL to support SSL.) ],
+ [ AC_MSG_RESULT(no)
+ LIBS="$ac_save_LIBS"
+ ac_cv_enable_ssl=no ])
+@@ -240,6 +241,27 @@
+ AC_MSG_RESULT(no)
+ fi
+
++AC_ARG_ENABLE(gnutls,
++ [ --enable-gnutls Enable SSL support using GnuTLS [default=no]],
++ [ac_cv_enable_gnutls=$enableval], [ac_cv_enable_gnutls=no])
++AC_MSG_CHECKING([whether to use GnuTLS])
++if test $ac_cv_enable_gnutls = yes; then
++ AC_MSG_RESULT(yes)
++ AC_MSG_CHECKING([if GnuTLS is available])
++ LIBS="$LIBS -lgnutls-openssl"
++ AC_TRY_LINK([
++#include <gnutls/openssl.h>
++], [ return OPENSSL_VERSION_NUMBER; ],
++ [ AC_MSG_RESULT(yes)
++ AC_DEFINE(USE_SSL, 1, Define if SSL is supported.)
++ AC_DEFINE(USE_GNUTLS, 1, Define if you use GnuTLS to support SSL.) ],
++ [ AC_MSG_RESULT(no)
++ LIBS="$ac_save_LIBS"
++ ac_cv_enable_gnutls=no ])
++else
++ AC_MSG_RESULT(no)
++fi
++
+ dnl Check for X-Face support
+ AC_ARG_ENABLE(compface,
+ [ --disable-compface Do not use compface (X-Face)],
+@@ -400,6 +422,7 @@
+ echo "JPilot : $ac_cv_enable_jpilot"
+ echo "LDAP : $ac_cv_enable_ldap"
+ echo "OpenSSL : $ac_cv_enable_ssl"
++echo "GnuTLS : $ac_cv_enable_gnutls"
+ echo "iconv : $am_cv_func_iconv"
+ echo "compface : $ac_cv_enable_compface"
+ echo "IPv6 : $ac_cv_enable_ipv6"
+--- sylpheed-2.2.4/libsylph/ssl.h.old 2006-04-28 11:36:10.000000000 +0100
++++ sylpheed-2.2.4/libsylph/ssl.h 2006-04-28 11:37:03.000000000 +0100
+@@ -27,11 +27,20 @@
+ #if USE_SSL
+
+ #include <glib.h>
++#if USE_OPENSSL
+ #include <openssl/crypto.h>
+ #include <openssl/x509.h>
+ #include <openssl/pem.h>
+ #include <openssl/ssl.h>
+ #include <openssl/err.h>
++#else
++#if USE_GNUTLS
++#include <gnutls/openssl.h>
++#define X509_V_OK 0
++#else
++#error Must select either GnuTLS or OpenSSL
++#endif
++#endif
+
+ #include "socket.h"
+
+--- sylpheed-2.2.4/libsylph/ssl.c.orig 2006-04-28 20:38:46.000000000 +0100
++++ sylpheed-2.2.4/libsylph/ssl.c 2006-04-28 20:40:22.000000000 +0100
+@@ -54,9 +54,11 @@
+ debug_print(_("SSLv23 not available\n"));
+ } else {
+ debug_print(_("SSLv23 available\n"));
++#if USE_OPENSSL
+ if (certs_dir &&
+ !SSL_CTX_load_verify_locations(ssl_ctx_SSLv23, NULL,
+ certs_dir))
++#endif
+ g_warning("SSLv23 SSL_CTX_load_verify_locations failed.\n");
+ }
+
+@@ -65,9 +67,11 @@
+ debug_print(_("TLSv1 not available\n"));
+ } else {
+ debug_print(_("TLSv1 available\n"));
++#if USE_OPENSSL
+ if (certs_dir &&
+ !SSL_CTX_load_verify_locations(ssl_ctx_TLSv1, NULL,
+ certs_dir))
++#endif
+ g_warning("TLSv1 SSL_CTX_load_verify_locations failed.\n");
+ }
+
+@@ -151,14 +155,19 @@
+ g_free(str);
+ }
+
++#if USE_OPENSSL
+ verify_result = SSL_get_verify_result(sockinfo->ssl);
+ if (verify_result == X509_V_OK)
+ debug_print("SSL verify OK\n");
+ else
++#endif
+ g_warning("%s: SSL certificate verify failed (%ld: %s)\n",
+ sockinfo->hostname, verify_result,
++#if USE_OPENSSL
+ X509_verify_cert_error_string(verify_result));
+-
++#else
++ "Unsupport GnuTLS features");
++#endif
+ X509_free(server_cert);
+ }
+
diff --git a/recipes/sylpheed/sylpheed_2.2.9.bb b/recipes/sylpheed/sylpheed_2.2.9.bb
new file mode 100644
index 0000000000..b22512b32f
--- /dev/null
+++ b/recipes/sylpheed/sylpheed_2.2.9.bb
@@ -0,0 +1,32 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent"
+DEPENDS = "gtk+ gpgme gnutls"
+LICENSE = "GPL"
+PR = "r0"
+
+SRC_URI = "http://sylpheed.good-day.net/sylpheed/v2.2/sylpheed-${PV}.tar.bz2 \
+ file://sylpheed-2.2.2-libsylph-Makefile-am.patch;patch=1 \
+ file://sylpheed-2.2.2-src-Makefile-am.patch;patch=1 \
+ file://sylpheed-gnutls_2.2.4.patch;patch=1"
+
+
+FILES_${PN} = "${bindir} ${datadir}/pixmaps ${datadir}/applications"
+FILES_${PN}-doc += "${datadir}"
+
+EXTRA_OECONF = "--disable-ssl --enable-gnutls"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+do_configure_prepend() {
+ mkdir -p m4
+}
+
+inherit autotools
+
+do_install_append() {
+ install -d ${D}${datadir}/applications
+ install -m 0644 sylpheed.desktop ${D}${datadir}/applications/
+ install -d ${D}${datadir}/pixmaps
+ install -m 0644 sylpheed.png ${D}${datadir}/pixmaps/
+}
+
diff --git a/recipes/sylpheed/sylpheed_2.5.0.bb b/recipes/sylpheed/sylpheed_2.5.0.bb
new file mode 100644
index 0000000000..94c51e4fce
--- /dev/null
+++ b/recipes/sylpheed/sylpheed_2.5.0.bb
@@ -0,0 +1,32 @@
+SECTION = "x11/network"
+DESCRIPTION = "Mail user agent"
+DEPENDS = "gtk+ gpgme gnutls"
+LICENSE = "GPL"
+PR = "r0"
+
+SRC_URI = "http://sylpheed.good-day.net/sylpheed/v2.5/sylpheed-${PV}.tar.bz2 \
+ "
+
+FILES_${PN} = "${bindir} ${datadir}/pixmaps ${datadir}/applications"
+FILES_${PN}-doc += "${datadir}"
+
+EXTRA_OECONF = "--disable-ssl --enable-gnutls"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+do_configure_prepend() {
+ mkdir -p m4
+ for i in $(find ${S} -name "Makefile.am") ; do
+ sed -i s:'-I$(includedir)'::g $i
+ done
+}
+
+inherit autotools
+
+do_install_append() {
+ install -d ${D}${datadir}/applications
+ install -m 0644 sylpheed.desktop ${D}${datadir}/applications/
+ install -d ${D}${datadir}/pixmaps
+ install -m 0644 sylpheed.png ${D}${datadir}/pixmaps/
+}
+