summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2015-08-12 17:11:03 -0300
committerHisham Muhammad <hisham@gobolinux.org>2015-08-12 17:11:03 -0300
commitc34b57407388748016058c7793f98d75fbd9d211 (patch)
treed54732f4cf49e283cc0f47f48f3ab36f657ea3cf
parente42d78007e2e77fda20b654681f4038ba43ee9cc (diff)
parentcea591181d58d7cc161fc9ab1407ce940a421925 (diff)
Merge pull request #223 from eworm-de/langinfo
simplify UTF-8 detection
-rw-r--r--CRT.c13
-rw-r--r--htop.c14
2 files changed, 5 insertions, 22 deletions
diff --git a/CRT.c b/CRT.c
index 983c601f..03f71ca7 100644
--- a/CRT.c
+++ b/CRT.c
@@ -16,6 +16,7 @@ in the source distribution for its full text.
#include <stdlib.h>
#include <string.h>
#include <locale.h>
+#include <langinfo.h>
#define ColorPair(i,j) COLOR_PAIR((7-i)*8+j)
@@ -585,15 +586,11 @@ void CRT_init(int delay, int colorScheme) {
CRT_colorScheme = 1;
CRT_setColors(CRT_colorScheme);
+ /* initialize locale */
+ setlocale(LC_CTYPE, "");
+
#ifdef HAVE_LIBNCURSESW
- char *locale = setlocale(LC_ALL, NULL);
- if (locale == NULL || locale[0] == '\0')
- locale = setlocale(LC_CTYPE, NULL);
- if (locale != NULL &&
- (strstr(locale, "UTF-8") ||
- strstr(locale, "utf-8") ||
- strstr(locale, "UTF8") ||
- strstr(locale, "utf8")))
+ if(strcmp(nl_langinfo(CODESET), "UTF-8") == 0)
CRT_utf8 = true;
else
CRT_utf8 = false;
diff --git a/htop.c b/htop.c
index 211489bb..a031cde3 100644
--- a/htop.c
+++ b/htop.c
@@ -184,20 +184,6 @@ int main(int argc, char** argv) {
}
#endif
-#ifdef HAVE_LIBNCURSESW
- char *locale = setlocale(LC_ALL, NULL);
- if (locale == NULL || locale[0] == '\0')
- locale = setlocale(LC_CTYPE, NULL);
- if (locale != NULL &&
- (strstr(locale, "UTF-8") ||
- strstr(locale, "utf-8") ||
- strstr(locale, "UTF8") ||
- strstr(locale, "utf8")))
- CRT_utf8 = true;
- else
- CRT_utf8 = false;
-#endif
-
Process_setupColumnWidths();
UsersTable* ut = UsersTable_new();