From cc023c26b7fd4f9e70c7b95422438348a16e3aaa Mon Sep 17 00:00:00 2001 From: Jim Derry Date: Mon, 30 Oct 2017 07:53:35 -0400 Subject: [PATCH] Address #639. --- console/tidy.c | 12 ++++-------- include/tidy.h | 6 ------ src/language.c | 32 -------------------------------- src/tidylib.c | 5 ----- 4 files changed, 4 insertions(+), 51 deletions(-) diff --git a/console/tidy.c b/console/tidy.c index 93a6e85..354e583 100644 --- a/console/tidy.c +++ b/console/tidy.c @@ -2003,7 +2003,6 @@ int main( int argc, char** argv ) ctmbstr cfgfil = NULL, errfil = NULL, htmlfil = NULL; TidyDoc tdoc = NULL; int status = 0; - tmbstr locale = NULL; uint contentErrors = 0; uint contentWarnings = 0; @@ -2023,13 +2022,10 @@ int main( int argc, char** argv ) /* Set an atexit handler. */ atexit( tidy_cleanup ); - /*************************************/ - /* Set the locale for tidy's output. */ - /*************************************/ - locale = tidySystemLocale(locale); - tidySetLanguage(locale); - if ( locale ) - free( locale ); + /* Set the locale for tidy's output. This both configures LibTidy to + use the environment's locale as well as the standard library. + */ + tidySetLanguage( setlocale( LC_ALL, "") ); #if defined(_WIN32) /* Force Windows console to use UTF, otherwise many characters will diff --git a/include/tidy.h b/include/tidy.h index 37c020d..be6e604 100644 --- a/include/tidy.h +++ b/include/tidy.h @@ -1969,12 +1969,6 @@ TIDY_EXPORT uint TIDY_CALL getNextErrorCode( TidyIterator* iter ); ** @{ */ -/** Determines the current locale without affecting the C locale. - ** @param result The buffer to use to return the string, or NULL on failure. - ** @return The same buffer for convenience. - */ -TIDY_EXPORT tmbstr TIDY_CALL tidySystemLocale(tmbstr result); - /** Tells Tidy to use a different language for output. ** @param languageCode A Windows or POSIX language code, and must match ** a TIDY_LANGUAGE for an installed language. diff --git a/src/language.c b/src/language.c index 7d7f5bd..4ae6f3a 100644 --- a/src/language.c +++ b/src/language.c @@ -295,38 +295,6 @@ ctmbstr TY_(tidyLocalizedString)( uint messageType ) } -/** - ** Determines the current locale without affecting the C locale. - ** Tidy has always used the default C locale, and at this point - ** in its development we're not going to tamper with that. - ** @note this routine uses default allocator, see tidySetMallocCall. - ** @param result The buffer to use to return the string. - ** Returns NULL on failure. - ** @return The same buffer for convenience. - */ -tmbstr TY_(tidySystemLocale)(tmbstr result) -{ - ctmbstr temp; - TidyAllocator* allocator = &TY_(g_default_allocator); - - /* This should set the OS locale. */ - setlocale( LC_ALL, "" ); - - /* This should read the current locale. */ - temp = setlocale( LC_ALL, NULL); - - /* Make a new copy of the string, because temp - always points to the current locale. */ - if (( result = TidyAlloc( allocator, strlen( temp ) + 1 ) )) - strcpy(result, temp); - - /* This should restore the C locale. */ - setlocale( LC_ALL, "C" ); - - return result; -} - - /** * Retrieves the POSIX name for a string. Result is a static char so please * don't try to free it. If the name looks like a cc_ll identifier, we will diff --git a/src/tidylib.c b/src/tidylib.c index 2ffe620..a5464d8 100644 --- a/src/tidylib.c +++ b/src/tidylib.c @@ -2472,11 +2472,6 @@ uint TIDY_CALL getNextErrorCode( TidyIterator* iter ) *******************************************************************/ -tmbstr TIDY_CALL tidySystemLocale(tmbstr result) -{ - return TY_(tidySystemLocale)( result ); -} - Bool TIDY_CALL tidySetLanguage( ctmbstr languageCode ) { return TY_(tidySetLanguage)( languageCode );