2009-04-27 Jeffrey Stedfast * README: Bumped version * configure.in: Bumped version to 2.4.7 * build/vs2008/gmime.vcproj: Bumped version. 2009-04-25 Jeffrey Stedfast * gmime/gmime-object.c (g_mime_object_set_disposition): Unref the disposition after setting it on the GMimeObject, don't ref it again. Oops. * gmime/gmime-message.c (unblock_changed_event): Oops, this needs to /unblock/ the event handler. * gmime/gmime-header.c (g_mime_header_list_set_raw): Added back just in case someone was foolish enough to use this API. (g_mime_header_list_has_raw): Same. 2009-04-24 Jeffrey Stedfast * gmime/gmime-parser.c (struct _GMimeParserPrivate): Added message_headers_begin/end and changed the meaning of headers_begin/end to be for the current MIME part rather than for the current message itself. (g_mime_parser_init): Init the boolean state variables before calling parser_init() so that parser_init() can use them. (parser_init): Only create a rawbuf if our stream isn't seekable or isn't persistent. Initialize our new message_headers_begin/end. (g_mime_parser_set_persist_stream): If our persist mode has changed, malloc or free our rawbuf. (raw_header_append): Don't append any data if rawbuf is NULL (this means we're keeping track of offsets instead). (parser_step_headers): Always update headers_begin/end since we now always want to keep track of all header begin/end offsets. (parser_step): Update our message_headers_begin/end state. (parser_scan_message_part): Set the mime-part's raw header stream on the message too. (parser_construct_message): Same. (parser_construct_leaf_part): Substream the input stream to get our raw header stream to set on the mime-part's header-list. (parser_construct_multipart): Same. * gmime/gmime-header.c (struct _GMimeHeaderList): Instead of having a string buffer holding the raw header block content, instead keep a stream. This not only makes it easy for us to keep track of what the header offsets on disk are should the developer want to know, but it also means we don't necessarily have to use duplicate the header block to memory. (g_mime_header_list_set_stream): New function that replaces the old g_mime_header_list_set_raw() and looks much cleaner. (g_mime_header_list_get_stream): New function to access said stream. * gmime/gmime-message.c: Fixed uses of g_mime_header_list_set/has_raw(). (g_mime_message_set_mime_part): Set the message's raw header stream to NULL. * gmime/gmime-multipart.c: Same. * tests/test-parser.c (test_parser): Updated.