From cc0707605d3cf4f879462c0a4d2563a9b62b28be Mon Sep 17 00:00:00 2001 From: Frederic Marchal Date: Thu, 11 Dec 2014 15:01:23 +0100 Subject: [PATCH] Display locale information for debugging purpose Running sarg -x -v display the version number but also the directory where the message file is looked for, the package name and the currently selected locale. --- log.c | 6 +++++- util.c | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/log.c b/log.c index de08ac8..c5d5197 100644 --- a/log.c +++ b/log.c @@ -46,6 +46,9 @@ struct userfilestruct numlist weekdays = { { 0, 1, 2, 3, 4, 5, 6 }, 7 }; numlist hours = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }, 24 }; +//! Selected locale set through the environment variable. +char *CurrentLocale=NULL; + static void getusers(const char *pwdfile, int debug); int main(int argc,char *argv[]) @@ -190,7 +193,8 @@ int main(int argc,char *argv[]) #endif #if defined(ENABLE_NLS) && defined(HAVE_LOCALE_H) - if (!setlocale (LC_ALL, "")) { + CurrentLocale=setlocale (LC_ALL, ""); + if (!CurrentLocale) { fprintf(stderr,"SARG: Cannot set the locale LC_ALL to the environment variable\n"); exit(EXIT_FAILURE); } diff --git a/util.c b/util.c index 318472e..794e61c 100644 --- a/util.c +++ b/util.c @@ -41,6 +41,8 @@ static char mtab1[12][4]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep", //! The list of the HTTP codes to exclude from the report. static char *excludecode=NULL; +extern char *CurrentLocale; + #if USE_GETWORD_BACKTRACE static void getword_backtrace(void) { @@ -1784,6 +1786,12 @@ void url_to_file(const char *url,char *file,int filesize) void version(void) { printf(_("SARG Version: %s\n"),VERSION); +#if defined(ENABLE_NLS) && defined(HAVE_LOCALE_H) + if (debug) { + printf(_("Translation file should be somewhere under \"%s\" and be named \"%s.mo\"\n"),LOCALEDIR,PACKAGE_NAME); + if (CurrentLocale) printf(_("The currently selected locale is \"%s\"\n"),CurrentLocale); + } +#endif exit(EXIT_SUCCESS); } -- 2.47.2