>>>>> "Georg" == Georg Baum <[EMAIL PROTECTED]> writes:

Georg> Jean-Marc Lasgouttes wrote:
Juergen> I have glibc 2.3.2 (shipped with SuSE, probably updated by
Juergen> SuSE online update once or more). No idea. Maybe I'll try
Juergen> with SuSE 9.0 (which I have on my laptop).
>>  Might be nice.

Georg> I just tried on SuSE 9.0 with packages:

Georg> glibc-2.3.2-88 xforms-1.0-137

-137??? What kind of change have they done to the xforms package they
 ship?

Georg> Both show the same behaviour that Jürgen has: export
Georg> LC_NUMERIC=C works, and it does not work without it.

Could you (and Juergen?) try the attached patch. On my machine, I get
the following debug info:

schuss: LC_ALL=de_DE src/lyx
parse_init: [1] LC_NUMERIC=C
parse_init: [2] LC_NUMERIC=de_DE
parse_init: [3] LC_NUMERIC=C

As you see, xforms sets the locale to de_DE, but this is fixed on 3rd
step.

JMarc

Index: src/gettext.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/gettext.C,v
retrieving revision 1.15
diff -u -p -r1.15 gettext.C
--- src/gettext.C	22 May 2002 01:16:35 -0000	1.15
+++ src/gettext.C	9 Feb 2004 14:56:14 -0000
@@ -59,7 +59,6 @@ void locale_init()
 	setlocale(LC_MESSAGES, "");
 #  endif
 	setlocale(LC_CTYPE, "");
-	setlocale(LC_NUMERIC, "C");
 }
 
 
Index: src/frontends/xforms/lyx_gui.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/lyx_gui.C,v
retrieving revision 1.31.2.1
diff -u -p -r1.31.2.1 lyx_gui.C
--- src/frontends/xforms/lyx_gui.C	4 Nov 2003 11:52:04 -0000	1.31.2.1
+++ src/frontends/xforms/lyx_gui.C	9 Feb 2004 14:56:14 -0000
@@ -141,11 +141,12 @@ void lyx_gui::parse_init(int & argc, cha
 
 	const int num_res = sizeof(res)/sizeof(FL_resource);
 
+	lyxerr << "parse_init: [1] LC_NUMERIC=" << setlocale(LC_NUMERIC, NULL) <<endl;
+	string const lc_num = setlocale(LC_NUMERIC, NULL);
 	fl_initialize(&argc, argv, "LyX", cmdopt, num_res);
-
-	// It appears that, in xforms >=0.89.5, fl_initialize()
-	// calls setlocale() and ruins our LC_NUMERIC setting.
-	locale_init();
+	lyxerr << "parse_init: [2] LC_NUMERIC=" << setlocale(LC_NUMERIC, NULL) <<endl;
+	setlocale(LC_NUMERIC, lc_num.c_str());
+	lyxerr << "parse_init: [3] LC_NUMERIC=" << setlocale(LC_NUMERIC, NULL) <<endl;
 
 	fl_get_app_resources(res, num_res);
 

Reply via email to