From 54dcf145feb39f4eb2e9cd78de2ce469acd3e28c Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Sat, 23 Jul 2016 04:48:40 +0000 Subject: Fix Fl_X11_System_Driver::utf8locale() that did not work when no locale is set. Also, minor simplification of Fl_WinAPI_System_Driver::utf8locale(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11846 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx | 5 +---- src/drivers/X11/Fl_X11_System_Driver.cxx | 15 ++++++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'src/drivers') diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx index ef6070e84..f7d37fecb 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx +++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx @@ -406,10 +406,7 @@ unsigned Fl_WinAPI_System_Driver::utf8fromwc(char* dst, unsigned dstlen, const w int Fl_WinAPI_System_Driver::utf8locale() { - static int ret = 2; - if (ret == 2) { - ret = GetACP() == CP_UTF8; - } + static int ret = (GetACP() == CP_UTF8); return ret; } diff --git a/src/drivers/X11/Fl_X11_System_Driver.cxx b/src/drivers/X11/Fl_X11_System_Driver.cxx index c64772143..bea584c11 100644 --- a/src/drivers/X11/Fl_X11_System_Driver.cxx +++ b/src/drivers/X11/Fl_X11_System_Driver.cxx @@ -500,11 +500,16 @@ int Fl_X11_System_Driver::filename_list(const char *d, dirent ***list, int (*sor } int Fl_X11_System_Driver::utf8locale() { - char *s; - static int ret = ((s = ::getenv("LC_CTYPE")) && *s) || - ((s = ::getenv("LC_ALL")) && *s) || - ((s = ::getenv("LANG")) && *s) - ? 1 : 0; + static int ret = 2; + if (ret == 2) { + char* s; + ret = 1; /* assume UTF-8 if no locale */ + if (((s = getenv("LC_CTYPE")) && *s) || + ((s = getenv("LC_ALL")) && *s) || + ((s = getenv("LANG")) && *s)) { + ret = (strstr(s,"utf") || strstr(s,"UTF")); + } + } return ret; } -- cgit v1.2.3