summaryrefslogtreecommitdiffstats
path: root/SOURCES/bash-3.0-warn-locale.patch
diff options
context:
space:
mode:
Diffstat (limited to 'SOURCES/bash-3.0-warn-locale.patch')
-rw-r--r--SOURCES/bash-3.0-warn-locale.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/SOURCES/bash-3.0-warn-locale.patch b/SOURCES/bash-3.0-warn-locale.patch
new file mode 100644
index 0000000..1773510
--- /dev/null
+++ b/SOURCES/bash-3.0-warn-locale.patch
@@ -0,0 +1,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);