+2007-01-16 [paul] 2.7.1cvs6
+
+ * src/action.c
+ * src/compose.c
+ * src/mimeview.c
+ * src/procmime.c
+ * src/textview.c
+ Save and use errno for procmime_get_part
+
2007-01-16 [colin] 2.7.1cvs5
* src/imap.c
( cvs diff -u -r 1.1.4.68 -r 1.1.4.69 src/etpan/imap-thread.c; ) > 2.7.1cvs3.patchset
( cvs diff -u -r 1.179.2.148 -r 1.179.2.149 src/imap.c; cvs diff -u -r 1.1.4.69 -r 1.1.4.70 src/etpan/imap-thread.c; ) > 2.7.1cvs4.patchset
( cvs diff -u -r 1.179.2.149 -r 1.179.2.150 src/imap.c; ) > 2.7.1cvs5.patchset
+( cvs diff -u -r 1.12.2.41 -r 1.12.2.42 src/action.c; cvs diff -u -r 1.382.2.351 -r 1.382.2.352 src/compose.c; cvs diff -u -r 1.83.2.98 -r 1.83.2.99 src/mimeview.c; cvs diff -u -r 1.49.2.86 -r 1.49.2.87 src/procmime.c; cvs diff -u -r 1.96.2.164 -r 1.96.2.165 src/textview.c; ) > 2.7.1cvs6.patchset
MICRO_VERSION=1
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=5
+EXTRA_VERSION=6
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
g_free(filename);
if (ret < 0) {
- alertpanel_error(_("Can't get part of multipart message"));
+ alertpanel_error(_("Can't get part of multipart message: %s"), strerror(-ret));
g_free(part_filename);
return FALSE;
}
child = (MimeInfo *) mimeinfo->node->children->data;
while (child != NULL) {
+ gint err;
+
if (child == encrypted) {
/* skip this part of tree */
NEXT_PART_NOT_CHILD(child);
}
outfile = procmime_get_tmp_file_name(child);
- if (procmime_get_part(outfile, child) < 0)
- g_warning("Can't get the part of multipart message.");
+ if ((err = procmime_get_part(outfile, child)) < 0)
+ g_warning("Can't get the part of multipart message. (%s)", strerror(-err));
else {
gchar *content_type;
{
gchar *filename = NULL, *uriname, *tmp;
MimeInfo *partinfo;
+ gint err;
if (!mimeview->opened) return;
if (!mimeview->file) return;
g_free(tmp);
- if (procmime_get_part(filename, partinfo) < 0)
+ if ((err = procmime_get_part(filename, partinfo)) < 0)
alertpanel_error
- (_("Couldn't save the part of multipart message."));
+ (_("Couldn't save the part of multipart message: %s"),
+ strerror(-err));
+
uriname = g_strconcat("file://", filename, "\r\n", NULL);
gtk_selection_data_set(selection_data, selection_data->target, 8,
MimeInfo *partinfo)
{
gchar *dir;
-
+ gint err;
+
dir= g_path_get_dirname(filename);
if (!is_dir_exist(dir))
make_dir_hier(dir);
if (G_ALERTALTERNATE != aval) return FALSE;
}
- if (procmime_get_part(filename, partinfo) < 0) {
+ if ((err = procmime_get_part(filename, partinfo)) < 0) {
alertpanel_error
- (_("Couldn't save the part of multipart message."));
+ (_("Couldn't save the part of multipart message: %s"),
+ strerror(-err));
return FALSE;
}
static void mimeview_launch(MimeView *mimeview, MimeInfo *partinfo)
{
gchar *filename;
+ gint err;
if (!mimeview->opened) return;
if (!mimeview->file) return;
filename = procmime_get_tmp_file_name(partinfo);
- if (procmime_get_part(filename, partinfo) < 0)
+ if ((err = procmime_get_part(filename, partinfo)) < 0)
alertpanel_error
- (_("Couldn't save the part of multipart message."));
+ (_("Couldn't save the part of multipart message: %s"),
+ strerror(-err));
else
mimeview_view_file(filename, partinfo, NULL, mimeview);
gchar *cmd;
gchar *mime_command = NULL;
gchar *content_type = NULL;
-
+ gint err;
g_return_if_fail(partinfo != NULL);
filename = procmime_get_tmp_file_name(partinfo);
- if (procmime_get_part(filename, partinfo) < 0) {
+ if ((err = procmime_get_part(filename, partinfo)) < 0) {
alertpanel_error
- (_("Couldn't save the part of multipart message."));
+ (_("Couldn't save the part of multipart message: %s"),
+ strerror(-err));
g_free(filename);
return;
}
FILE *infp, *outfp;
gchar buf[BUFFSIZE];
gint restlength, readlength;
+ gint saved_errno = 0;
g_return_val_if_fail(outfile != NULL, -1);
g_return_val_if_fail(mimeinfo != NULL, -1);
if (mimeinfo->encoding_type != ENC_BINARY && !procmime_decode_content(mimeinfo))
- return -1;
+ return -EINVAL;
if ((infp = g_fopen(mimeinfo->data.filename, "rb")) == NULL) {
+ saved_errno = errno;
FILE_OP_ERROR(mimeinfo->data.filename, "fopen");
- return -1;
+ return -(saved_errno);
}
if (fseek(infp, mimeinfo->offset, SEEK_SET) < 0) {
+ saved_errno = errno;
FILE_OP_ERROR(mimeinfo->data.filename, "fseek");
fclose(infp);
- return -1;
+ return -(saved_errno);
}
if ((outfp = g_fopen(outfile, "wb")) == NULL) {
+ saved_errno = errno;
FILE_OP_ERROR(outfile, "fopen");
fclose(infp);
- return -1;
+ return -(saved_errno);
}
restlength = mimeinfo->length;
while ((restlength > 0) && ((readlength = fread(buf, 1, restlength > BUFFSIZE ? BUFFSIZE : restlength, infp)) > 0)) {
- fwrite(buf, 1, readlength, outfp);
+ if (fwrite(buf, 1, readlength, outfp) != readlength) {
+ saved_errno = errno;
+ fclose(outfp);
+ return -(saved_errno);
+ }
restlength -= readlength;
}
fclose(infp);
if (fclose(outfp) == EOF) {
+ saved_errno = errno;
FILE_OP_ERROR(outfile, "fclose");
g_unlink(outfile);
- return -1;
+ return -(saved_errno);
}
return 0;
gchar *filename;
ClickableText *uri;
gchar *uri_str;
+ gint err;
START_TIMING("inserting image");
filename = procmime_get_tmp_file_name(mimeinfo);
- if (procmime_get_part(filename, mimeinfo) < 0) {
- g_warning("Can't get the image file.");
+ if ((err = procmime_get_part(filename, mimeinfo)) < 0) {
+ g_warning("Can't get the image file.(%s)", strerror(-err));
g_free(filename);
END_TIMING();
return;