GNU bug report logs -
#9146
24.0.50; M-x broken in console mode with viper (always gives: "viper bell")
Previous Next
Reported by: Stefano Zacchiroli <zack <at> upsilon.cc>
Date: Fri, 22 Jul 2011 10:46:01 UTC
Severity: important
Found in version 24.0.50
Done: Chong Yidong <cyd <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 9146 in the body.
You can then email your comments to 9146 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Fri, 22 Jul 2011 10:46:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Stefano Zacchiroli <zack <at> upsilon.cc>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Fri, 22 Jul 2011 10:46:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
I'm using Emacs with viper mode and often with a console-only
emacsclient. Since a couple of weeks, viper mode is broken with
emacs snapshot. Every time I try to use M-x (or other M-something)
is impossible with Viper, I immediately obtain a "viper bell"
message in the minibuffer line and the M-x key does not get delivered
to Emacs.
I've been able to reproduce the bug with "emacs -Q -nw", then loading
Viper mode with "M-x viper-mode" (which does work before loading Viper).
From that moment on, "M-x" does not work anymore.
In GNU Emacs 24.0.50.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.5)
of 2011-07-21 on cigue, modified by Debian
(emacs-snapshot package, version 1:20110721-1)
configured using `configure '--build' 'x86_64-linux-gnu' '--host' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.0.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.0.50/site-lisp:/usr/share/emacs/site-lisp' '--without-compress-info' '--with-crt-dir=/usr/lib/x86_64-linux-gnu/' '--with-x=yes' '--with-x-toolkit=gtk' '--with-imagemagick=yes' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed' 'CPPFLAGS=''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: en_US.UTF-8
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: it_IT.utf8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
ESC [ > 1 ; 2 8 0 1 ; 0 c ESC x v i p TAB e r - m o
TAB RET i a s f g s a f g ESC ESC x ESC x ESC x ESC
x ESC x ESC x C-_ ESC x C-g ESC [ 2 1 ~ h s
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Making completion list...
Loading viper...
Loading /home/zack/.viper...done
Loading viper...done
Viper bell [6 times]
Undo!
Viper bell
Quit
delete-backward-char: Text is read-only [2 times]
Load-path shadows:
/usr/share/emacs/24.0.50/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs/24.0.50/site-lisp/puppet-el/puppet-mode hides /usr/share/emacs/site-lisp/puppet-mode
/usr/share/emacs/site-lisp/rst hides /usr/share/emacs/24.0.50/lisp/textmodes/rst
Features:
(shadow sort gnus-util mail-extr message format-spec rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mailabbrev mail-utils gmm-utils mailheader
emacsbug tmm electric edmacro kmacro viper viper-ex viper-macs
viper-mous viper-cmd viper-keym ring viper-util viper-init advice
help-fns advice-preload help-mode easymenu view time-date tooltip
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer loaddefs button faces cus-face files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)
--
Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
Quando anche i santi ti voltano le spalle, | . |. I've fans everywhere
ti resta John Fante -- V. Capossela .......| ..: |.......... -- C. Adams
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Wed, 28 Sep 2011 07:27:03 GMT)
Full text and
rfc822 format available.
Message #8 received at 9146 <at> debbugs.gnu.org (full text, mbox):
On Fri, Jul 22, 2011 at 10:46:02AM +0000, GNU bug Tracking System wrote:
> If you wish to submit further information on this problem, please
> send it to 9146 <at> debbugs.gnu.org.
Heya, any news about this? I test it routinely with new development
snapshots and I can still reproduce it. I'm starting to fear emacs 24
can be released with this bug, de facto making viper mode unusable for
emacsclient console users.
I'll be happy to investigate it a bit more, but I'd appreciate if the
maintainers can check that I'm not the only one being able to reproduce
this.
Many thanks in advance,
Cheers.
--
Stefano Zacchiroli zack@{upsilon.cc,pps.jussieu.fr,debian.org} . o .
Maître de conférences ...... http://upsilon.cc/zack ...... . . o
Debian Project Leader ....... @zack on identi.ca ....... o o o
« the first rule of tautology club is the first rule of tautology club »
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Wed, 28 Sep 2011 16:46:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 9146 <at> debbugs.gnu.org (full text, mbox):
I can reproduce it, but I don't know how to fix it.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Wed, 28 Sep 2011 16:50:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 9146 <at> debbugs.gnu.org (full text, mbox):
PS bisecting to find out when it started happening may be useful.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Fri, 30 Sep 2011 08:52:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 9146 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On Wed, Sep 28, 2011 at 12:48:06PM -0400, Glenn Morris wrote:
> PS bisecting to find out when it started happening may be useful.
I'll be glad to help, although I don't think I'll have in the near
future time to do the various builds myself. I'm using emacs development
branch through the unofficial "emacs-snapshot" Debian packages
maintained by Julien Danjou (Cc:-ed).
Julien: is there an archive of past emacs-snapshot packages? If so, I'll
be happy to go through them, as a first approximation of bisection.
TIA,
Cheers.
--
Stefano Zacchiroli zack@{upsilon.cc,pps.jussieu.fr,debian.org} . o .
Maître de conférences ...... http://upsilon.cc/zack ...... . . o
Debian Project Leader ....... @zack on identi.ca ....... o o o
« the first rule of tautology club is the first rule of tautology club »
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Fri, 30 Sep 2011 09:16:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 9146 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On Fri, Sep 30 2011, Stefano Zacchiroli wrote:
> I'll be glad to help, although I don't think I'll have in the near
> future time to do the various builds myself. I'm using emacs development
> branch through the unofficial "emacs-snapshot" Debian packages
> maintained by Julien Danjou (Cc:-ed).
>
> Julien: is there an archive of past emacs-snapshot packages? If so, I'll
> be happy to go through them, as a first approximation of bisection.
Nop, but I've the versions from 1:20110917-1 on my computer if needed.
But I've nothing before.
If you want to do a git bisect with a build yourself, it really should
not be harder than cloning the repo from Alioth and calling debuild.
http://anonscm.debian.org/gitweb/?p=users/acid/emacs-snapshot.git;a=summary
--
Julien Danjou
[Message part 2 (application/pgp-signature, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Fri, 04 Nov 2011 22:47:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 9146 <at> debbugs.gnu.org (full text, mbox):
OK I can reproduce your problem and have tracked it down to a change of
mine in the keymap.c code.
The problem is that viper-intercept-ESC-key relies on a quirk of
the function key-binding which I fixed in Emacs-24.
More specifically, in Emacs-23, the following happened:
(local-set-key "\e" 'toto)
(key-binding "\ex") => execute-extended-command
I.e. key-binding returned a binding that is not actually valid because
it's hidden by a shorter key-sequence in a keymap of higher precedence.
This has been fixed in Emacs-24 where it now returns nil in this case.
In the case of viper-intercept-ESC-key, the problematic keybinding is
not in the local-map but in a minor-mode-map installed by Viper and the
command is (of course) viper-intercept-ESC-key, but the problem is
the same.
IOW viper-intercept-ESC-key needs to be changed to call key-binding in
a context where Viper's minor-mode map(s) have been temporarily disabled
so the ESC binding to viper-intercept-ESC-key doesn't hide the thing
we're looking for.
Stefan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Mon, 27 Feb 2012 10:16:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 9146 <at> debbugs.gnu.org (full text, mbox):
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
> IOW viper-intercept-ESC-key needs to be changed to call key-binding in
> a context where Viper's minor-mode map(s) have been temporarily disabled
> so the ESC binding to viper-intercept-ESC-key doesn't hide the thing
> we're looking for.
Since no one else has stepped up to the plate, I took a crack at this.
Stefano, could you test if the following patch does the right thing?
*** lisp/emulation/viper-cmd.el 2012-01-19 07:21:25 +0000
--- lisp/emulation/viper-cmd.el 2012-02-27 10:10:42 +0000
***************
*** 1086,1093 ****
(defun viper-intercept-ESC-key ()
"Function that implements ESC key in Viper emulation of Vi."
(interactive)
! (let ((cmd (or (key-binding (viper-envelop-ESC-key))
! (lambda () (interactive) (error "Viper bell")))))
;; call the actual function to execute ESC (if no other symbols followed)
;; or the key bound to the ESC sequence (if the sequence was issued
--- 1086,1098 ----
(defun viper-intercept-ESC-key ()
"Function that implements ESC key in Viper emulation of Vi."
(interactive)
! (let* ((event (viper-envelop-ESC-key))
! (cmd (cond ((equal event viper-ESC-key)
! 'viper-intercept-ESC-key)
! ((let ((emulation-mode-map-alists nil))
! (key-binding event)))
! (t
! (error "Viper bell")))))
;; call the actual function to execute ESC (if no other symbols followed)
;; or the key bound to the ESC sequence (if the sequence was issued
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Mon, 27 Feb 2012 12:12:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 9146 <at> debbugs.gnu.org (full text, mbox):
On Mon, Feb 27, 2012 at 06:12:43PM +0800, Chong Yidong wrote:
> > IOW viper-intercept-ESC-key needs to be changed to call key-binding in
> > a context where Viper's minor-mode map(s) have been temporarily disabled
> > so the ESC binding to viper-intercept-ESC-key doesn't hide the thing
> > we're looking for.
>
> Since no one else has stepped up to the plate, I took a crack at this.
>
> Stefano, could you test if the following patch does the right thing?
That seems to have done the trick for me.
Applying the patch M-x works properly again.
--
Stefano Zacchiroli zack@{upsilon.cc,pps.jussieu.fr,debian.org} . o .
Maître de conférences ...... http://upsilon.cc/zack ...... . . o
Debian Project Leader ....... @zack on identi.ca ....... o o o
« the first rule of tautology club is the first rule of tautology club »
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Mon, 27 Feb 2012 13:18:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 9146 <at> debbugs.gnu.org (full text, mbox):
Stefano Zacchiroli <zack <at> upsilon.cc> writes:
> That seems to have done the trick for me.
> Applying the patch M-x works properly again.
Committed to trunk. Thanks for testing.
bug closed, send any further explanations to
9146 <at> debbugs.gnu.org and Stefano Zacchiroli <zack <at> upsilon.cc>
Request was from
Chong Yidong <cyd <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Mon, 27 Feb 2012 13:18:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Mon, 27 Feb 2012 14:21:01 GMT)
Full text and
rfc822 format available.
Message #37 received at 9146 <at> debbugs.gnu.org (full text, mbox):
On Mon, Feb 27, 2012 at 09:14:40PM +0800, Chong Yidong wrote:
> Stefano Zacchiroli <zack <at> upsilon.cc> writes:
>
> > That seems to have done the trick for me.
> > Applying the patch M-x works properly again.
>
> Committed to trunk. Thanks for testing.
Great, thank you for the fix!
Cheers.
--
Stefano Zacchiroli zack@{upsilon.cc,pps.jussieu.fr,debian.org} . o .
Maître de conférences ...... http://upsilon.cc/zack ...... . . o
Debian Project Leader ....... @zack on identi.ca ....... o o o
« the first rule of tautology club is the first rule of tautology club »
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#9146
; Package
emacs
.
(Tue, 28 Feb 2012 03:49:02 GMT)
Full text and
rfc822 format available.
Message #40 received at 9146 <at> debbugs.gnu.org (full text, mbox):
Thanks Chong. I meant to get to this all these months, but my stack of things
to do kept getting deeper and deeper...
michael
On Mon, 27 Feb 2012 18:12:43 +0800
Chong Yidong <cyd <at> gnu.org> wrote:
> Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>
> > IOW viper-intercept-ESC-key needs to be changed to call key-binding in
> > a context where Viper's minor-mode map(s) have been temporarily disabled
> > so the ESC binding to viper-intercept-ESC-key doesn't hide the thing
> > we're looking for.
>
> Since no one else has stepped up to the plate, I took a crack at this.
>
> Stefano, could you test if the following patch does the right thing?
>
>
> *** lisp/emulation/viper-cmd.el 2012-01-19 07:21:25 +0000
> --- lisp/emulation/viper-cmd.el 2012-02-27 10:10:42 +0000
> ***************
> *** 1086,1093 ****
> (defun viper-intercept-ESC-key ()
> "Function that implements ESC key in Viper emulation of Vi."
> (interactive)
> ! (let ((cmd (or (key-binding (viper-envelop-ESC-key))
> ! (lambda () (interactive) (error "Viper bell")))))
>
> ;; call the actual function to execute ESC (if no other symbols
> followed) ;; or the key bound to the ESC sequence (if the sequence was issued
> --- 1086,1098 ----
> (defun viper-intercept-ESC-key ()
> "Function that implements ESC key in Viper emulation of Vi."
> (interactive)
> ! (let* ((event (viper-envelop-ESC-key))
> ! (cmd (cond ((equal event viper-ESC-key)
> ! 'viper-intercept-ESC-key)
> ! ((let ((emulation-mode-map-alists nil))
> ! (key-binding event)))
> ! (t
> ! (error "Viper bell")))))
>
> ;; call the actual function to execute ESC (if no other symbols
> followed) ;; or the key bound to the ESC sequence (if the sequence was issued
>
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Tue, 27 Mar 2012 11:24:03 GMT)
Full text and
rfc822 format available.
bug unarchived.
Request was from
"Michael L. Scott" <scott <at> cs.rochester.edu>
to
control <at> debbugs.gnu.org
.
(Thu, 13 Sep 2012 23:03:01 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Fri, 12 Oct 2012 11:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 11 years and 226 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.