diff --git a/include/tidyenum.h b/include/tidyenum.h index 949d464..bb84340 100644 --- a/include/tidyenum.h +++ b/include/tidyenum.h @@ -107,6 +107,7 @@ extern "C" { */ #define FOREACH_MSG_MISC(FN) \ /** line %d column %d */ FN(LINE_COLUMN_STRING) \ +/** %s: line %d column %d */ FN(FN_LINE_COLUMN_STRING) \ /** discarding */ FN(STRING_DISCARDING) \ /** error and errors */ FN(STRING_ERROR_COUNT_ERROR) \ /** warning and warnings */ FN(STRING_ERROR_COUNT_WARNING) \ @@ -635,6 +636,7 @@ typedef enum TidyQuoteNbsp, /**< Output non-breaking space as entity */ TidyReplaceColor, /**< Replace hex color attribute values with names */ TidyShowErrors, /**< Number of errors to put out */ + TidyShowFilename, /**< If true, the input filename is displayed with the error messages */ TidyShowInfo, /**< If true, info-level messages are shown */ TidyShowMarkup, /**< If false, normal output is suppressed */ TidyShowMetaChange, /**< show when meta http-equiv content charset was changed - compatibility */ diff --git a/src/config.c b/src/config.c index f2c4cb6..9235663 100644 --- a/src/config.c +++ b/src/config.c @@ -245,6 +245,7 @@ static const TidyOptionImpl option_defs[] = { TidyQuoteNbsp, ME, "quote-nbsp", BL, yes, ParsePickList, &boolPicks }, { TidyReplaceColor, MX, "replace-color", BL, no, ParsePickList, &boolPicks }, { TidyShowErrors, DD, "show-errors", IN, 6, ParseInt, NULL }, + { TidyShowFilename, DD, "show-filename", BL, no, ParsePickList, &boolPicks }, { TidyShowInfo, DD, "show-info", BL, yes, ParsePickList, &boolPicks }, { TidyShowMarkup, DD, "markup", BL, yes, ParsePickList, &boolPicks }, { TidyShowMetaChange, DG, "show-meta-change", BL, no, ParsePickList, &boolPicks }, /* 20170609 - Issue #456 */ diff --git a/src/language_en.h b/src/language_en.h index 89ce073..3e733d5 100644 --- a/src/language_en.h +++ b/src/language_en.h @@ -1172,6 +1172,21 @@ static languageDefinition language_en = { whichPluralForm_en, { "This option specifies the number Tidy uses to determine if further errors " "should be shown. If set to 0, then no errors are shown. " }, + {/* Important notes for translators: + - Use only , , , , and +
. + - Entities, tags, attributes, etc., should be enclosed in . + - Option values should be enclosed in . + - It's very important that
be self-closing! + - The strings "Tidy" and "HTML Tidy" are the program name and must not + be translated. */ + TidyShowFilename, 0, + "This option specifies if Tidy should show the filename in messages. eg: " + "
" + " tidy -q -e --show-filename yes index.html
" + " index.html: line 43 column 3 - Warning: replacing invalid UTF-8 bytes (char. code U+00A9) " + }, + {/* Important notes for translators: - Use only , , , , and
. @@ -1688,6 +1703,7 @@ static languageDefinition language_en = { whichPluralForm_en, { ** @remark enum generator FOREACH_MSG_MISC ********************************************/ { LINE_COLUMN_STRING, 0, "line %d column %d - " }, + { FN_LINE_COLUMN_STRING, 0, "%s: line %d column %d - " }, {/* For example, "discarding invalid UTF-16 surrogate pair" */ STRING_DISCARDING, 0, "discarding" }, diff --git a/src/message.c b/src/message.c index eb097de..064ef8a 100644 --- a/src/message.c +++ b/src/message.c @@ -1520,6 +1520,7 @@ static const TidyOptionId TidyAsciiCharsLinks[] = { TidyMakeClean, TidyUnkn static const TidyOptionId TidyBlockTagsLinks[] = { TidyEmptyTags, TidyInlineTags, TidyPreTags, TidyUseCustomTags, TidyUnknownOption }; static const TidyOptionId TidyCharEncodingLinks[] = { TidyInCharEncoding, TidyOutCharEncoding, TidyUnknownOption }; static const TidyOptionId TidyDuplicateAttrsLinks[] = { TidyJoinClasses, TidyJoinStyles, TidyUnknownOption }; +static const TidyOptionId TidyEmacsLinks[] = { TidyShowFilename, TidyUnknownOption }; static const TidyOptionId TidyEmptyTagsLinks[] = { TidyBlockTags, TidyInlineTags, TidyPreTags, TidyUseCustomTags, TidyUnknownOption }; static const TidyOptionId TidyErrFileLinks[] = { TidyOutFile, TidyUnknownOption }; static const TidyOptionId TidyInCharEncodingLinks[] = { TidyCharEncoding, TidyUnknownOption }; @@ -1534,6 +1535,7 @@ static const TidyOptionId TidyNumEntitiesLinks[] = { TidyDoctype, TidyPreser static const TidyOptionId TidyOutCharEncodingLinks[] = { TidyCharEncoding, TidyUnknownOption }; static const TidyOptionId TidyOutFileLinks[] = { TidyErrFile, TidyUnknownOption }; static const TidyOptionId TidyPreTagsLinks[] = { TidyBlockTags, TidyEmptyTags, TidyInlineTags, TidyUseCustomTags, TidyUnknownOption }; +static const TidyOptionId TidyShowFilenameLinks[] = { TidyEmacs, TidyUnknownOption }; static const TidyOptionId TidySortAttributesLinks[] = { TidyPriorityAttributes, TidyUnknownOption }; static const TidyOptionId TidyUseCustomTagsLinks[] = { TidyBlockTags, TidyEmptyTags, TidyInlineTags, TidyPreTags, TidyUnknownOption }; static const TidyOptionId TidyWrapAttValsLinks[] = { TidyWrapScriptlets, TidyLiteralAttribs, TidyUnknownOption }; @@ -1550,6 +1552,7 @@ static const TidyOptionDoc docs_xrefs[] = { TidyBlockTags, TidyBlockTagsLinks }, { TidyCharEncoding, TidyCharEncodingLinks }, { TidyDuplicateAttrs, TidyDuplicateAttrsLinks }, + { TidyEmacs, TidyEmacsLinks }, { TidyEmptyTags, TidyEmptyTagsLinks }, { TidyErrFile, TidyErrFileLinks }, { TidyInCharEncoding, TidyInCharEncodingLinks }, @@ -1563,6 +1566,7 @@ static const TidyOptionDoc docs_xrefs[] = { TidyOutCharEncoding, TidyOutCharEncodingLinks }, { TidyOutFile, TidyOutFileLinks }, { TidyPreTags, TidyPreTagsLinks }, + { TidyShowFilename, TidyShowFilenameLinks }, { TidySortAttributes, TidySortAttributesLinks }, { TidyMuteReports, TidyMuteLinks }, { TidyUseCustomTags, TidyUseCustomTagsLinks }, diff --git a/src/messageobj.c b/src/messageobj.c index 9d9cee2..e6aee29 100644 --- a/src/messageobj.c +++ b/src/messageobj.c @@ -127,6 +127,14 @@ static TidyMessageImpl *tidyMessageCreateInitV( TidyDocImpl *doc, TY_(tmbsnprintf)(result->messagePosDefault, sizeMessageBuf, "%s:%d:%d: ", cfgStr(doc, TidyEmacsFile), line, column); TY_(tmbsnprintf)(result->messagePos, sizeMessageBuf, "%s:%d:%d: ", cfgStr(doc, TidyEmacsFile), line, column); } + else if ( cfgBool(doc, TidyShowFilename) && cfgStr(doc, TidyEmacsFile) ) + { + /* Include filename in output */ + TY_(tmbsnprintf)(result->messagePosDefault, sizeMessageBuf, tidyDefaultString(FN_LINE_COLUMN_STRING), + cfgStr(doc, TidyEmacsFile), line, column); + TY_(tmbsnprintf)(result->messagePos, sizeMessageBuf, tidyLocalizedString(FN_LINE_COLUMN_STRING), + cfgStr(doc, TidyEmacsFile), line, column); + } else { /* traditional format */