From: Nathan W. <fac...@us...> - 2003-04-19 21:06:45
|
Update of /cvsroot/gaim/gaim/src In directory sc8-pr-cvs1:/tmp/cvs-serv7624/src Modified Files: gtkimhtml.c Log Message: this will fix gaim's parsing of urls with & in them, when they're sent properly as winaim does, and as gaim does over jabber. Index: gtkimhtml.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkimhtml.c,v retrieving revision 1.179 retrieving revision 1.180 diff -u -d -r1.179 -r1.180 --- gtkimhtml.c 19 Apr 2003 06:28:39 -0000 1.179 +++ gtkimhtml.c 19 Apr 2003 20:58:50 -0000 1.180 @@ -750,6 +750,10 @@ { gchar *t = tag; gchar *e, *a; + gchar *val; + gint len; + gchar c; + GString *ret; while (g_ascii_strncasecmp (t, opt, strlen (opt))) { gboolean quote = FALSE; @@ -773,13 +777,30 @@ while (*e && (*e != *(t - 1))) e++; if (*e == '\0') { return NULL; - } else - return g_strndup (a, e - a); + } else + val = g_strndup(a, e - a); } else { e = a = t; while (*e && !isspace ((gint) *e)) e++; - return g_strndup (a, e - a); + val = g_strndup(a, e - a); } + + ret = g_string_new(""); + e = val; + while(*e) { + if(gtk_imhtml_is_amp_escape(e, &c, &len)) { + ret = g_string_append_c(ret, c); + e += len; + } else { + ret = g_string_append_c(ret, *e); + e++; + } + } + + g_free(val); + val = ret->str; + g_string_free(ret, FALSE); + return val; } |