diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-02-08 07:55:13 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-02-08 07:55:13 +0000 |
commit | eefe7863dac9cc8046e369d14dfa0224495613ea (patch) | |
tree | d558d35059a2cadde2869b1b313698a9eee46213 /src/procmime.c | |
parent | bef4be6edbe3e5748ce6075a2ca65546e16a6d19 (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.c | 24 |
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); |