aboutsummaryrefslogtreecommitdiff
path: root/libsylph/procmime.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-10-25 09:36:19 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-10-25 09:36:19 +0000
commitf1c39bad859ddb6be46f4aad0b762bcd9614c18d (patch)
treebdcc06863fabd8e17f73b343276b4be61e27ebde /libsylph/procmime.c
parentef1dbadeb6fc917966297b147be87d16d9ee1723 (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.c22
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)
{