2002-12-09 Jeffrey Stedfast * gmime/url-scanner.c: Use our own masking table since we need it atoms to be slightly different. There's a few more chars we want to restrict. Also has the benefit of being easier to split out if someone else wants to use it. (g_url_addrspec_end): Fixed to not be fooled in the case where the address is followed immediately by a period. (g_url_web_end): Made more robust. (g_url_scanner_scan): Oops. We need to set the match->pattern string pointer to the correct pattern before executing the start/end methods (as some of them rely on this info). 2002-12-09 Jeffrey Stedfast * gmime/url-scanner.c: Don't need a hash table anymore. (g_url_scanner_add): When adding a pattern to the trie, use the array index as the pattern_id argument. (g_url_scanner_scan): Use the matched_id set by g_trie_search() to lookup the urlpattern_t instead of using a hash table. * gmime/gtrie.c (g_trie_add): Now takes a pattern_id argument so that we can avoid the use of GQuarks and thus save on unecessary memory usage. (g_trie_search): Instead of giving our caller back the pattern string pointer, give him back the pattern id. 2002-12-09 Jeffrey Stedfast * gmime/gtrie.c (g_trie_matches): Removed. (g_trie_search): Fixed the FIXME. 2002-12-09 Jeffrey Stedfast * gmime/gmime-filter-html.c: Modified to use url-scanner.c instead of using glibc's regex routines. This has improved performance by ~16.5x not to mention that it is also more accurate than the regex patterns had been (the url scanner can be setup to be much stricter in the matching). * gmime/url-scanner.c: New source file implementing a simple expression scanner meant (currently designed for url matching) which uses gtrie. * gmime/gtrie.c: New source file implementing Aho-Corasick's Trie graph algorithm. 2002-12-08 Jeffrey Stedfast Fix for bug #91536 * gmime/gmime-object.c (g_mime_object_register_type): Use a struct to hold the object_type for the subtype hash. 64 archs use 32bit ints and so using GINT_TO_POINTER() and GPOINTER_TO_INT() doesn't work. (g_mime_object_new_type): Get the object_type from the subtype bucket. 2002-12-06 Jeffrey Stedfast * gmime/gmime-stream.c (g_mime_stream_writev): Pointer erithmetic fixes. * gmime/memchunk.c (memchunk_alloc): Pointer arithmetic fixes. 2002-12-03 Jeffrey Stedfast * gmime/gmime-utils.c (datetok): Modified to properly handle when the first char of a token is a special char (such as a '-') that is also used as a token delimiter. 2002-12-02 Jeffrey Stedfast * gmime/gmime-filter-html.c (g_mime_filter_html_init): match REG_ICASE so we don't cut off at the first capital letter, duh. 2002-12-01 Jeffrey Stedfast * gmime/gmime-utils.c: #define _GNU_SOURCE for isblank on GNU systems. * gmime/gmime-gpg-context.c (gpg_ctx_op_wait): Fixed the errno saving. 2002-11-21 Jeffrey Stedfast * gmime/gmime-message.c (write_received): After skipping the special received token and it's value, skip any following comments as well. (skip_addrspec): Skip past the '.' and '@' chars before decoding the next word or domain respectively. 2002-11-20 Jeffrey Stedfast * gmime/gmime-message.c (write_received): New function to nicely format Received headers. (write_msgid): New writer function that doesn't fold the msg-id no matter now long it is. (g_mime_message_init): Override the writer functions for Received and Message-Id headers. Should we also override the writer function for Path headers to not wrap? * gmime/internet-address.c (decode_addrspec): Get rid of an extra call to decode_lwsp that wasn't needed. * gmime/gmime-header.c (g_mime_header_register_writer): Renamed. 2002-11-18 Jeffrey Stedfast * configure.in: Make sure to include -liconv on systems that need it.