From 9859910a8168b9c13e9e9952a03de91d51293484 Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 14 Feb 2011 16:50:42 +0000 Subject: Only call XSupportsLocale in one place. Switch to a known locale when it fails --- xorg-server/hw/xwin/InitOutput.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'xorg-server/hw/xwin/InitOutput.c') diff --git a/xorg-server/hw/xwin/InitOutput.c b/xorg-server/hw/xwin/InitOutput.c index 8d5f4dbfb..8bdb18622 100644 --- a/xorg-server/hw/xwin/InitOutput.c +++ b/xorg-server/hw/xwin/InitOutput.c @@ -35,12 +35,10 @@ from The Open Group. #include "winmsg.h" #include "winconfig.h" #include "winprefs.h" -#ifdef XWIN_CLIPBOARD -#include "X11/Xlocale.h" -#endif #ifdef DPMSExtension #include "dpmsproc.h" #endif +#include #ifdef __CYGWIN__ #include #endif @@ -1024,7 +1022,17 @@ InitOutput (ScreenInfo *screenInfo, int argc, char *argv[]) * setlocale applies to all threads in the current process. * Apply locale specified in LANG environment variable. */ - setlocale (LC_ALL, ""); + if (!setlocale (LC_ALL, "")) + { + ErrorF ("setlocale failed.\n"); + } + + /* See if X supports the current locale */ + if (XSupportsLocale () == FALSE) + { + ErrorF ("Warning: Locale not supported by X, falling back to 'C' locale.\n"); + setlocale(LC_ALL, "C"); + } } #endif -- cgit v1.2.3