+++ /dev/null
-diff -Nuard galeon-1.3.9.orig/embed/global-history.c galeon-1.3.9/embed/global-history.c
---- galeon-1.3.9.orig/embed/global-history.c 2003-09-06 00:58:46.000000000 +0200
-+++ galeon-1.3.9/embed/global-history.c 2003-09-16 23:13:42.000000000 +0200
-@@ -171,8 +171,8 @@
- static char *
- xml_decode_entity (const unsigned char *encoded)
- {
-- gchar *buffer;
-- gint i, j, length;
-+ char *buffer;
-+ char *src, *dst;
-
- if (encoded == NULL)
- {
-@@ -183,54 +183,53 @@
-
- /* Optimize for case where no escape codes are found, otherwise
- * use the first found code as the starting index */
-- if ((i = (char *) strstr (buffer, "&") - buffer) < 0)
-+ if ((src = strchr (buffer, '&')) == NULL)
- {
- return buffer;
- }
--
-- length = strlen (buffer);
-- for (j = i; i < length; i++)
-+
-+ for (dst = src; *src != '\0'; src++)
- {
-- if (encoded[i] == '&')
-+ if (*src == '&')
- {
-- if (strncmp (encoded + i + 1, "amp;", 4) == 0)
-+ if (strncmp (src + 1, "amp;", 4) == 0)
- {
-- buffer[j++] = '&';
-- i += 4;
-+ *dst++ = '&';
-+ src += 4;
- }
-- else if (strncmp (encoded + i + 1, "lt;", 3) == 0)
-+ else if (strncmp (src + 1, "lt;", 3) == 0)
- {
-- buffer[j++] = '<';
-- i += 3;
-+ *dst++ = '<';
-+ src += 3;
- }
-- else if (strncmp (encoded + i + 1, "gt;", 3) == 0)
-+ else if (strncmp (src + 1, "gt;", 3) == 0)
- {
-- buffer[j++] = '>';
-- i += 3;
-+ *dst++ = '>';
-+ src += 3;
- }
-- else if (strncmp (encoded + i + 1, "quot;", 5) == 0)
-+ else if (strncmp (src + 1, "quot;", 5) == 0)
- {
-- buffer[j++] = '"';
-- i += 5;
-+ *dst++ = '"';
-+ src += 5;
- }
-- else if (strncmp (encoded + i + 1, "apos;", 5) == 0)
-+ else if (strncmp (src + 1, "apos;", 5) == 0)
- {
-- buffer[j++] = '\'';
-- i += 5;
-+ *dst++ = '\'';
-+ src += 5;
- }
-- else if (encoded[i + 1] == '#')
-+ else if (src[1] == '#')
- {
-- buffer[j++] = atoi (encoded + i + 2);
-- i += 5;
-+ *dst++ = atoi (src + 2);
-+ src += 5;
- }
- }
- else
- {
-- buffer[j++] = encoded[i];
-+ *dst++ = *src;
- }
- }
-
-- buffer[j] = '\0';
-+ *dst++ = '\0';
- return buffer;
- }
-