Merge pull request #982 from htacg/issue_719
Fixes #719. Pass the string representation of the parameter name, and…
This commit is contained in:
commit
7cddcb59fd
|
@ -2022,7 +2022,7 @@ static Bool TIDY_CALL reportCallback(TidyMessage tmessage)
|
|||
TidyFormatParameterType messageType;
|
||||
ctmbstr messageFormat;
|
||||
|
||||
printf("FILTER: %s, %s\n", tidyGetMessageKey( tmessage ), tidyGetMessageOutput( tmessage ));
|
||||
printf("FILTER: %s\n%s\n%s\n", tidyGetMessageKey( tmessage ), tidyGetMessageOutput( tmessage ), tidyGetMessageOutputDefault( tmessage ));
|
||||
|
||||
/* loop through the arguments, if any, and print their details */
|
||||
pos = tidyGetMessageArguments( tmessage );
|
||||
|
|
|
@ -2125,6 +2125,16 @@ TIDY_EXPORT ctmbstr TIDY_CALL tidyLocalizedStringN(uint messageType, /**< The me
|
|||
*/
|
||||
TIDY_EXPORT ctmbstr TIDY_CALL tidyLocalizedString( uint messageType );
|
||||
|
||||
/** Provides a string given `messageType` in the default localization for
|
||||
** `quantity`. Some strings have one or more plural forms, and this function
|
||||
** will ensure that the correct singular or plural form is returned for the
|
||||
** specified quantity.
|
||||
** @result Returns the desired string.
|
||||
*/
|
||||
TIDY_EXPORT ctmbstr TIDY_CALL tidyDefaultStringN(uint messageType, /**< The message type. */
|
||||
uint quantity /**< The quantity. */
|
||||
);
|
||||
|
||||
/** Provides a string given `messageType` in the default localization (which
|
||||
** is `en`).
|
||||
** @param messageType The message type.
|
||||
|
|
|
@ -476,6 +476,16 @@ TY_PRIVATE void TY_(tidySetLanguageSetByUser)( void )
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Provides a string given `messageType` in the default
|
||||
* localization (which is `en`), for the given quantity.
|
||||
*/
|
||||
TY_PRIVATE ctmbstr TY_(tidyDefaultStringN)( uint messageType, uint quantity )
|
||||
{
|
||||
return tidyLocalizedStringImpl( messageType, &language_en, quantity);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Provides a string given `messageType` in the default
|
||||
* localization (which is `en`), for single plural form.
|
||||
|
|
|
@ -153,6 +153,12 @@ TY_PRIVATE ctmbstr TY_(tidyLocalizedString)( uint messageType );
|
|||
/** @{ */
|
||||
|
||||
|
||||
/**
|
||||
* Provides a string given `messageType` in the default
|
||||
* localization (which is `en`), for the given quantity.
|
||||
*/
|
||||
TY_PRIVATE ctmbstr TY_(tidyDefaultStringN)( uint messageType, uint quantity );
|
||||
|
||||
/**
|
||||
* Provides a string given `messageType` in the default
|
||||
* localization (which is `en`).
|
||||
|
|
|
@ -50,9 +50,9 @@ static char* TagToString(Node* tag, char* buf, size_t count)
|
|||
else if (tag->type == DocTypeTag)
|
||||
TY_(tmbsnprintf)(buf, count, "<!DOCTYPE>");
|
||||
else if (tag->type == TextNode)
|
||||
TY_(tmbsnprintf)(buf, count, "%s", tidyLocalizedString(STRING_PLAIN_TEXT));
|
||||
TY_(tmbsnprintf)(buf, count, "%s", "STRING_PLAIN_TEXT");
|
||||
else if (tag->type == XmlDecl)
|
||||
TY_(tmbsnprintf)(buf, count, "%s", tidyLocalizedString(STRING_XML_DECLARATION));
|
||||
TY_(tmbsnprintf)(buf, count, "%s", "STRING_XML_DECLARATION");
|
||||
else if (tag->element)
|
||||
TY_(tmbsnprintf)(buf, count, "%s", tag->element);
|
||||
}
|
||||
|
@ -1070,7 +1070,7 @@ static struct _dialogueDispatchTable {
|
|||
|
||||
|
||||
/* This message formatter for dialogue messages should be capable of formatting
|
||||
** every message, because they're not all the complex and there aren't that
|
||||
** every message, because they're not all that complex and there aren't that
|
||||
** many.
|
||||
*/
|
||||
static TidyMessageImpl *formatDialogue( TidyDocImpl* doc, uint code, TidyReportLevel level, va_list args )
|
||||
|
@ -1087,8 +1087,8 @@ static TidyMessageImpl *formatDialogue( TidyDocImpl* doc, uint code, TidyReportL
|
|||
case STRING_ERROR_COUNT:
|
||||
case STRING_NOT_ALL_SHOWN:
|
||||
return TY_(tidyMessageCreate)( doc, code, level,
|
||||
doc->warnings, tidyLocalizedStringN( STRING_ERROR_COUNT_WARNING, doc->warnings ),
|
||||
doc->errors, tidyLocalizedStringN( STRING_ERROR_COUNT_ERROR, doc->errors ) );
|
||||
doc->warnings, "STRING_ERROR_COUNT_WARNING",
|
||||
doc->errors, "STRING_ERROR_COUNT_ERROR" );
|
||||
|
||||
case FOOTNOTE_TRIM_EMPTY_ELEMENT:
|
||||
case STRING_HELLO_ACCESS:
|
||||
|
|
|
@ -40,7 +40,6 @@ struct printfArg {
|
|||
};
|
||||
|
||||
|
||||
|
||||
/** Returns a pointer to an allocated array of `printfArg` given a format
|
||||
** string and a va_list, or NULL if not successful or no parameters were
|
||||
** given. Parameter `rv` will return with the count of zero or more
|
||||
|
@ -130,6 +129,22 @@ static TidyMessageImpl *tidyMessageCreateInitV( TidyDocImpl *doc,
|
|||
TY_(tmbvsnprintf)(result->message, sizeMessageBuf, result->messageFormat, args_copy);
|
||||
va_end(args_copy);
|
||||
|
||||
/* Some things already hit us localized, and some things need to be
|
||||
localized here. Look for these codewords and replace them here.
|
||||
*/
|
||||
TY_(strrep)(result->messageDefault, "STRING_PLAIN_TEXT", tidyDefaultString(STRING_PLAIN_TEXT));
|
||||
TY_(strrep)(result->message, "STRING_PLAIN_TEXT", tidyLocalizedString(STRING_PLAIN_TEXT));
|
||||
|
||||
TY_(strrep)(result->messageDefault, "STRING_XML_DECLARATION", tidyDefaultString(STRING_XML_DECLARATION));
|
||||
TY_(strrep)(result->message, "STRING_XML_DECLARATION", tidyLocalizedString(STRING_XML_DECLARATION));
|
||||
|
||||
TY_(strrep)(result->messageDefault, "STRING_ERROR_COUNT_WARNING", tidyDefaultStringN(STRING_ERROR_COUNT_WARNING, doc->warnings));
|
||||
TY_(strrep)(result->message, "STRING_ERROR_COUNT_WARNING", tidyLocalizedStringN(STRING_ERROR_COUNT_WARNING, doc->warnings));
|
||||
|
||||
TY_(strrep)(result->messageDefault, "STRING_ERROR_COUNT_ERROR", tidyDefaultStringN(STRING_ERROR_COUNT_ERROR, doc->errors));
|
||||
TY_(strrep)(result->message, "STRING_ERROR_COUNT_ERROR", tidyLocalizedStringN(STRING_ERROR_COUNT_ERROR, doc->errors));
|
||||
|
||||
|
||||
result->messagePosDefault = TidyDocAlloc(doc, sizeMessageBuf);
|
||||
result->messagePos = TidyDocAlloc(doc, sizeMessageBuf);
|
||||
|
||||
|
|
|
@ -2643,6 +2643,11 @@ ctmbstr TIDY_CALL tidyLocalizedString( uint messageType )
|
|||
return TY_(tidyLocalizedString)( messageType );
|
||||
}
|
||||
|
||||
ctmbstr TIDY_CALL tidyDefaultStringN( uint messageType, uint quantity )
|
||||
{
|
||||
return TY_(tidyDefaultStringN)( messageType, quantity);
|
||||
}
|
||||
|
||||
ctmbstr TIDY_CALL tidyDefaultString( uint messageType )
|
||||
{
|
||||
return TY_(tidyDefaultString)( messageType );
|
||||
|
|
30
src/tmbstr.c
30
src/tmbstr.c
|
@ -247,6 +247,36 @@ int TY_(tmbsnprintf)(tmbstr buffer, size_t count, ctmbstr format, ...)
|
|||
return retval;
|
||||
}
|
||||
|
||||
void TY_(strrep)(tmbstr buffer, ctmbstr str, ctmbstr rep)
|
||||
{
|
||||
char *p = strstr(buffer, str);
|
||||
do
|
||||
{
|
||||
if(p)
|
||||
{
|
||||
char buf[1024];
|
||||
memset(buf,'\0',strlen(buf));
|
||||
|
||||
if(buffer == p)
|
||||
{
|
||||
strcpy(buf,rep);
|
||||
strcat(buf,p+strlen(str));
|
||||
}
|
||||
else
|
||||
{
|
||||
strncpy(buf,buffer,strlen(buffer) - strlen(p));
|
||||
strcat(buf,rep);
|
||||
strcat(buf,p+strlen(str));
|
||||
}
|
||||
|
||||
memset(buffer,'\0',strlen(buffer));
|
||||
strcpy(buffer,buf);
|
||||
}
|
||||
|
||||
} while(p && (p = strstr(buffer, str)));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* local variables:
|
||||
* mode: c
|
||||
|
|
|
@ -79,6 +79,9 @@ __attribute__((format(printf, 3, 4)))
|
|||
#endif
|
||||
;
|
||||
|
||||
TY_PRIVATE void TY_(strrep)(tmbstr buffer, ctmbstr str, ctmbstr rep);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue