summaryrefslogtreecommitdiff
blob: 204e7978d3c18cd6a8bbddec8d58e51493807f2b (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
32
33
34
35
36
37
38
39
40
41
42
43
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;