bug-bash
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]