Changeset 3248
- Timestamp:
- 01/13/08 12:21:55
- Files:
-
- trunk/ChangeLog (modified) (1 diff)
- trunk/libtinymail-camel/tny-camel-bs-mime-part.c (modified) (5 diffs)
- trunk/libtinymail-camel/tny-camel-bs-mime-part.h (modified) (2 diffs)
- trunk/libtinymail-camel/tny-camel-mime-part.c (modified) (11 diffs)
- trunk/libtinymail-camel/tny-camel-mime-part.h (modified) (2 diffs)
- trunk/libtinymail/tny-mime-part.c (modified) (5 diffs)
- trunk/libtinymail/tny-mime-part.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ChangeLog
r3246 r3248 1 2008-01-13 Philip Van Hoof <pvanhoof@gnome.org> 2 3 * Changed tny_mime_part_construct_from_stream to 4 tny_mime_part_construct, added a parameter for the 5 content-transfer-encoding too 6 7 * This was a major API change 8 1 9 2008-01-12 Philip Van Hoof <pvanhoof@gnome.org> 2 10 trunk/libtinymail-camel/tny-camel-bs-mime-part.c
r3235 r3248 635 635 636 636 static gint 637 tny_camel_bs_mime_part_construct _from_stream (TnyMimePart *self, TnyStream *stream, const gchar *type)638 { 639 return TNY_CAMEL_BS_MIME_PART_GET_CLASS (self)->construct_f rom_stream_func (self, stream, type);637 tny_camel_bs_mime_part_construct (TnyMimePart *self, TnyStream *stream, const gchar *mime_type, const gchar *transfer_encoding) 638 { 639 return TNY_CAMEL_BS_MIME_PART_GET_CLASS (self)->construct_func (self, stream, mime_type, transfer_encoding); 640 640 } 641 641 642 642 static gint 643 tny_camel_bs_mime_part_construct_ from_stream_default (TnyMimePart *self, TnyStream *stream, const gchar *type)643 tny_camel_bs_mime_part_construct_default (TnyMimePart *self, TnyStream *stream, const gchar *mime_type, const gchar* transfer_encoding) 644 644 { 645 645 return -1; 646 646 } 647 648 static const gchar* 649 tny_camel_bs_mime_part_get_transfer_encoding (TnyMimePart *self) 650 { 651 return TNY_CAMEL_BS_MIME_PART_GET_CLASS (self)->get_transfer_encoding_func (self); 652 } 653 654 static const gchar* 655 tny_camel_bs_mime_part_get_transfer_encoding_default (TnyMimePart *self) 656 { 657 TnyCamelBsMimePartPriv *priv = TNY_CAMEL_BS_MIME_PART_GET_PRIVATE (self); 658 return priv->bodystructure->encoding; 659 } 660 647 661 648 662 static TnyStream* … … 995 1009 klass->get_stream_func = tny_camel_bs_mime_part_get_stream; 996 1010 klass->write_to_stream_func = tny_camel_bs_mime_part_write_to_stream; 997 klass->construct_f rom_stream_func = tny_camel_bs_mime_part_construct_from_stream;1011 klass->construct_func = tny_camel_bs_mime_part_construct; 998 1012 klass->get_filename_func = tny_camel_bs_mime_part_get_filename; 999 1013 klass->get_content_id_func = tny_camel_bs_mime_part_get_content_id; … … 1015 1029 klass->set_header_pair_func = tny_camel_bs_mime_part_set_header_pair; 1016 1030 klass->decode_to_stream_async_func = tny_camel_bs_mime_part_decode_to_stream_async; 1017 1031 klass->get_transfer_encoding_func = tny_camel_bs_mime_part_get_transfer_encoding; 1018 1032 return; 1019 1033 } … … 1032 1046 class->get_stream_func = tny_camel_bs_mime_part_get_stream_default; 1033 1047 class->write_to_stream_func = tny_camel_bs_mime_part_write_to_stream_default; 1034 class->construct_f rom_stream_func = tny_camel_bs_mime_part_construct_from_stream_default;1048 class->construct_func = tny_camel_bs_mime_part_construct_default; 1035 1049 class->get_filename_func = tny_camel_bs_mime_part_get_filename_default; 1036 1050 class->get_content_id_func = tny_camel_bs_mime_part_get_content_id_default; … … 1052 1066 class->set_header_pair_func = tny_camel_bs_mime_part_set_header_pair_default; 1053 1067 class->decode_to_stream_async_func = tny_camel_bs_mime_part_decode_to_stream_async_default; 1068 class->get_transfer_encoding_func = tny_camel_bs_mime_part_get_transfer_encoding_default; 1054 1069 1055 1070 object_class->finalize = tny_camel_bs_mime_part_finalize; trunk/libtinymail-camel/tny-camel-bs-mime-part.h
r3171 r3248 53 53 gssize (*decode_to_stream_func) (TnyMimePart *self, TnyStream *stream, GError **err); 54 54 gssize (*write_to_stream_func) (TnyMimePart *self, TnyStream *stream, GError **err); 55 gint (*construct_f rom_stream_func) (TnyMimePart *self, TnyStream *stream, const gchar *type);55 gint (*construct_func) (TnyMimePart *self, TnyStream *stream, const gchar *mime_type, const gchar *transfer_encoding); 56 56 const gchar* (*get_filename_func) (TnyMimePart *self); 57 57 const gchar* (*get_content_id_func) (TnyMimePart *self); … … 72 72 void (*set_header_pair_func) (TnyMimePart *self, const gchar *name, const gchar *value); 73 73 void (*decode_to_stream_async_func) (TnyMimePart *self, TnyStream *stream, TnyMimePartCallback callback, TnyStatusCallback status_callback, gpointer user_data); 74 const gchar* (*get_transfer_encoding_func) (TnyMimePart *self); 74 75 }; 75 76 trunk/libtinymail-camel/tny-camel-mime-part.c
r3243 r3248 311 311 } 312 312 313 tny_mime_part_construct _from_stream (piece, in_stream, type);313 tny_mime_part_construct (piece, in_stream, type, tny_mime_part_get_transfer_encoding (orig)); 314 314 315 315 if (tny_mime_part_get_description (orig)) … … 365 365 } 366 366 367 static const gchar* 368 tny_camel_mime_part_get_transfer_encoding (TnyMimePart *self) 369 { 370 return TNY_CAMEL_MIME_PART_GET_CLASS (self)->get_transfer_encoding_func (self); 371 } 372 373 static const gchar* 374 tny_camel_mime_part_get_transfer_encoding_default (TnyMimePart *self) 375 { 376 TnyCamelMimePartPriv *priv = TNY_CAMEL_MIME_PART_GET_PRIVATE (self); 377 CamelTransferEncoding encoding = camel_mime_part_get_encoding (priv->part); 378 const char *text = camel_transfer_encoding_to_string (encoding); 379 return (const gchar *) text; 380 } 381 367 382 static gint 368 383 tny_camel_mime_part_add_part_default (TnyMimePart *self, TnyMimePart *part) … … 700 715 701 716 static gint 702 tny_camel_mime_part_construct _from_stream (TnyMimePart *self, TnyStream *stream, const gchar *type)703 { 704 return TNY_CAMEL_MIME_PART_GET_CLASS (self)->construct_f rom_stream_func (self, stream, type);717 tny_camel_mime_part_construct (TnyMimePart *self, TnyStream *stream, const gchar *mime_type, const gchar *transfer_encoding) 718 { 719 return TNY_CAMEL_MIME_PART_GET_CLASS (self)->construct_func (self, stream, mime_type, transfer_encoding); 705 720 } 706 721 707 722 static gint 708 tny_camel_mime_part_construct_ from_stream_default (TnyMimePart *self, TnyStream *stream, const gchar *type)723 tny_camel_mime_part_construct_default (TnyMimePart *self, TnyStream *stream, const gchar *mime_type, const gchar *transfer_encoding) 709 724 { 710 725 TnyCamelMimePartPriv *priv = TNY_CAMEL_MIME_PART_GET_PRIVATE (self); … … 713 728 CamelMedium *medium; 714 729 CamelStream *cstream; 730 CamelTransferEncoding encoding; 715 731 716 732 g_assert (TNY_IS_STREAM (stream)); … … 720 736 g_mutex_lock (priv->part_lock); 721 737 722 if (type && g_ascii_strncasecmp (type, "text", 4) != 0 && g_ascii_strcasecmp (type, "message/rfc822") != 0) 723 camel_mime_part_set_encoding (priv->part, 724 CAMEL_TRANSFER_ENCODING_BASE64); 738 encoding = camel_transfer_encoding_from_string (transfer_encoding); 739 camel_mime_part_set_encoding (priv->part, encoding); 725 740 726 741 medium = CAMEL_MEDIUM (priv->part); … … 733 748 camel_object_unref (CAMEL_OBJECT (wrapper)); 734 749 735 if ( type && g_ascii_strcasecmp (type, "message/rfc822") == 0)750 if (mime_type && g_ascii_strcasecmp (mime_type, "message/rfc822") == 0) 736 751 wrapper = (CamelDataWrapper *) camel_mime_message_new (); 737 752 else … … 739 754 740 755 retval = camel_data_wrapper_construct_from_stream (wrapper, cstream); 741 if ( type)742 camel_data_wrapper_set_mime_type (wrapper, type);756 if (mime_type) 757 camel_data_wrapper_set_mime_type (wrapper, mime_type); 743 758 744 759 camel_medium_set_content_object(medium, wrapper); 760 761 camel_mime_part_set_content_id (priv->part, NULL); 745 762 746 763 camel_object_unref (cstream); … … 1177 1194 klass->get_stream_func = tny_camel_mime_part_get_stream; 1178 1195 klass->write_to_stream_func = tny_camel_mime_part_write_to_stream; 1179 klass->construct_f rom_stream_func = tny_camel_mime_part_construct_from_stream;1196 klass->construct_func = tny_camel_mime_part_construct; 1180 1197 klass->get_filename_func = tny_camel_mime_part_get_filename; 1181 1198 klass->get_content_id_func = tny_camel_mime_part_get_content_id; … … 1197 1214 klass->set_header_pair_func = tny_camel_mime_part_set_header_pair; 1198 1215 klass->decode_to_stream_async_func = tny_camel_mime_part_decode_to_stream_async; 1216 klass->get_transfer_encoding_func = tny_camel_mime_part_get_transfer_encoding; 1217 1199 1218 return; 1200 1219 } … … 1213 1232 class->get_stream_func = tny_camel_mime_part_get_stream_default; 1214 1233 class->write_to_stream_func = tny_camel_mime_part_write_to_stream_default; 1215 class->construct_f rom_stream_func = tny_camel_mime_part_construct_from_stream_default;1234 class->construct_func = tny_camel_mime_part_construct_default; 1216 1235 class->get_filename_func = tny_camel_mime_part_get_filename_default; 1217 1236 class->get_content_id_func = tny_camel_mime_part_get_content_id_default; … … 1233 1252 class->set_header_pair_func = tny_camel_mime_part_set_header_pair_default; 1234 1253 class->decode_to_stream_async_func = tny_camel_mime_part_decode_to_stream_async_default; 1254 class->get_transfer_encoding_func = tny_camel_mime_part_get_transfer_encoding_default; 1235 1255 1236 1256 object_class->finalize = tny_camel_mime_part_finalize; trunk/libtinymail-camel/tny-camel-mime-part.h
r3171 r3248 55 55 gssize (*decode_to_stream_func) (TnyMimePart *self, TnyStream *stream, GError **err); 56 56 gssize (*write_to_stream_func) (TnyMimePart *self, TnyStream *stream, GError **err); 57 gint (*construct_f rom_stream_func) (TnyMimePart *self, TnyStream *stream, const gchar *type);57 gint (*construct_func) (TnyMimePart *self, TnyStream *stream, const gchar *mime_type, const gchar *transfer_encoding); 58 58 const gchar* (*get_filename_func) (TnyMimePart *self); 59 59 const gchar* (*get_content_id_func) (TnyMimePart *self); … … 74 74 void (*set_header_pair_func) (TnyMimePart *self, const gchar *name, const gchar *value); 75 75 void (*decode_to_stream_async_func) (TnyMimePart *self, TnyStream *stream, TnyMimePartCallback callback, TnyStatusCallback status_callback, gpointer user_data); 76 76 const gchar* (*get_transfer_encoding_func) (TnyMimePart *self); 77 77 }; 78 78 trunk/libtinymail/tny-mime-part.c
r3235 r3248 745 745 746 746 /** 747 * tny_mime_part_construct _from_stream:747 * tny_mime_part_construct: 748 748 * @self: a #TnyMimePart 749 749 * @stream: a #TnyStream 750 * @type: the MIME type like "text/plain" 750 * @mime_type: the MIME type like "text/plain" 751 * @transfer_encoding: the Content-Transfer-Encoding 751 752 * 752 753 * Set the stream from which the part will read its content 754 * 755 * Valid values for @transfer_encoding are "7bit", "8bit", "base64", 756 * "quoted-printable", "binary" and "x-uuencode" 753 757 * 754 758 * Example: … … 759 763 * { 760 764 * TnyFsStream *stream = tny_fs_stream_new (fd); 761 * tny_mime_part_construct _from_stream (part, TNY_STREAM (stream));765 * tny_mime_part_construct (part, TNY_STREAM (stream), "text/html", "base64"); 762 766 * } 763 767 * </programlisting></informalexample> … … 768 772 **/ 769 773 gint 770 tny_mime_part_construct _from_stream (TnyMimePart *self, TnyStream *stream, const gchar *type)774 tny_mime_part_construct (TnyMimePart *self, TnyStream *stream, const gchar *mime_type, const gchar *transfer_encoding) 771 775 { 772 776 gint retval; … … 775 779 g_assert (TNY_IS_MIME_PART (self)); 776 780 g_assert (TNY_IS_STREAM (stream)); 777 g_assert (TNY_MIME_PART_GET_IFACE (self)->construct_f rom_stream_func != NULL);778 #endif 779 780 retval = TNY_MIME_PART_GET_IFACE (self)->construct_f rom_stream_func (self, stream, type);781 g_assert (TNY_MIME_PART_GET_IFACE (self)->construct_func != NULL); 782 #endif 783 784 retval = TNY_MIME_PART_GET_IFACE (self)->construct_func (self, stream, mime_type, transfer_encoding); 781 785 782 786 #ifdef DBC /* ensure */ … … 785 789 786 790 return retval; 791 } 792 793 794 /** 795 * tny_mime_part_get_transfer_encoding: 796 * @self: a #TnyMimePart 797 * 798 * Get the transfer encoding of @self or NULL if default transfer encoding 7bit. 799 * 800 * returns (null-ok): transfer encoding 801 * since: 1.0 802 * audience: application-developer 803 **/ 804 const gchar* 805 tny_mime_part_get_transfer_encoding (TnyMimePart *self) 806 { 807 #ifdef DBC /* require */ 808 g_assert (TNY_IS_MIME_PART (self)); 809 g_assert (TNY_MIME_PART_GET_IFACE (self)->get_transfer_encoding_func != NULL); 810 #endif 811 812 return TNY_MIME_PART_GET_IFACE (self)->get_transfer_encoding_func (self); 787 813 } 788 814 trunk/libtinymail/tny-mime-part.h
r3171 r3248 49 49 gssize (*decode_to_stream_func) (TnyMimePart *self, TnyStream *stream, GError **err); 50 50 gssize (*write_to_stream_func) (TnyMimePart *self, TnyStream *stream, GError **err); 51 gint (*construct_f rom_stream_func) (TnyMimePart *self, TnyStream *stream, const gchar *type);51 gint (*construct_func) (TnyMimePart *self, TnyStream *stream, const gchar *mime_type, const gchar *transfer_encoding); 52 52 const gchar* (*get_filename_func) (TnyMimePart *self); 53 53 const gchar* (*get_content_id_func) (TnyMimePart *self); … … 69 69 void (*set_header_pair_func) (TnyMimePart *self, const gchar *name, const gchar *value); 70 70 void (*decode_to_stream_async_func) (TnyMimePart *self, TnyStream *stream, TnyMimePartCallback callback, TnyStatusCallback status_callback, gpointer user_data); 71 const gchar* (*get_transfer_encoding_func) (TnyMimePart *self); 72 71 73 }; 72 74 … … 77 79 TnyStream* tny_mime_part_get_stream (TnyMimePart *self); 78 80 gssize tny_mime_part_write_to_stream (TnyMimePart *self, TnyStream *stream, GError **err); 79 gint tny_mime_part_construct _from_stream (TnyMimePart *self, TnyStream *stream, const gchar *type);81 gint tny_mime_part_construct (TnyMimePart *self, TnyStream *stream, const gchar *mime_type, const gchar *transfer_encoding); 80 82 const gchar* tny_mime_part_get_filename (TnyMimePart *self); 81 83 const gchar* tny_mime_part_get_content_id (TnyMimePart *self); … … 97 99 void tny_mime_part_set_header_pair (TnyMimePart *self, const gchar *name, const gchar *value); 98 100 void tny_mime_part_decode_to_stream_async (TnyMimePart *self, TnyStream *stream, TnyMimePartCallback callback, TnyStatusCallback status_callback, gpointer user_data); 101 const gchar* tny_mime_part_get_transfer_encoding (TnyMimePart *self); 99 102 100 103 G_END_DECLS
