From aee6c97096e319b8a4d5a4744002bd0f18398fb2 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Sat, 8 Aug 2015 00:06:06 +0200 Subject: xml: move entity to namedentitystr() --- xml.c | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/xml.c b/xml.c index 079b106..ad191de 100644 --- a/xml.c +++ b/xml.c @@ -8,23 +8,6 @@ #include "xml.h" -static const struct { - char *entity; - size_t len; - int c; -} entities[] = { - { .entity = "<", .len = 4, .c = '<' }, - { .entity = ">", .len = 4, .c = '>' }, - { .entity = "'", .len = 6, .c = '\'' }, - { .entity = "&", .len = 5, .c = '&' }, - { .entity = """, .len = 6, .c = '"' }, - { .entity = "<", .len = 4, .c = '<' }, - { .entity = ">", .len = 4, .c = '>' }, - { .entity = "&APOS;", .len = 6, .c = '\'' }, - { .entity = "&", .len = 5, .c = '&' }, - { .entity = """, .len = 6, .c = '"' } -}; - static int xmlparser_string_getnext(XMLParser *x) { @@ -279,6 +262,21 @@ xml_codepointtoutf8(uint32_t cp, uint32_t *utf) ssize_t xml_namedentitytostr(const char *e, char *buf, size_t bufsiz) { + const struct { + char *entity; + int c; + } entities[] = { + { .entity = "&", .c = '&' }, + { .entity = "<", .c = '<' }, + { .entity = ">", .c = '>' }, + { .entity = "'", .c = '\'' }, + { .entity = """, .c = '"' }, + { .entity = "&", .c = '&' }, + { .entity = "<", .c = '<' }, + { .entity = ">", .c = '>' }, + { .entity = "&APOS;", .c = '\'' }, + { .entity = """, .c = '"' } + }; size_t i; /* buffer is too small */ @@ -290,8 +288,7 @@ xml_namedentitytostr(const char *e, char *buf, size_t bufsiz) return 0; for (i = 0; i < sizeof(entities) / sizeof(*entities); i++) { - /* NOTE: compares max 6 chars */ - if (!strncmp(e, entities[i].entity, 6)) { + if (!strcmp(e, entities[i].entity)) { buf[0] = entities[i].c; buf[1] = '\0'; return 1; -- cgit v1.2.3