On Tue, Nov 09, 2010 at 04:38:21AM +0100, hum...@chorion.ath.cx wrote: > the terminal can C-l, I use it with Debian's default /bin/bash > (3.2.39(1)-release) > but as soon as I go to /usr/local/bin/bash (where bash4 is), it doesn't work > any more.
It would be helpful to indicate which version of bash you've compiled, which OS you're on, and what options you used during ./configure (if any). The "bashbug" script that was built along with bash should be used if possible. 3.2.39(1)-release happens to be the version of bash that's in Debian 5.0, so we can probably assume you're on Lenny. I've just built 4.1.9(1)-release on Debian 5.0 i386 using no options at all (straight ./configure and make). arc3:/tmp/bash-4.1$ ./bash arc3:/tmp/bash-4.1$ echo $BASH_VERSION 4.1.9(1)-release arc3:/tmp/bash-4.1$ echo $TERM rxvt And... you're right. I press ESC Ctrl-L (I'm in vi mode) and it does not clear the screen. It simply issues a new prompt on a new line, and, even stranger, it leaves me in command mode instead of insert mode. This is very different from the behavior of 4.1.9(1)-release on HP-UX 10.20, where it *does* clear the screen. (But it still leaves me in command mode afterward.) If I run "set -o emacs" and then press Ctrl-L, the same thing happens -- the screen is not cleared, but a new prompt is issued on a new line. Of course, emacs mode doesn't have command/insert modes like vi mode does, so there's not much additional information I can give there. Here's the ./bashbug output from the misbehaving version: Configuration Information [Automatically generated, do not change]: Machine: i686 OS: linux-gnu Compiler: gcc Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='i686' -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i686-pc-linux-gnu' -DCONF_VENDOR='pc' -DLOCALEDIR='/usr/local/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I. -I./include -I./lib -g -O2 uname output: Linux arc3 2.6.32-3-686 #1 SMP Thu Feb 25 06:14:20 UTC 2010 i686 GNU/Linux Machine Type: i686-pc-linux-gnu Bash Version: 4.1 Patch Level: 9 Release Status: release And here's a comparison of the shared libraries used: arc3:/tmp/bash-4.1$ ldd ./bash linux-gate.so.1 => (0xb782e000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7821000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb76c6000) /lib/ld-linux.so.2 (0xb782f000) arc3:/tmp/bash-4.1$ ldd /bin/bash linux-gate.so.1 => (0xb7721000) libncurses.so.5 => /lib/libncurses.so.5 (0xb76e6000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb76e2000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7586000) /lib/ld-linux.so.2 (0xb7722000) Interesting. I wonder what happens if we tell bash to use curses? arc3:/tmp/bash-4.1$ ./configure --with-curses ... arc3:/tmp/bash-4.1$ make ... Crap, libncurses5-dev isn't installed. Fixing that, retrying... in fact, let's try a vanilla ./configure with that package installed and see if that fixes things. arc3:/tmp/bash-4.1# apt-get install libncurses5-dev ... arc3:/tmp/bash-4.1$ make distclean; ./configure ... arc3:/tmp/bash-4.1$ make yacc -d ./parse.y make: yacc: Command not found make: *** [y.tab.c] Error 127 Damn it! arc3:/tmp/bash-4.1# apt-get install bison ... arc3:/tmp/bash-4.1# type yacc yacc is /usr/bin/yacc arc3:/tmp/bash-4.1$ make ... arc3:/tmp/bash-4.1$ ldd ./bash linux-gate.so.1 => (0xb7774000) libncurses.so.5 => /lib/libncurses.so.5 (0xb7739000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7735000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75d9000) /lib/ld-linux.so.2 (0xb7775000) arc3:/tmp/bash-4.1$ ./bash And... success! It clears the screen. So, it looks like you just need to install libncurses5-dev and try again. And maybe bison, but only if you're lazy like me and do a distclean instead of re-extracting the tarball and re-applying all the patches.