[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Ctrl- does nothing
From: |
Greg Wooledge |
Subject: |
Re: Ctrl- does nothing |
Date: |
Tue, 9 Nov 2010 08:45:48 -0500 |
User-agent: |
Mutt/1.4.2.3i |
On Tue, Nov 09, 2010 at 04:38:21AM +0100, humpty@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.