From d9f0de82f84cf68c2990adcad0d369af9038a113 Mon Sep 17 00:00:00 2001 From: Laurent MONIN Date: Thu, 8 Dec 2005 16:22:53 +0100 Subject: [PATCH] Use closing_tag variable in tests. --- src/document/html/parser/forms.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/document/html/parser/forms.c b/src/document/html/parser/forms.c index 8952aa05..a2ac329e 100644 --- a/src/document/html/parser/forms.c +++ b/src/document/html/parser/forms.c @@ -396,23 +396,27 @@ abort: } if (!namelen) goto see; + if (name[0] == '/') { + namelen--; + if (!namelen) goto see; + name++; closing_tag = 1; } else { closing_tag = 0; } - if (!strlcasecmp(name, namelen, "/SELECT", 7)) { + if (closing_tag && !strlcasecmp(name, namelen, "SELECT", 6)) { add_select_item(&lnk_menu, &lbl, &orig_lbl, values, order, nnmi); goto end_parse; } - if (!strlcasecmp(name, namelen, "/OPTION", 7)) { + if (closing_tag && !strlcasecmp(name, namelen, "OPTION", 6)) { add_select_item(&lnk_menu, &lbl, &orig_lbl, values, order, nnmi); goto see; } - if (!strlcasecmp(name, namelen, "OPTION", 6)) { + if (!closing_tag && !strlcasecmp(name, namelen, "OPTION", 6)) { unsigned char *value, *label; add_select_item(&lnk_menu, &lbl, &orig_lbl, values, order, nnmi); @@ -438,14 +442,14 @@ abort: goto see; } - if (!strlcasecmp(name, namelen, "OPTGROUP", 8) - || !strlcasecmp(name, namelen, "/OPTGROUP", 9)) { + if ((!closing_tag && !strlcasecmp(name, namelen, "OPTGROUP", 8)) + || (closing_tag && !strlcasecmp(name, namelen, "/OPTGROUP", 9))) { add_select_item(&lnk_menu, &lbl, &orig_lbl, values, order, nnmi); if (group) new_menu_item(&lnk_menu, NULL, -1, 0), group = 0; } - if (!strlcasecmp(name, namelen, "OPTGROUP", 8)) { + if (!closing_tag && !strlcasecmp(name, namelen, "OPTGROUP", 8)) { unsigned char *label; label = get_attr_val(t_attr, "label", html_context->options);