Re: [evolution-patches] patch for bug #62136 (url highlighting)
- From: Jeffrey Stedfast <fejj ximian com>
- To: Not Zed <notzed ximian com>
- Cc: evolution-patches ximian com
- Subject: Re: [evolution-patches] patch for bug #62136 (url highlighting)
- Date: Tue, 03 Aug 2004 23:22:03 -0400
On Tue, 2004-08-03 at 22:48, Not Zed wrote:
> will that handle broken utf8 properly? g_utf8_next_char could go off
> the end of the string, or go nowhere, could it infinite loop too?
that's why the while conditional also checks inptr < inend - shouldn't
that be enough? tho maybe I should use g_utf8_find_next_char() so that I
can pass in the inend pointer...
can't infinite loop afaict.
Jeff
>
> On Tue, 2004-08-03 at 13:20 -0400, Jeffrey Stedfast wrote:
> > http://bugzilla.ximian.com/show_bug.cgi?id=62136
> >
> > The lone '@' character in his signature was causing the problem since
> > the trie_search() would return that position but the ::start() method
> > would fail (it's not an email address) and so the function would
> > immediately return FALSE (aka "no patterns found").
> >
> > changed the code to loop until it has scanned the entire buffer it was
> > given.
> >
> > Jeff
> > text/plain attachment (62136.patch)
> > ? 24026.patch
> > ? 62136.patch
> > ? body
> > ? body.c
> > ? body.txt
> > ? body2.txt
> > ? charset-map.c
> > ? charset-map.diff
> > ? class.sh
> > ? cmsutil.c
> > ? date.patch
> > ? flags
> > ? foo
> > ? foo.txt
> > ? foo2.txt
> > ? gw-body.txt
> > ? iso
> > ? iso.c
> > ? lang.patch
> > ? namespace.sh
> > ? smime
> > ? providers/imap4/reconnect.patch
> > ? tests/data/camel-mime-tests.tar.gz
> > Index: ChangeLog
> > ===================================================================
> > RCS file: /cvs/gnome/evolution/camel/ChangeLog,v
> > retrieving revision 1.2234
> > diff -u -r1.2234 ChangeLog
> > --- ChangeLog 3 Aug 2004 16:31:47 -0000 1.2234
> > +++ ChangeLog 3 Aug 2004 17:14:26 -0000
> > @@ -1,5 +1,11 @@
> > 2004-08-03 Jeffrey Stedfast <fejj novell com>
> >
> > + * camel-url-scanner.c (camel_url_scanner_scan): In the case of
> > + start() or end() failing, loop starting with the first character
> > + immediately following the failed match position. Fixes bug #62136.
> > +
> > +2004-08-03 Jeffrey Stedfast <fejj novell com>
> > +
> > * providers/imap4/camel-imap4-store.c (imap4_construct): Pass a
> > reconnect func.
> >
> > Index: camel-url-scanner.c
> > ===================================================================
> > RCS file: /cvs/gnome/evolution/camel/camel-url-scanner.c,v
> > retrieving revision 1.13
> > diff -u -r1.13 camel-url-scanner.c
> > --- camel-url-scanner.c 28 Jun 2004 00:18:20 -0000 1.13
> > +++ camel-url-scanner.c 3 Aug 2004 17:14:26 -0000
> > @@ -76,29 +76,33 @@
> > gboolean
> > camel_url_scanner_scan (CamelUrlScanner *scanner, const char *in, size_t inlen, urlmatch_t *match)
> > {
> > - const char *pos, *inend;
> > + const char *pos, *inptr, *inend;
> > urlpattern_t *pat;
> > int pattern;
> >
> > g_return_val_if_fail (scanner != NULL, FALSE);
> > g_return_val_if_fail (in != NULL, FALSE);
> >
> > - if (!(pos = e_trie_search (scanner->trie, in, inlen, &pattern)))
> > - return FALSE;
> > -
> > - pat = g_ptr_array_index (scanner->patterns, pattern);
> > -
> > - match->pattern = pat->pattern;
> > - match->prefix = pat->prefix;
> > -
> > + inptr = in;
> > inend = in + inlen;
> > - if (!pat->start (in, pos, inend, match))
> > - return FALSE;
> >
> > - if (!pat->end (in, pos, inend, match))
> > - return FALSE;
> > + do {
> > + if (!(pos = e_trie_search (scanner->trie, inptr, inlen, &pattern)))
> > + return FALSE;
> > +
> > + pat = g_ptr_array_index (scanner->patterns, pattern);
> > +
> > + match->pattern = pat->pattern;
> > + match->prefix = pat->prefix;
> > +
> > + if (pat->start (in, pos, inend, match) && pat->end (in, pos, inend, match))
> > + return TRUE;
> > +
> > + inptr = g_utf8_next_char (pos);
> > + inlen = inend - inptr;
> > + } while (inptr != NULL && inptr < inend);
> >
> > - return TRUE;
> > + return FALSE;
> > }
> >
> >
> --
>
> Michael Zucchi <notzed ximian com>
> "born to die, live to work, it's
> all downhill from here"
> Novell's Evolution and Free
> Software Developer
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]