talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 2ae2d95decceeb625edbfbdeda79a3af43064b2a
parent a5208c04a8e44e7e70dad212e1fa1bebb59294bc
Author: Colin Leroy <colin@colino.net>
Date:   Fri, 21 Aug 2009 16:15:13 +0000

2009-08-21 [colin]	3.7.2cvs24

	* src/compose.c
		Previous commit: move the function into compose_insert_file
		so that it's also used on drag-n-drop

Diffstat:
MChangeLog | 6++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/compose.c | 95++++++++++++++++++++++++++++++++++++++-----------------------------------------
4 files changed, 54 insertions(+), 50 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,9 @@ +2009-08-21 [colin] 3.7.2cvs24 + + * src/compose.c + Previous commit: move the function into compose_insert_file + so that it's also used on drag-n-drop + 2009-08-21 [colin] 3.7.2cvs23 * src/compose.c diff --git a/PATCHSETS b/PATCHSETS @@ -3848,3 +3848,4 @@ ( cvs diff -u -r 1.100.2.72 -r 1.100.2.73 AUTHORS; cvs diff -u -r 1.1.2.60 -r 1.1.2.61 src/gtk/authors.h; cvs diff -u -r 1.36.2.172 -r 1.36.2.173 src/common/utils.c; ) > 3.7.2cvs21.patchset ( cvs diff -u -r 1.382.2.520 -r 1.382.2.521 src/compose.c; cvs diff -u -r 1.204.2.191 -r 1.204.2.192 src/prefs_common.c; cvs diff -u -r 1.103.2.124 -r 1.103.2.125 src/prefs_common.h; cvs diff -u -r 1.1.2.26 -r 1.1.2.27 src/prefs_compose_writing.c; cvs diff -u -r 1.36.2.173 -r 1.36.2.174 src/common/utils.c; ) > 3.7.2cvs22.patchset ( cvs diff -u -r 1.382.2.521 -r 1.382.2.522 src/compose.c; ) > 3.7.2cvs23.patchset +( cvs diff -u -r 1.382.2.522 -r 1.382.2.523 src/compose.c; ) > 3.7.2cvs24.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=2 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=23 +EXTRA_VERSION=24 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/compose.c b/src/compose.c @@ -3330,9 +3330,48 @@ static ComposeInsertResult compose_insert_file(Compose *compose, const gchar *fi FILE *fp; gboolean prev_autowrap; gboolean badtxt = FALSE; + struct stat file_stat; + int ret; cm_return_val_if_fail(file != NULL, COMPOSE_INSERT_NO_FILE); + /* get the size of the file we are about to insert */ + ret = g_stat(file, &file_stat); + if (ret != 0) { + gchar *shortfile = g_path_get_basename(file); + alertpanel_error(_("Could not get size of file '%s'."), shortfile); + g_free(shortfile); + return COMPOSE_INSERT_NO_FILE; + } else if (prefs_common.warn_large_insert == TRUE) { + + /* ask user for confirmation if the file is large */ + if (prefs_common.warn_large_insert_size < 0 || + file_stat.st_size > (prefs_common.warn_large_insert_size * 1024)) { + AlertValue aval; + gchar *msg; + + msg = g_strdup_printf(_("You are about to insert a file of %s " + "in the message body. Are you sure you want to do that?"), + to_human_readable(file_stat.st_size)); + aval = alertpanel_full(_("Are you sure?"), msg, GTK_STOCK_CANCEL, + _("+_Insert"), NULL, TRUE, NULL, ALERT_QUESTION, G_ALERTDEFAULT); + g_free(msg); + + /* do we ask for confirmation next time? */ + if (aval & G_ALERTDISABLE) { + /* no confirmation next time, disable feature in preferences */ + aval &= ~G_ALERTDISABLE; + prefs_common.warn_large_insert = FALSE; + } + + /* abort file insertion if user canceled action */ + if (aval != G_ALERTALTERNATE) { + return COMPOSE_INSERT_NO_FILE; + } + } + } + + if ((fp = g_fopen(file, "rb")) == NULL) { FILE_OP_ERROR(file, "fopen"); return COMPOSE_INSERT_READ_ERROR; @@ -9379,58 +9418,16 @@ static void compose_insert_file_cb(GtkAction *action, gpointer data) gchar *file = (gchar *) tmp->data; gchar *filedup = g_strdup(file); gchar *shortfile = g_path_get_basename(filedup); - struct stat file_stat; - gboolean do_insert; ComposeInsertResult res; - int ret; - - do_insert = TRUE; - - /* get the size of the file we are about to insert */ - ret = g_stat(file, &file_stat); - if (ret != 0) { - alertpanel_error(_("Could not get size of file '%s'."), shortfile); - do_insert = FALSE; - } else if (prefs_common.warn_large_insert == TRUE) { - - /* ask user for confirmation if the file is large */ - if (prefs_common.warn_large_insert_size < 0 || - file_stat.st_size > (prefs_common.warn_large_insert_size * 1024)) { - AlertValue aval; - gchar *msg; - - msg = g_strdup_printf(_("You are about to insert a file of %s " - "in the message body. Are your sure to do that?"), - to_human_readable(file_stat.st_size)); - aval = alertpanel_full(_("Are you sure?"), msg, GTK_STOCK_CANCEL, - _("+_Insert"), NULL, TRUE, NULL, ALERT_QUESTION, G_ALERTDEFAULT); - g_free(msg); - - /* do we ask for confirmation next time? */ - if (aval & G_ALERTDISABLE) { - /* no confirmation next time, disable feature in preferences */ - aval &= ~G_ALERTDISABLE; - prefs_common.warn_large_insert = FALSE; - } - - /* abort file insertion if user canceled action */ - if (aval != G_ALERTALTERNATE) { - do_insert = FALSE; - } - } - } - /* insert the file if the file is short or if the user confirmed that he/she wants to insert the large file */ - if (do_insert) { - res = compose_insert_file(compose, file); - if (res == COMPOSE_INSERT_READ_ERROR) { - alertpanel_error(_("File '%s' could not be read."), shortfile); - } else if (res == COMPOSE_INSERT_INVALID_CHARACTER) { - alertpanel_error(_("File '%s' contained invalid characters\n" - "for the current encoding, insertion may be incorrect."), - shortfile); - } + res = compose_insert_file(compose, file); + if (res == COMPOSE_INSERT_READ_ERROR) { + alertpanel_error(_("File '%s' could not be read."), shortfile); + } else if (res == COMPOSE_INSERT_INVALID_CHARACTER) { + alertpanel_error(_("File '%s' contained invalid characters\n" + "for the current encoding, insertion may be incorrect."), + shortfile); } g_free(shortfile);