aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--libsylph/xml.c12
2 files changed, 6 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index a60476fc..aa41ae94 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
* src/account_dialog.c: account_open(): removed alloca() call.
* src/folderview.c: removed alloca() calls.
* src/undo.c: undo_insert_text_cb(): removed alloca() call.
+ * libsylph/xml.c: xml_unescape_str(): removed alloca() call.
2011-06-24
diff --git a/libsylph/xml.c b/libsylph/xml.c
index 23b98506..e641e84d 100644
--- a/libsylph/xml.c
+++ b/libsylph/xml.c
@@ -480,7 +480,6 @@ gint xml_unescape_str(gchar *str)
gchar *start;
gchar *end;
gchar *p = str;
- gchar *esc_str;
gchar ch;
gint len;
@@ -496,16 +495,15 @@ gint xml_unescape_str(gchar *str)
continue;
}
- Xstrndup_a(esc_str, start, len, return -1);
- if (!strcmp(esc_str, "<"))
+ if (!strncmp(start, "<", 4))
ch = '<';
- else if (!strcmp(esc_str, "&gt;"))
+ else if (!strncmp(start, "&gt;", 4))
ch = '>';
- else if (!strcmp(esc_str, "&amp;"))
+ else if (!strncmp(start, "&amp;", 5))
ch = '&';
- else if (!strcmp(esc_str, "&apos;"))
+ else if (!strncmp(start, "&apos;", 6))
ch = '\'';
- else if (!strcmp(esc_str, "&quot;"))
+ else if (!strncmp(start, "&quot;", 6))
ch = '\"';
else {
p = end + 1;