summaryrefslogtreecommitdiffstats
path: root/SOURCES/bash-3.0-warn-locale.patch
blob: 1773510fd431a439d3d99ae01d048a6472ff84cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Index: locale.c
===================================================================
--- locale.c.orig
+++ locale.c
@@ -29,6 +29,10 @@
 #include "bashintl.h"
 #include "bashansi.h"
 #include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <errno.h>
 #include "chartypes.h"
 #include <errno.h>
 
@@ -68,6 +72,15 @@ void
 set_default_locale ()
 {
 #if defined (HAVE_SETLOCALE)
+  struct stat st;
+
+  if (stat("/usr/lib/locale/locale-archive", &st) == 0 && st.st_size == 0) {
+    errno = EINVAL;
+    sys_error("set_default_locale: broken locale");
+    fprintf  (stderr, "%s: Please remove /usr/lib/locale/locale-archive\n",
+	      get_name_for_error());
+    sleep(1);
+  }
   default_locale = setlocale (LC_ALL, "");
   if (default_locale)
     default_locale = savestring (default_locale);