diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2010-10-25 09:36:19 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2010-10-25 09:36:19 +0000 |
commit | f1c39bad859ddb6be46f4aad0b762bcd9614c18d (patch) | |
tree | bdcc06863fabd8e17f73b343276b4be61e27ebde /libsylph/procmime.c | |
parent | ef1dbadeb6fc917966297b147be87d16d9ee1723 (diff) |
libsylph/procmime.[ch]: added procmime_get_part_fp_fp().
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2692 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'libsylph/procmime.c')
-rw-r--r-- | libsylph/procmime.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libsylph/procmime.c b/libsylph/procmime.c index dfbda477..6815baa5 100644 --- a/libsylph/procmime.c +++ b/libsylph/procmime.c @@ -1152,6 +1152,28 @@ gint procmime_get_part_fp(const gchar *outfile, FILE *infp, MimeInfo *mimeinfo) return 0; } +FILE *procmime_get_part_fp_fp(FILE *outfp, FILE *infp, MimeInfo *mimeinfo) +{ + gchar buf[BUFFSIZE]; + + 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("procmime_get_part_fp()", "fseek"); + return -1; + } + + while (fgets(buf, sizeof(buf), infp) != NULL) + if (buf[0] == '\r' || buf[0] == '\n') break; + + if ((outfp = procmime_decode_content(outfp, infp, mimeinfo)) == NULL) { + return -1; + } + + return outfp; +} + gint procmime_get_all_parts(const gchar *dir, const gchar *infile, MimeInfo *mimeinfo) { |