glibc has a much newer locale.alias file, listing new locales. English is no longer listed, however. In the case that the locale.alias file is removed, or a locale is removed, and English is not there, there is no way to get back to good ol' "C". I've attached a hackish patch to ensure that English is always in the list, which solves the problem... -- Ryan Murray, (rmurray cyberhqz com, rmurray debian org, rmurray stormix com) Programmer, Stormix Technologies Inc., Debian Developer The opinions expressed here are my own.
diff -ruN gdm-2.0beta4.orig/gui/gdmlogin.c gdm-2.0beta4/gui/gdmlogin.c
--- gdm-2.0beta4.orig/gui/gdmlogin.c Sun Jun 18 18:00:36 2000
+++ gdm-2.0beta4/gui/gdmlogin.c Sun Jun 18 17:51:22 2000
@@ -713,6 +713,7 @@
FILE *langlist;
char curline[256];
char *ctmp, *ctmp1, *ctmp2;
+ BOOL english = 0;
if (!menu)
return;
@@ -752,8 +753,7 @@
langlist = fopen (GdmLocaleFile, "r");
- if (!langlist)
- return;
+ if (langlist) {
while (fgets (curline, sizeof (curline), langlist)) {
@@ -773,6 +773,10 @@
*ctmp = '\0';
curline[0] = toupper (curline[0]);
+ if ( !strcmp( curline, "English" ) ) {
+ english = 1;
+ }
+
item = gtk_radio_menu_item_new_with_label (languages, curline);
languages = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (item));
@@ -790,6 +794,20 @@
}
fclose (langlist);
+ }
+
+ /*
+ * This should maybe include more name checks than "English" (POSIX,
+ * "C", etc...), but it's better than nothing.
+ * It allows a user to always have a sane locale in the menu,
+ * however, if all others were removed for some reason, or English
+ * isn't in the installed list.
+ */
+ if ( !english ) {
+ item = gtk_radio_menu_item_new_with_label (languages, "English" );
+ languages = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (item));
+ gtk_menu_append (GTK_MENU (ammenu), item);
+ }
}
Attachment:
pgpKJpeglGHKU.pgp
Description: PGP signature