aboutsummaryrefslogtreecommitdiff
path: root/src/procmime.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-02-08 07:55:13 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-02-08 07:55:13 +0000
commiteefe7863dac9cc8046e369d14dfa0224495613ea (patch)
treed558d35059a2cadde2869b1b313698a9eee46213 /src/procmime.c
parentbef4be6edbe3e5748ce6075a2ca65546e16a6d19 (diff)
implemented inline image display.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@97 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/procmime.c')
-rw-r--r--src/procmime.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/procmime.c b/src/procmime.c
index a603da71..2ee91c96 100644
--- a/src/procmime.c
+++ b/src/procmime.c
@@ -629,8 +629,8 @@ FILE *procmime_decode_content(FILE *outfp, FILE *infp, MimeInfo *mimeinfo)
gint procmime_get_part(const gchar *outfile, const gchar *infile,
MimeInfo *mimeinfo)
{
- FILE *infp, *outfp;
- gchar buf[BUFFSIZE];
+ FILE *infp;
+ gint ret;
g_return_val_if_fail(outfile != NULL, -1);
g_return_val_if_fail(infile != NULL, -1);
@@ -640,14 +640,27 @@ gint procmime_get_part(const gchar *outfile, const gchar *infile,
FILE_OP_ERROR(infile, "fopen");
return -1;
}
+ ret = procmime_get_part_fp(outfile, infp, mimeinfo);
+ fclose(infp);
+
+ return ret;
+}
+
+gint procmime_get_part_fp(const gchar *outfile, FILE *infp, MimeInfo *mimeinfo)
+{
+ FILE *outfp;
+ gchar buf[BUFFSIZE];
+
+ g_return_val_if_fail(outfile != NULL, -1);
+ g_return_val_if_fail(infp != NULL, -1);
+ g_return_val_if_fail(mimeinfo != NULL, -1);
+
if (fseek(infp, mimeinfo->fpos, SEEK_SET) < 0) {
- FILE_OP_ERROR(infile, "fseek");
- fclose(infp);
+ FILE_OP_ERROR("procmime_get_part_fp()", "fseek");
return -1;
}
if ((outfp = fopen(outfile, "wb")) == NULL) {
FILE_OP_ERROR(outfile, "fopen");
- fclose(infp);
return -1;
}
@@ -656,7 +669,6 @@ gint procmime_get_part(const gchar *outfile, const gchar *infile,
procmime_decode_content(outfp, infp, mimeinfo);
- fclose(infp);
if (fclose(outfp) == EOF) {
FILE_OP_ERROR(outfile, "fclose");
unlink(outfile);