771
+ − 1 /* X-specific functions for internationalizing XEmacs.
+ − 2 Copyright (C) 1996 Sun Microsystems.
+ − 3 Copyright (C) 2000, 2001 Ben Wing.
+ − 4
+ − 5 This file is a part of XEmacs.
+ − 6
+ − 7 XEmacs is free software; you can redistribute it and/or modify it
+ − 8 under the terms of the GNU General Public License as published by the
+ − 9 Free Software Foundation; either version 2, or (at your option) any
+ − 10 later version.
+ − 11
+ − 12 XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ − 13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 15 for more details.
+ − 16
+ − 17 You should have received a copy of the GNU General Public License
+ − 18 along with XEmacs; see the file COPYING. If not, write to
+ − 19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ − 20 Boston, MA 02111-1307, USA. */
+ − 21
+ − 22 #include <config.h>
+ − 23 #include "lisp.h"
+ − 24
+ − 25 #include "console-x.h"
+ − 26 #include <X11/Xlocale.h> /* More portable than <locale.h> ? */
+ − 27
+ − 28 Lisp_Object Qxintl;
+ − 29
+ − 30 int init_x_locale (Lisp_Object locale);
+ − 31
+ − 32 int
2333
+ − 33 init_x_locale (Lisp_Object USED_IF_MULE (locale))
771
+ − 34 {
+ − 35 #ifdef MULE
+ − 36 /* dverna - Nov. 98: #### DON'T DO THIS !!! The default XtLanguageProc
+ − 37 routine calls setlocale(LC_ALL, lang) which fucks up our lower-level
+ − 38 locale management, and especially the value of LC_NUMERIC. Anyway, since
+ − 39 at this point, we don't know yet whether we're gonna need an X11 frame,
+ − 40 we should really do it manually and not use Xlib's dumb default routine */
+ − 41 /*XtSetLanguageProc (NULL, (XtLanguageProc) NULL, NULL);*/
+ − 42
+ − 43 if (!XSupportsLocale ())
+ − 44 {
+ − 45 warn_when_safe (Qxintl, Qwarning,
+ − 46 "System supports locale `%s' but X Windows does not",
+ − 47 XSTRING_DATA (locale));
+ − 48 return 0;
+ − 49 }
+ − 50
+ − 51 if (XSetLocaleModifiers ("") == NULL)
+ − 52 {
+ − 53 warn_when_safe (Qxintl, Qwarning,
+ − 54 "XSetLocaleModifiers(\"\") failed. Check the value\n"
+ − 55 "of the XMODIFIERS environment variable.");
+ − 56 return 0;
+ − 57 }
+ − 58 #endif /* MULE */
+ − 59
+ − 60 return 1;
+ − 61 }
+ − 62
+ − 63 void
+ − 64 syms_of_intl_x (void)
+ − 65 {
+ − 66 DEFSYMBOL (Qxintl);
+ − 67 }