--- - branch: MAIN date: Wed Apr 16 14:37:39 UTC 2008 files: - new: '1.18' old: '1.17' path: pkgsrc/mail/gmime/Makefile pathrev: pkgsrc/mail/gmime/Makefile@1.18 type: modified - new: '1.14' old: '1.13' path: pkgsrc/mail/gmime/distinfo pathrev: pkgsrc/mail/gmime/distinfo@1.14 type: modified id: 20080416T143739Z.71855f8499948fff56c7964e3f6be3c7fbc5410e log: "Update to 2.2.18:\n\n2008-03-13 Jeffrey Stedfast\n\n\t* gmime/gmime-parser.c (parser_construct_message): Changed\n\tcontent_length to an unsigned long rather than unsigned int, fixes\n\tbug #521872. Thanks to Pawel Salek for this fix.\n\n2008-03-10 \ Jeffrey Stedfast\n\n\t* gmime/gmime-parser.c (parser_scan_mime_part_content): Don't let\n\tsize go negative.\n\n2008-02-09 Jeffrey Stedfast\n\n\t* gmime/gmime-filter-basic.c (filter_filter): Use the new macros\n\tdefined below.\n\n\t* gmime/gmime-utils.c (rfc2047_encode_word): Use the new macros.\n\n\t* gmime/gmime-utils.h: Added more accurate encoding-length macros\n\tfor base64, quoted-printable, and uuencode which are try to\n\tminimize over-calculating the amount of output data that we\n\tneed. Also namespaced them.\n\n2008-02-08 Jeffrey Stedfast\n\n\t* src/uudecode.c (uudecode): Use g_strchomp() on the filename\n\tparsed from the 'begin' line.\n\n2008-02-07 \ Jeffrey Stedfast\n\n\t* util/url-scanner.c (url_web_end): Handle IP address literals\n\twithin []'s. Fixes bug #515088.\n\n2008-02-06 Jeffrey Stedfast\n\n\t* gmime/gmime-utils.c (g_mime_utils_uuencode_step): Optimized.\n\n2008-02-03 Jeffrey Stedfast\n\n\t* gmime/gmime-stream-cat.c (stream_read): Removed an extra seek.\n\n2008-02-02 \ Jeffrey Stedfast\n\n\tFix for https://bugzilla.novell.com/show_bug.cgi?id=333292 and\n\tsome other bugs I discovered while fixing it.\n\n\t* gmime/gmime-parser.c (header_parse): Made an actual function\n\trather than a macro. Don't turn invalid headers into\n\tX-Invalid-Headers, just ignore them. Instead of using\n\tg_strstrip(), do our own lwsp trimming so we can do it before\n\tmalloc'ing - this helps reduce memory usage and memmove()\n\tprocessing in g_strstrip().\n\t(parser_step_headers): Validate the header field names as we go so\n\tthat we can stop when we come to an invalid header in some\n\tcases. May now return with 3 states rather than only 1:\n\tHEADERS_END (as before), CONTENT (suggesting we've reached body\n\tcontent w/o a blank line to separate it from the headers), and\n\tCOMPLETE (which suggests that we've reached the next message's\n\tFrom-line).\n\t(parser_skip_line): Rearranged a bit: don't fill unless/until we\n\tneed to.\n\t(parser_step): For HEADERS_END state, skip a line and increment\n\tstate to CONTENT. No-op for CONTENT and COMPLETE states.\n\t(parser_scan_message_part): parser_step() can return more than\n\tjust HEADERS_END on 'success' when starting with HEADERS state, so\n\tcheck for error rather than HEADERS_END.\n\t(parser_construct_leaf_part): No need to parser_step() thru header\n\tparsing, they should already be parsed by the time we get\n\there. Also, don't call parser_skip_line() directly to skip the\n\tblank line between headers and content, use parser_step() to do\n\tthat for us.\n\t(parser_construct_multipart): Same as parser_construct_leaf_part()\n\t(found_immediate_boundary): Now takes an 'end' argument so callers\n\tcan request a check against an end-boundary vs a part boundary.\n\t(parser_scan_multipart_subparts): Check for errors with\n\tparser_skip_line(). Set HEADERS state and use parser_step() to\n\tparse headers rather than calling parser_step_headers()\n\tdirectly. If, after parsing the headers, we are at the next\n\tmessage (aka COMPLETE state) and we have no header list, then\n\tbreak out of our loop and pretend we've found an\n\tend-boundary. After parsing the content of each MIME part, check\n\tthat the boundary we found is our own and not a parent's (if it\n\tbelongs to a parent, break out).\n\t(parser_construct_part): Loop parser_step() until we're at any\n\tstate past the header block (>= HEADERS_END).\n\t(parser_construct_message): Same idea. Also, do error checking for\n\tdecoded content_length value.\n\n2008-02-02 \ Jeffrey Stedfast\n\n\t* gmime/gmime-iconv-utils.c (iconv_utils_init): Don't break if the\n\tuser's locale is unset (e.g. US-ASCII).\n\n2008-01-31 Jeffrey Stedfast\n\n\t* gmime/gmime-parser.c: Removed the need for 'unstep' state\n\tinformation.\n\n2008-01-27 \ Jeffrey Stedfast\n\n\t* gmime/gmime-stream-buffer.c (stream_write): Don't modify the\n\tpassed-in arguments so that it makes debugging easier if there's\n\tever a bug.\n\n2008-01-27 Jeffrey Stedfast\n\n\t* gmime/gmime-stream-buffer.c (stream_read): Optimized the\n\tBLOCK_READ code-path.\n\t(stream_write): Optimized the BLOCK_WRITE code-path.\n\t(stream_seek): Optimized the BLOCK_READ code-path.\n\t(g_mime_stream_buffer_gets): Updated for the changes made to the\n\tway bufptr is used in the BLOCK_READ case.\n\n2008-01-14 \ Jeffrey Stedfast\n\n\t* gmime/gmime-charset.c (g_mime_set_user_charsets): Deep copy the\n\tstring array. Fixes bug #509434.\n\n2008-01-02 Jeffrey Stedfast\n\n\t* gmime/gmime-message.c (message_write_to_stream): Reworked the\n\tlogic to be easier to understand what is going on.\n\n\t* gmime/gmime-multipart.c (multipart_write_to_stream): In the case\n\twhere multipart->boundary is NULL /and/ we have a raw\n\theader (suggesting a parsed message), do not set a boundary as it\n\twill break the output because it will clobber the saved raw header\n\tand GMimeMessage's write_to_stream() method will have skipped\n\twriting its own headers if its toplevel part (us) have a raw\n\theader set. In this case, also skip writing the end boundary.\n\n2008-01-01 \ Jeffrey Stedfast\n\n\t* gmime/gmime-utils.c (g_mime_utils_generate_message_id): Fixed a\n\tFree Memory Read access (FMR) by not freeing 'name' before using\n\tit's value. Also reworked to take advantage of uname(2) or\n\tgetdomainname() to get the domain name if available to avoid\n\thaving to do a DNS lookup.\n\n2008-01-01 \ Jeffrey Stedfast\n\n\tFixes bug #506701\n\n\t* gmime/gmime-utils.c (rfc2047_encode_get_rfc822_words): Don't\n\treset the word-type variable as it needs to be preserved when\n\tbreaking long words.\n\t(rfc2047_encode): Switch on word->encoding - if 0, rfc2047 encode\n\tas us-ascii.\n\n2007-12-27 Jeffrey Stedfast\n\n\t* gmime/gmime-utils.c (decode_8bit): Now takes a default_charset\n\targument which we use in place of the locale charet if\n\tnon-NULL. We also now always include this charset in our list of\n\tcharsets to check for a best-match (obviously this charset is\n\tunlikely to be an exact fit if this function is getting called, so\n\twe place it at the end of the list).\n\t(rfc2047_decode_word): If given a valid charset in the\n\tencoded-word token, always use that for charset conversion to UTF-8\n\teven if it doesn't convert fully. We don't want to fall back to\n\tthe user's supplied charset list because it may contain iso-8859-1\n\twhich will likely always be a 'best-match' charset.\n\n2007-12-26 Jeffrey Stedfast\n\n\t* gmime/gmime-utils.c (g_mime_utils_decode_8bit): Made public.\n\n\t* gmime/internet-address.c (decode_mailbox): Instead of doing our\n\town thing to convert raw 8bit/multibyte text sequences into UTF-8,\n\tuse the same function we use in gmime-utils.c's header decoder.\n\n2007-12-25 Jeffrey Stedfast\n\n\t* gmime/charset-map.c: New source file to generate the charset\n\tmap (moved out of gmime-charset.c)\n\n\t* gmime/gmime-charset.c (main): Removed.\n\n2007-12-25 Jeffrey Stedfast\n\n\t* gmime/gmime-charset.c (main): Cleaned up the logic and made it\n\tso that we can alias a block to a previous block if the blocks are\n\tidentical rather than just aliasing when all values in the block\n\tare identical. Happens to make no difference in the output, but\n\tthe logic is now there if that ever changes.\n\n2007-12-24 \ Jeffrey Stedfast\n\n\t* gmime/gmime-charset-map-private.h: Regenerated.\n\n\t* gmime/gmime-charset.c (known_iconv_charsets): Map all of the\n\tgb2312 aliases to GBK as GBK is a superset of gb2312 (apparently\n\tsome clients are tagging GBK as gb2312 which is missing some\n\tglyphs contained within GBK).\n\t(main): Added iso-8859-6 to the table for Arabic support.\n\n2007-12-16 Jeffrey Stedfast\n\n\t* gmime/gmime-utils.c (decode_8bit): When reallocing our output\n\tbuffer, we need to update outleft as well.\n\n2007-12-08 Jeffrey Stedfast\n\n\t* gmime/gmime-utils.c (rfc2047_encode_merge_rfc822_words):\n\tCompletely rewritten with new logic which will hopefully group\n\twords more logically.\n\n2007-12-08 Jeffrey Stedfast\n\n\tFixes bug #498720\n\n\t* gmime/internet-address.c (internet_address_list_writer): Renamed\n\tfrom the temporary internet_address_list_fold() name.\n\t(_internet_address_to_string): New internal function that writes\n\tan InternetAddress to a GString, doing proper folding and rfc2047\n\tencoding if requested.\n\t(internet_address_to_string): Use the new internal function.\n\n\t* tests/test-mime.c: Added another addrspec test and fixed up some\n\texception strings to be a little more helpful.\n\n2007-12-05 \ Jeffrey Stedfast\n\n\t* configure.in: Fixed a bug where explicitly disabling largefile\n\tsupport would add -D_FILE_OFFSET_BITS=no to the compiler\n\tCFLAGS. Also added a blaring WARNING when -enable-largefile is\n\tpassed.\n\n2007-11-23 \ Jeffrey Stedfast\n\n\tAttempt at solving bug #498720 for address fields, altho it should\n\tprobably be made to handle folding single addresses in the case\n\twhere they are too long to fit within a single line.\n\n\t* gmime/internet-address.c (internet_address_list_fold): New\n\tfunction.\n\n\t* gmime/gmime-message.c (write_structured): Renamed from\n\twrite_addrspec().\n\t(write_addrspec): New header writer that writes\n\tInternetAddressLists in a nicely folded manner.\n\n2007-11-12 Jeffrey Stedfast\n\n\t* gmime/internet-address.c (internet_address_destroy): No need to\n\tcheck if ia != NULL, we know this is true already.\n" module: pkgsrc subject: 'CVS commit: pkgsrc/mail/gmime' unixtime: '1208356659' user: wiz