summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-shells/bash/files/bash-3.0-etc-inputrc.patch')
-rw-r--r--app-shells/bash/files/bash-3.0-etc-inputrc.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/app-shells/bash/files/bash-3.0-etc-inputrc.patch b/app-shells/bash/files/bash-3.0-etc-inputrc.patch
new file mode 100644
index 0000000..204e797
--- /dev/null
+++ b/app-shells/bash/files/bash-3.0-etc-inputrc.patch
@@ -0,0 +1,44 @@
+Patch readline's bind.c so that /etc/inputrc is read as a last resort
+following ~/.inputrc. This is better than putting INPUTRC in
+the environment because INPUTRC will override even after the
+user creates a ~/.inputrc
+
+--- bash-3.0/lib/readline/bind.c.agriffis 2004-03-03 22:39:32.000000000 -0500
++++ bash-3.0/lib/readline/bind.c 2004-08-02 13:53:02.365731918 -0400
+@@ -781,6 +781,7 @@
+ 1. the filename used for the previous call
+ 2. the value of the shell variable `INPUTRC'
+ 3. ~/.inputrc
++ 4. /etc/inputrc
+ If the file existed and could be opened and read, 0 is returned,
+ otherwise errno is returned. */
+ int
+@@ -789,17 +790,20 @@
+ {
+ /* Default the filename. */
+ if (filename == 0)
++ filename = last_readline_init_file;
++ if (filename == 0)
++ filename = sh_get_env_value ("INPUTRC");
++ if (filename == 0 || *filename == 0)
+ {
+- filename = last_readline_init_file;
+- if (filename == 0)
+- filename = sh_get_env_value ("INPUTRC");
+- if (filename == 0)
+- filename = DEFAULT_INPUTRC;
++ /* If there's trouble reading DEFAULT_INPUTRC then fall back to
++ * the system inputrc
++ */
++ filename = DEFAULT_INPUTRC;
++ if (_rl_read_init_file (filename, 0) == 0)
++ return 0;
++ filename = "/etc/inputrc";
+ }
+
+- if (*filename == 0)
+- filename = DEFAULT_INPUTRC;
+-
+ #if defined (__MSDOS__)
+ if (_rl_read_init_file (filename, 0) == 0)
+ return 0;