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;