2008-08-31 Jeffrey Stedfast * README: Bumped version * configure.in: Bumped version to 2.3.8 2008-08-31 Jeffrey Stedfast * mono/Multipart.custom: GMime.Multipart now implements the IList interface. * gmime/gmime-message.c (g_mime_message_add_recipients_from_string): Removed. This function was a kludge - use g_mime_message_get_recipients() and then add recipients you have manually instead. * gmime/gmime-multipart.c (g_mime_multipart_clear): New method. (g_mime_multipart_contains): Same. (g_mime_multipart_index_of): Same. 2008-08-31 Jeffrey Stedfast * gmime/gmime-parser.c (parser_scan_multipart_subparts): Updated for GMimeMultipart API changes. * gmime/gmime-multipart-signed.c (sign_prepare): Updated for GMimeMultipart API changes. (g_mime_multipart_signed_sign): Same. * gmime/gmime-multipart-encrypted.c (g_mime_multipart_encrypted_encrypt): Updated for GMimeMultipart API changes. * gmime/gmime-multipart.c (g_mime_multipart_add): Renamed from g_mime_multipart_add_part(). The "_part" seemed superfluous. (g_mime_multipart_remove): Same. (g_mime_multipart_remove_at): Same. (g_mime_multipart_insert): Renamed from g_mime_multipart_add_part_at(). (g_mime_multipart_get_count): Renamed to be more obvious. 2008-08-31 Jeffrey Stedfast * gmime/gmime-message-partial.c (g_mime_message_partial_new): Need to unref the content_type after setting it on the object. * gmime/gmime-message-part.c (g_mime_message_part_new): Need to unref the content_type after setting it on the object. * gmime/gmime-multipart.c (g_mime_multipart_new): Need to unref the content_type after setting it on the object. (g_mime_multipart_new_with_subtype): Same. * gmime/gmime-multipart-signed.c (g_mime_multipart_signed_sign): Need to unref the content_type after setting it on the object. Also need to set mps->protocol /before/ we use it. * gmime/gmime-multipart-encrypted.c (g_mime_multipart_encrypted_new): Need to unref the content_type after setting it on the object. (g_mime_multipart_encrypted_encrypt): Same. * gmime/gmime-part.c (g_mime_part_new): Need to unref the content_type after setting it on the object. (g_mime_part_new_with_type): Same. (g_mime_part_set_content_header): Removed. (g_mime_part_get_content_header): Removed. (g_mime_part_set_filename): Don't need to pre-set a ContentDisposition ob the object if it is NULL, g_mime_object_set_content_disposition_parameter() will do that for us. * gmime/gmime-parser.c (parser_construct_leaf_part): Instead of going around the GMimeObject's back to set the content_type, call g_mime_object_set_content_type(). (parser_construct_multipart): Same. * gmime/gmime-object.c: Updated for GMimeContentType and ContentDisposition GObjectification. (g_mime_object_new): New function. * gmime/gmime-disposition.c: Subclass GObject. * gmime/gmime-content-type.c: Subclass GObject. * gmime/internet-address.c: Got rid of unneeded vfuncs for the changed event (which we don't want to be made public). 2008-08-25 Jeffrey Stedfast Making GMime's object-returning APIs consistent with Gtk+ which do not ref returned objects. * tests/test-headers.c (test_header_sync): No longer need to unref the InternetAddressList object returned from g_mime_message_get_recipients(). * tests/test-mbox.c (print_mime_struct): Since g_mime_multipart_get_part() no longer returns a ref'd object, no need to unref it once we're done with it. * gmime/gmime-multipart-encrypted.c (g_mime_multipart_encrypted_decrypt): Don't ref the returned decrypted part. * gmime/gmime-message-part.c (g_mime_message_part_get_message): Don't ref the returned message part. * gmime/gmime-data-wrapper.c (g_mime_data_wrapper_get_stream): Don't ref the returned stream. * gmime/gmime-part.c (g_mime_part_get_content_object): Don't ref the returned content object anymore. * gmime/gmime-multipart.c (multipart_get_part): No longer ref the returned part. (g_mime_multipart_get_subpart_from_content_id): Same. * gmime/gmime-message.c (g_mime_message_get_recipients): Don't ref the list anymore. (g_mime_message_get_mime_part): Don't ref the returned mime part anymore. * gmime/gmime-object.c (g_mime_object_get_content_type): Don't return const anymore. We want app devs to be able to manipulate the GMimeContentType directly. (g_mime_object_get_content_disposition): Same idea here. * gmime/internet-address.c (internet_address_group_get_members): Don't ref the members list anymore. (internet_address_list_get_address): Same. 2008-08-24 Jeffrey Stedfast * tests/test-headers.c (test_header_sync): Check that changes to the GMimeContentType, GMimeDisposition, and InternetAddressList objects cause a re-sync of the GMimeObject/GMimeMessage headers. * gmime/internet-address.c (internet_address_list_add): Connect to the added address's changed signal. Exposed by my new test-suite code. (internet_address_list_insert): Assert index >= 0, not < 0. (internet_address_list_remove_at): Same. (internet_address_list_get_address): Same. (internet_address_list_set_address): Same. (internet_address_list_to_string): Return NULL if the list is empty. This makes it easier to keep the new behavior of keeping around InternetAddressList objects in GMimeMessage the same as the old behavior when all of the addresses have been removed. * gmime/gmime-disposition.c (g_mime_content_disposition_set_params): New function. * gmime/gmime-content-type.c (g_mime_content_type_set_media_type): New function. (g_mime_content_type_set_media_subtype): Another new function. (g_mime_content_type_set_params): New function. 2008-08-19 Jeffrey Stedfast * gmime/gmime-message.c: Updated to listen to changed events from recipient lists and to update the headers when the lists change. * gmime/internet-address.c: InternetAddress is now GObject with a "changed" signal. Split out InternetAddressMailbox and InternetAddressGroup subclasses of InternetAddress. InternetAddressList is now also a GObject with a "changed" signal. These changes were made so that manipulating an InternetAddress[List] of recipients will auto-magically update GMimeMessage's corresponding recipient header. 2008-08-18 Jeffrey Stedfast * gmime/gmime-message.c (g_mime_message_get_recipients): Now returns a ref'd version of the InternetAddressList. You must now unref the list when you are done with it. * tools/gmime-port-2-2-to-2-4.sh: Updated. * gmime/internet-address.c (internet_address_new_mailbox): Renamed from internet_address_new_name() to make it less ambiguous (and to use the terminology used in the RFC's). (internet_address_get_type): Now takes a const InternetAddress argument. (internet_address_get_name): Same. (internet_address_get_addr): Same. (internet_address_get_members): Same, but now returns a ref'd InternetAddressList rather than a const InternetAddressList. (internet_address_list_ref): InternetAddressLists are now reffable. (internet_address_list_unref): Same. (internet_address_list_get_address): Now returns a ref'd copy of the InternetAddress at the index specified.