diff --git a/include/tidyenum.h b/include/tidyenum.h index 53f8afe..99a5a16 100644 --- a/include/tidyenum.h +++ b/include/tidyenum.h @@ -222,6 +222,7 @@ extern "C" { FN(MISSING_DOCTYPE) \ FN(MISSING_ENDTAG_BEFORE) \ FN(MISSING_ENDTAG_FOR) \ + FN(MISSING_ENDTAG_OPTIONAL) \ FN(MISSING_IMAGEMAP) \ FN(MISSING_QUOTEMARK) \ FN(MISSING_QUOTEMARK_OPEN) \ diff --git a/localize/translations/tidy.pot b/localize/translations/tidy.pot index b884752..df208bf 100644 --- a/localize/translations/tidy.pot +++ b/localize/translations/tidy.pot @@ -5,7 +5,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: HTML Tidy poconvert.rb\n" "Project-Id-Version: \n" -"POT-Creation-Date: 2017-10-02 13:19:15\n" +"POT-Creation-Date: 2017-10-02 13:26:57\n" "Last-Translator: jderry\n" "Language-Team: \n" @@ -2367,6 +2367,11 @@ msgctxt "MISSING_ENDTAG_FOR" msgid "missing " msgstr "" +#, c-format +msgctxt "MISSING_ENDTAG_OPTIONAL" +msgid "missing optional end tag " +msgstr "" + #, c-format msgctxt "MISSING_IMAGEMAP" msgid "%s should use client-side image map" diff --git a/src/language_en.h b/src/language_en.h index e481aac..9e799c1 100644 --- a/src/language_en.h +++ b/src/language_en.h @@ -1910,6 +1910,7 @@ static languageDefinition language_en = { whichPluralForm_en, { { MISSING_DOCTYPE, 0, "missing declaration" }, { MISSING_ENDTAG_BEFORE, 0, "missing before %s" }, { MISSING_ENDTAG_FOR, 0, "missing " }, + { MISSING_ENDTAG_OPTIONAL, 0, "missing optional end tag " }, { MISSING_IMAGEMAP, 0, "%s should use client-side image map" }, { MISSING_QUOTEMARK, 0, "%s attribute with missing trailing quote mark" }, { MISSING_QUOTEMARK_OPEN, 0, "value for attribute \"%s\" missing quote marks" }, diff --git a/src/message.c b/src/message.c index d30de74..d94c286 100644 --- a/src/message.c +++ b/src/message.c @@ -310,6 +310,7 @@ static struct _dispatchTable { { MISSING_DOCTYPE, TidyWarning, formatStandard }, { MISSING_ENDTAG_BEFORE, TidyWarning, formatStandard }, { MISSING_ENDTAG_FOR, TidyWarning, formatStandard }, + { MISSING_ENDTAG_OPTIONAL, TidyInfo, formatStandard }, { MISSING_IMAGEMAP, TidyWarning, formatAttributeReport }, { MISSING_QUOTEMARK, TidyWarning, formatAttributeReport }, { MISSING_QUOTEMARK_OPEN, TidyInfo, formatAttributeReport }, @@ -814,6 +815,7 @@ TidyMessageImpl *formatStandard(TidyDocImpl* doc, Node *element, Node *node, uin return TY_(tidyMessageCreateWithNode)(doc, rpt, code, level, nodedesc ); case MISSING_ENDTAG_FOR: + case MISSING_ENDTAG_OPTIONAL: case PREVIOUS_LOCATION: return TY_(tidyMessageCreateWithNode)(doc, rpt, code, level, element->element ); diff --git a/src/parser.c b/src/parser.c index 05a6b9b..5cbf107 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1270,6 +1270,11 @@ void TY_(ParseBlock)( TidyDocImpl* doc, Node *element, GetTokenMode mode) if ( !TY_(nodeHasCM)(element, CM_OPT) && !element->implicit ) TY_(Report)(doc, element, node, MISSING_ENDTAG_BEFORE ); + + /* #521, warn on missing optional end-tags if not omitting them. */ + if ( cfgBool( doc, TidyOmitOptionalTags ) == no && TY_(nodeHasCM)(element, CM_OPT) ) + TY_(Report)(doc, element, node, MISSING_ENDTAG_OPTIONAL ); + TY_(UngetToken)( doc );