Experimentally working.
This commit is contained in:
parent
2e2062ddec
commit
483d17e39b
|
@ -243,6 +243,9 @@ extern "C" {
|
||||||
FN(NOFRAMES_CONTENT) \
|
FN(NOFRAMES_CONTENT) \
|
||||||
FN(NON_MATCHING_ENDTAG) \
|
FN(NON_MATCHING_ENDTAG) \
|
||||||
FN(OBSOLETE_ELEMENT) \
|
FN(OBSOLETE_ELEMENT) \
|
||||||
|
FN(OPTION_REMOVED) \
|
||||||
|
FN(OPTION_REMOVED_APPLIED) \
|
||||||
|
FN(OPTION_REMOVED_UNAPPLIED) \
|
||||||
FN(PREVIOUS_LOCATION) \
|
FN(PREVIOUS_LOCATION) \
|
||||||
FN(PROPRIETARY_ATTR_VALUE) \
|
FN(PROPRIETARY_ATTR_VALUE) \
|
||||||
FN(PROPRIETARY_ATTRIBUTE) \
|
FN(PROPRIETARY_ATTRIBUTE) \
|
||||||
|
|
34
src/config.c
34
src/config.c
|
@ -303,7 +303,12 @@ static const TidyOptionImpl option_defs[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* List of deprecated options and their replacements. */
|
/* Deleted options. This array keeps track of options that have been
|
||||||
|
** removed from Tidy, and suggests a replacement. When a deleted option is
|
||||||
|
** used, client programs will have the opportunity to consume the option
|
||||||
|
** first via the callback, and if not handled by the callback, will be
|
||||||
|
** handled by Tidy, generally by setting an alternate or new option.
|
||||||
|
*/
|
||||||
static const struct {
|
static const struct {
|
||||||
ctmbstr name; /**< name of the deprecated option */
|
ctmbstr name; /**< name of the deprecated option */
|
||||||
TidyOptionId replacementId; /**< Id of the replacement option, or 0 if none. */
|
TidyOptionId replacementId; /**< Id of the replacement option, or 0 if none. */
|
||||||
|
@ -503,7 +508,11 @@ static void ReparseTagDecls( TidyDocImpl* doc, uint changedUserTags )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* returns the option id of the replacement Tidy option for optName. */
|
/* Returns the option id of the replacement Tidy option for optName. Because
|
||||||
|
** an option might not have a replacement (0, TidyUnknownOption), a return
|
||||||
|
** value of N_TIDY_OPTIONS indicates an error, i.e., that the option isn't
|
||||||
|
** in the deprecated list.
|
||||||
|
*/
|
||||||
static TidyOptionId getOptionReplacement( ctmbstr optName )
|
static TidyOptionId getOptionReplacement( ctmbstr optName )
|
||||||
{
|
{
|
||||||
uint i = 0;
|
uint i = 0;
|
||||||
|
@ -519,26 +528,31 @@ static TidyOptionId getOptionReplacement( ctmbstr optName )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* indicates whether or not optName is deprecated */
|
/* Indicates whether or not optName is deprecated */
|
||||||
static Bool isOptionDeprecated( ctmbstr optName )
|
static Bool isOptionDeprecated( ctmbstr optName )
|
||||||
{
|
{
|
||||||
return getOptionReplacement( optName ) != N_TIDY_OPTIONS;
|
return getOptionReplacement( optName ) != N_TIDY_OPTIONS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* forward declaration */
|
/* Forward declaration */
|
||||||
Bool GetPickListValue();
|
Bool GetPickListValue();
|
||||||
|
|
||||||
/* substitute the new option for the deprecated one. */
|
/* Aubstitute the new option for the deprecated one. */
|
||||||
static Bool subDeprecatedOption( TidyDocImpl* doc, ctmbstr oldName, ctmbstr oldValue)
|
static Bool subDeprecatedOption( TidyDocImpl* doc, ctmbstr oldName, ctmbstr oldValue)
|
||||||
{
|
{
|
||||||
TidyOptionId newOptId = getOptionReplacement( oldName );
|
TidyOptionId newOptId = getOptionReplacement( oldName );
|
||||||
|
ctmbstr newName = TY_(getOption)( newOptId )->name;
|
||||||
|
TidyDoc tdoc = tidyImplToDoc( doc );
|
||||||
|
|
||||||
if ( newOptId == TidyUnknownOption )
|
if ( newOptId == TidyUnknownOption )
|
||||||
{
|
{
|
||||||
printf("%s has been removed, and there is no replacement.\n", oldName);
|
TY_(Report)( doc, NULL, NULL, OPTION_REMOVED, oldName );
|
||||||
return no;
|
return no;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/********************/
|
||||||
|
/* `show-body-only` */
|
||||||
|
/********************/
|
||||||
if ( TY_(tmbstrcasecmp)( oldName, "show-body-only" ) == 0 )
|
if ( TY_(tmbstrcasecmp)( oldName, "show-body-only" ) == 0 )
|
||||||
{
|
{
|
||||||
uint value;
|
uint value;
|
||||||
|
@ -548,22 +562,24 @@ static Bool subDeprecatedOption( TidyDocImpl* doc, ctmbstr oldName, ctmbstr oldV
|
||||||
{
|
{
|
||||||
if ( value == TidyNoState )
|
if ( value == TidyNoState )
|
||||||
{
|
{
|
||||||
printf("show-body-only is deprecated; use show-markup. No action taken.\n");
|
TY_(Report)( doc, NULL, NULL, OPTION_REMOVED_UNAPPLIED, oldName, newName );
|
||||||
TY_(SetOptionBool)( doc, newOptId, value );
|
TY_(SetOptionBool)( doc, newOptId, value );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TY_(SetOptionBool)( doc, newOptId, value );
|
TY_(SetOptionBool)( doc, newOptId, value );
|
||||||
printf("show-body-only has been removed; use show-markup, which has been set to `body-only`.\n");
|
ctmbstr val = tidyOptGetCurrPick( tdoc, newOptId );
|
||||||
|
TY_(Report)( doc, NULL, NULL, OPTION_REMOVED_APPLIED, oldName, newName, val );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("Report bad argument %s\n", oldValue);
|
printf("-->Report bad argument %s\n", oldValue);
|
||||||
}
|
}
|
||||||
return yes;
|
return yes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return no;
|
return no;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1906,6 +1906,9 @@ static languageDefinition language_en = { whichPluralForm_en, {
|
||||||
{ NOFRAMES_CONTENT, 0, "%s not inside 'noframes' element" },
|
{ NOFRAMES_CONTENT, 0, "%s not inside 'noframes' element" },
|
||||||
{ NON_MATCHING_ENDTAG, 0, "replacing unexpected %s with </%s>" },
|
{ NON_MATCHING_ENDTAG, 0, "replacing unexpected %s with </%s>" },
|
||||||
{ OBSOLETE_ELEMENT, 0, "replacing obsolete element %s with %s" },
|
{ OBSOLETE_ELEMENT, 0, "replacing obsolete element %s with %s" },
|
||||||
|
{ OPTION_REMOVED, 0, "option \"%s\" no longer exists, and no replacement could be found." },
|
||||||
|
{ OPTION_REMOVED_APPLIED, 0, "option \"%s\" replaced with \"%s\", which Tidy has set to \"%s\"." },
|
||||||
|
{ OPTION_REMOVED_UNAPPLIED, 0, "option \"%s\" replaced with \"%s\", but Tidy could not set it for you." },
|
||||||
{ PREVIOUS_LOCATION, 0, "<%s> previously mentioned" },
|
{ PREVIOUS_LOCATION, 0, "<%s> previously mentioned" },
|
||||||
{ PROPRIETARY_ATTR_VALUE, 0, "%s proprietary attribute value \"%s\"" },
|
{ PROPRIETARY_ATTR_VALUE, 0, "%s proprietary attribute value \"%s\"" },
|
||||||
{ PROPRIETARY_ATTRIBUTE, 0, "%s proprietary attribute \"%s\"" },
|
{ PROPRIETARY_ATTRIBUTE, 0, "%s proprietary attribute \"%s\"" },
|
||||||
|
|
|
@ -345,6 +345,9 @@ static struct _dispatchTable {
|
||||||
{ NOFRAMES_CONTENT, TidyWarning, formatStandard },
|
{ NOFRAMES_CONTENT, TidyWarning, formatStandard },
|
||||||
{ NON_MATCHING_ENDTAG, TidyWarning, formatStandard },
|
{ NON_MATCHING_ENDTAG, TidyWarning, formatStandard },
|
||||||
{ OBSOLETE_ELEMENT, TidyWarning, formatStandard },
|
{ OBSOLETE_ELEMENT, TidyWarning, formatStandard },
|
||||||
|
{ OPTION_REMOVED, TidyConfig, formatStandard },
|
||||||
|
{ OPTION_REMOVED_APPLIED, TidyConfig, formatStandard },
|
||||||
|
{ OPTION_REMOVED_UNAPPLIED, TidyConfig, formatStandard },
|
||||||
{ PREVIOUS_LOCATION, TidyInfo, formatStandard },
|
{ PREVIOUS_LOCATION, TidyInfo, formatStandard },
|
||||||
{ PROPRIETARY_ATTR_VALUE, TidyWarning, formatAttributeReport },
|
{ PROPRIETARY_ATTR_VALUE, TidyWarning, formatAttributeReport },
|
||||||
{ PROPRIETARY_ATTRIBUTE, TidyWarning, formatAttributeReport },
|
{ PROPRIETARY_ATTRIBUTE, TidyWarning, formatAttributeReport },
|
||||||
|
@ -749,12 +752,29 @@ TidyMessageImpl *formatStandard(TidyDocImpl* doc, Node *element, Node *node, uin
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case STRING_UNKNOWN_OPTION:
|
case STRING_UNKNOWN_OPTION:
|
||||||
|
case OPTION_REMOVED:
|
||||||
{
|
{
|
||||||
ctmbstr str;
|
ctmbstr str;
|
||||||
if ( (str = va_arg( args, ctmbstr)) )
|
if ( (str = va_arg( args, ctmbstr)) )
|
||||||
return TY_(tidyMessageCreateWithLexer)(doc, code, level, str);
|
return TY_(tidyMessageCreateWithLexer)(doc, code, level, str);
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
case OPTION_REMOVED_UNAPPLIED:
|
||||||
|
{
|
||||||
|
ctmbstr s1 = va_arg( args, ctmbstr );
|
||||||
|
ctmbstr s2 = va_arg( args, ctmbstr );
|
||||||
|
return TY_(tidyMessageCreateWithLexer)(doc, code, level, s1, s2);
|
||||||
|
}
|
||||||
|
|
||||||
|
case OPTION_REMOVED_APPLIED:
|
||||||
|
{
|
||||||
|
ctmbstr s1 = va_arg( args, ctmbstr );
|
||||||
|
ctmbstr s2 = va_arg( args, ctmbstr );
|
||||||
|
ctmbstr s3 = va_arg( args, ctmbstr );
|
||||||
|
return TY_(tidyMessageCreateWithLexer)(doc, code, level, s1, s2, s3);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
case BAD_SURROGATE_LEAD:
|
case BAD_SURROGATE_LEAD:
|
||||||
case BAD_SURROGATE_PAIR:
|
case BAD_SURROGATE_PAIR:
|
||||||
case BAD_SURROGATE_TAIL:
|
case BAD_SURROGATE_TAIL:
|
||||||
|
|
Loading…
Reference in a new issue