+2006-06-16 [colin] 2.3.0cvs18
+
+ * src/main.c
+ Instead of ignoring SIGPIPE, save caches
+ when getting one. Will fix the fact that
+ hot caches are out-of-date when logging
+ out of Xorg.
+ * src/compose.c
+ * src/prefs_compose_writing.c
+ Only save text (not attachments) when
+ auto-saving to drafts
+ * src/unmime.c
+ Always replace \n, \r and \t with spaces
+ in headers
+ * manual/dist/html/Makefile.am
+ * manual/dist/pdf/Makefile.am
+ * manual/dist/ps/Makefile.am
+ * manual/dist/txt/Makefile.am
+ * manual/fr/dist/html/Makefile.am
+ * manual/fr/dist/pdf/Makefile.am
+ * manual/fr/dist/ps/Makefile.am
+ * manual/fr/dist/txt/Makefile.am
+ * manual/pl/dist/html/Makefile.am
+ * manual/pl/dist/pdf/Makefile.am
+ * manual/pl/dist/ps/Makefile.am
+ * manual/pl/dist/txt/Makefile.am
+ Fix make clean removing pregenerated manuals
+
+
2006-06-16 [colin] 2.3.0cvs17
* src/plugins/pgpcore/sgpgme.c
( diff -u /dev/null tools/make.themes.project; ) > 2.3.0cvs15.patchset
( cvs diff -u -r 1.382.2.277 -r 1.382.2.278 src/compose.c; cvs diff -u -r 1.207.2.103 -r 1.207.2.104 src/folderview.c; cvs diff -u -r 1.28.2.17 -r 1.28.2.18 src/mbox.c; cvs diff -u -r 1.94.2.87 -r 1.94.2.88 src/messageview.c; cvs diff -u -r 1.10.2.8 -r 1.10.2.9 src/privacy.c; cvs diff -u -r 1.10.2.7 -r 1.10.2.8 src/privacy.h; cvs diff -u -r 1.49.2.77 -r 1.49.2.78 src/procmime.c; cvs diff -u -r 1.150.2.68 -r 1.150.2.69 src/procmsg.c; cvs diff -u -r 1.1.2.13 -r 1.1.2.14 src/plugins/pgpcore/passphrase.c; cvs diff -u -r 1.1.2.18 -r 1.1.2.19 src/plugins/pgpcore/sgpgme.c; cvs diff -u -r 1.1.2.12 -r 1.1.2.13 src/plugins/pgpinline/pgpinline.c; cvs diff -u -r 1.1.2.34 -r 1.1.2.35 src/plugins/pgpmime/pgpmime.c; ) > 2.3.0cvs16.patchset
( cvs diff -u -r 1.1.2.19 -r 1.1.2.20 src/plugins/pgpcore/sgpgme.c; cvs diff -u -r 1.1.2.35 -r 1.1.2.36 src/plugins/pgpmime/pgpmime.c; cvs diff -u -r 1.1.2.13 -r 1.1.2.14 src/plugins/pgpinline/pgpinline.c; ) > 2.3.0cvs17.patchset
+( cvs diff -u -r 1.382.2.278 -r 1.382.2.279 src/compose.c; cvs diff -u -r 1.115.2.90 -r 1.115.2.91 src/main.c; cvs diff -u -r 1.1.2.7 -r 1.1.2.8 src/prefs_compose_writing.c; cvs diff -u -r 1.8.2.8 -r 1.8.2.9 src/unmime.c; cvs diff -u -r 1.1.2.3 -r 1.1.2.4 manual/dist/html/Makefile.am; cvs diff -u -r 1.1.2.4 -r 1.1.2.5 manual/dist/pdf/Makefile.am; cvs diff -u -r 1.1.2.3 -r 1.1.2.4 manual/dist/ps/Makefile.am; cvs diff -u -r 1.1.2.3 -r 1.1.2.4 manual/dist/txt/Makefile.am; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 manual/fr/dist/html/Makefile.am; cvs diff -u -r 1.1.2.2 -r 1.1.2.3 manual/fr/dist/pdf/Makefile.am; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 manual/fr/dist/ps/Makefile.am; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 manual/fr/dist/txt/Makefile.am; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 manual/pl/dist/html/Makefile.am; cvs diff -u -r 1.1.2.2 -r 1.1.2.3 manual/pl/dist/pdf/Makefile.am; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 manual/pl/dist/ps/Makefile.am; cvs diff -u -r 1.1.2.1 -r 1.1.2.2 manual/pl/dist/txt/Makefile.am; ) > 2.3.0cvs18.patchset
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=17
+EXTRA_VERSION=18
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
../../sylpheed-claws-manual.xml
-docbook2html -u -o . ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.html
../../sylpheed-claws-manual.xml
-sh ../../xml2pdf ../../dtd/manual.xsl ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.pdf sylpheed-claws-manual.fo sylpheed-claws-manual.xsl
../../sylpheed-claws-manual.xml
-docbook2ps -o . ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.ps
../../sylpheed-claws-manual.xml
-docbook2txt -o . ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.txt
../../sylpheed-claws-manual.xml
-docbook2html -u -o . ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.html
../../sylpheed-claws-manual.xml
-sh ../../../xml2pdf ../../../dtd/manual.xsl ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.pdf sylpheed-claws-manual.fo sylpheed-claws-manual.xsl
../../sylpheed-claws-manual.xml
-docbook2ps -o . ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.ps
../../sylpheed-claws-manual.xml
-docbook2txt -o . ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.txt
../../sylpheed-claws-manual.xml
-docbook2html -u -o . ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.html
../../sylpheed-claws-manual.xml
-sh ../../../xml2pdf ../../../dtd/manual.xsl ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.pdf sylpheed-claws-manual.fo sylpheed-claws-manual.xsl
../../sylpheed-claws-manual.xml
-docbook2ps -o . ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.ps
../../sylpheed-claws-manual.xml
-docbook2txt -o . ../../sylpheed-claws-manual.xml
-clean:
+maintainer-clean:
-rm sylpheed-claws-manual.txt
gboolean check_subject);
static gint compose_write_to_file (Compose *compose,
FILE *fp,
- gint action);
+ gint action,
+ gboolean attach_parts);
static gint compose_write_body_to_file (Compose *compose,
const gchar *file);
static gint compose_remove_reedit_target (Compose *compose,
return -1;
}
-static gint compose_write_to_file(Compose *compose, FILE *fp, gint action)
+static gint compose_write_to_file(Compose *compose, FILE *fp, gint action, gboolean attach_parts)
{
GtkTextBuffer *buffer;
GtkTextIter start, end;
MimeInfo *mimemsg, *mimetext;
gint line;
+ if (action == COMPOSE_WRITE_FOR_SEND)
+ attach_parts = TRUE;
+
/* create message MimeInfo */
mimemsg = procmime_mimeinfo_new();
mimemsg->type = MIMETYPE_MESSAGE;
procmime_encode_content(mimetext, encoding);
/* append attachment parts */
- if (compose_use_attach(compose)) {
+ if (compose_use_attach(compose) && attach_parts) {
MimeInfo *mimempart;
gchar *boundary = NULL;
mimempart = procmime_mimeinfo_new();
}
} else {
gint result = 0;
- if ((result = compose_write_to_file(compose, fp, COMPOSE_WRITE_FOR_SEND)) < 0) {
+ if ((result = compose_write_to_file(compose, fp, COMPOSE_WRITE_FOR_SEND, TRUE)) < 0) {
lock = FALSE;
fclose(fp);
g_unlink(tmp);
/* end of headers */
fprintf(fp, "X-Sylpheed-End-Special-Headers: 1\n");
- if (compose_write_to_file(compose, fp, COMPOSE_WRITE_FOR_STORE) < 0) {
+ if (compose_write_to_file(compose, fp, COMPOSE_WRITE_FOR_STORE, action != COMPOSE_AUTO_SAVE) < 0) {
fclose(fp);
g_unlink(tmp);
g_free(tmp);
procmsg_msginfo_set_flags(newmsginfo, MSG_LOCKED, MSG_DRAFT);
else
procmsg_msginfo_set_flags(newmsginfo, 0, MSG_DRAFT);
- if (compose_use_attach(compose))
+ if (compose_use_attach(compose) && action != COMPOSE_AUTO_SAVE)
procmsg_msginfo_set_flags(newmsginfo, 0,
MSG_HAS_ATTACHMENT);
inc_autocheck_timer_init(mainwin);
- /* ignore SIGPIPE signal for preventing sudden death of program */
-#ifdef G_OS_UNIX
- signal(SIGPIPE, SIG_IGN);
-#endif
if (cmd.online_mode == ONLINE_MODE_OFFLINE) {
main_window_toggle_work_offline(mainwin, TRUE, FALSE);
}
static void save_all_caches(FolderItem *item, gpointer data)
{
+ gint free_caches = GPOINTER_TO_INT(data);
if (!item->cache) {
return;
}
if (item->opened)
folder_item_close(item);
-
- folder_item_free_cache(item, TRUE);
+
+ if (free_caches)
+ folder_item_free_cache(item, TRUE);
+ else
+ folder_item_write_cache(item);
}
static void exit_sylpheed(MainWindow *mainwin)
/* save all state before exiting */
folder_write_list();
- folder_func_to_all_folders(save_all_caches, NULL);
+ folder_func_to_all_folders(save_all_caches, GINT_TO_POINTER(1));
main_window_get_size(mainwin);
main_window_get_position(mainwin);
static void quit_signal_handler(int sig)
{
+#ifdef SIGPIPE
+ if (sig == SIGPIPE) {
+ debug_print("caugth SIGPIPE, maybe X closing!\n");
+ folder_write_list();
+ folder_func_to_all_folders(save_all_caches, GINT_TO_POINTER(0));
+ return;
+ }
+#endif
debug_print("Quitting on signal %d\n", sig);
g_timeout_add(0, clean_quit, NULL);
#ifdef SIGHUP
sigaddset(&mask, SIGHUP);
#endif
+#ifdef SIGPIPE
+ sigaddset(&mask, SIGPIPE);
+#endif
act.sa_handler = quit_signal_handler;
act.sa_mask = mask;
#ifdef SIGHUP
sigaction(SIGHUP, &act, 0);
#endif
+#ifdef SIGPIPE
+ sigaction(SIGPIPE, &act, 0);
+#endif
sigprocmask(SIG_UNBLOCK, &mask, 0);
#endif /* !G_OS_WIN32 */
gtk_box_pack_start (GTK_BOX (vbox2), hbox_autosave, FALSE, FALSE, 0);
PACK_CHECK_BUTTON (hbox_autosave, checkbtn_autosave,
- _("Autosave to Drafts folder every"));
+ _("Autosave message text to Drafts folder every"));
spinbtn_autosave_adj = gtk_adjustment_new (50, 0, 1000, 1, 10, 10);
spinbtn_autosave_length = gtk_spin_button_new
out_str = outbuf->str;
out_len = outbuf->len;
g_string_free(outbuf, FALSE);
+ if (out_str) {
+ while (strchr(out_str, '\n'))
+ *strchr(out_str, '\n') = ' ';
+ while (strchr(out_str, '\r'))
+ *strchr(out_str, '\r') = ' ';
+ while (strchr(out_str, '\t'))
+ *strchr(out_str, '\t') = ' ';
+ }
return g_realloc(out_str, out_len + 1);
}