GNU bug report logs - #1960
23.0.60; A combination of PC Selection, Visual Lines and emacsclient redefines C-backspace

Previous Next

Package: emacs;

Reported by: cmr.Pent <at> gmail.com

Date: Mon, 19 Jan 2009 21:30:03 UTC

Severity: normal

Done: Chong Yidong <cyd <at> stupidchicken.com>

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 1960 in the body.
You can then email your comments to 1960 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#1960; Package emacs. (Mon, 19 Jan 2009 21:30:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to cmr.Pent <at> gmail.com:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Mon, 19 Jan 2009 21:30:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: pent <pent <at> aparamon.msk.ru>
To: emacs-pretest-bug <at> gnu.org
Cc: rfrancoise <at> debian.org
Subject: 23.0.60; A combination of PC Selection, Visual Lines and emacsclient redefines C-backspace  
Date: Tue, 20 Jan 2009 00:22:57 +0300

1) Run emacs

2) Hit C-h k C-backspace 

   It replies (expected):

   <C-backspace> runs the command backward-kill-word, which is an
   interactive compiled Lisp function.

   It is bound to <C-backspace>.

   (backward-kill-word arg)

   Kill characters backward until encountering the beginning of a word.
   With argument arg, do this that many times.

3) Exit emacs

4) Run emacs --daemon

5) Run emacsclient -c

6) Hit C-h k C-backspace

   It tells (unexpected):

   <C-backspace> runs the command kill-visual-line, which is an
   interactive compiled Lisp function.

   It is bound to <deleteline>, <C-backspace>, C-k.

   (kill-visual-line &optional arg)

   Kill the rest of the visual line.
   If there are only whitespace characters there, kill through the
   newline as well.

   ...

The problem is not reproduced with emacs -Q. However, I could trace
down the problematic line in my .emacs (see listing below). The
problem is triggered by '(pc-selection-mode t) statement.

Please note that *do* like the [other] effects of PC Selection and
Visual Lines modes and I've turned them on on purpose.

My .emacs customizations:

;; --- Customized ---
(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(TeX-PDF-mode t)
 '(TeX-output-view-style (quote (("^dvi$" ("^landscape$" "^pstricks$\\|^pst-\\|^psfrag$") "%(o?)dvips -t landscape %d -o && gv %f") ("^dvi$" "^pstricks$\\|^pst-\\|^psfrag$" "%(o?)dvips %d -o && gv %f") ("^dvi$" ("^\\(?:a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4\\)$" "^landscape$") "%(o?)xdvi %dS -paper a4r -s 0 %d") ("^dvi$" "^\\(?:a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4\\)$" "%(o?)xdvi %dS -paper a4 %d") ("^dvi$" ("^\\(?:a5\\(?:comb\\|paper\\)\\)$" "^landscape$") "%(o?)xdvi %dS -paper a5r -s 0 %d") ("^dvi$" "^\\(?:a5\\(?:comb\\|paper\\)\\)$" "%(o?)xdvi %dS -paper a5 %d") ("^dvi$" "^b5paper$" "%(o?)xdvi %dS -paper b5 %d") ("^dvi$" "^letterpaper$" "%(o?)xdvi %dS -paper us %d") ("^dvi$" "^legalpaper$" "%(o?)xdvi %dS -paper legal %d") ("^dvi$" "^executivepaper$" "%(o?)xdvi %dS -paper 7.25x10.5in %d") ("^dvi$" "." "%(o?)xdvi %dS %d") ("^pdf$" "." "evince %o") ("^html?$" "." "firefox %o"))))
 '(TeX-save-query nil)
 '(case-fold-search t)
 '(column-number-mode t)
 '(csv-align-style (quote right))
 '(current-language-environment "UTF-8")
 '(debian-bug-From-address "Andrey <cmr.Pent <at> gmail.com>")
 '(debian-bug-use-From-address t)
 '(dictionary-create-buttons nil)
 '(dictionary-default-dictionary "ru-en--en-ru")
 '(dictionary-server "dict.dvo.ru")
 '(dired-listing-switches "-l --group-directories-first")
 '(ediff-split-window-function (quote split-window-horizontally))
 '(ediff-window-setup-function (quote ediff-setup-windows-plain))
 '(global-visual-line-mode t)
 '(gnus-select-method (quote (nntp "news.gmane.org")))
 '(ibuffer-enable t)
 '(ibuffer-never-show-predicates (quote ("^\\*.*")) nil (ibuf-ext))
 '(kill-whole-line t)
 '(list-directory-brief-switches "-CF --group-directories-first")
 '(list-directory-verbose-switches "-l --group-directories-first")
 '(mouse-wheel-mode t)
 '(org-insert-mode-line-in-empty-file t)
 '(pc-selection-mode t)
 '(scroll-conservatively 50)
 '(scroll-margin 5)
 '(scroll-preserve-screen-position t)
 '(show-paren-mode t)
 '(svn-status-default-export-directory "~/study")
 '(svn-status-preserve-window-configuration t)
 '(text-mode-hook (quote (turn-on-auto-fill text-mode-hook-identify)))
 '(tool-bar-mode nil)
 '(truncate-lines t)
 '(use-dialog-box nil)
 '(w3m-coding-system (quote utf-8))
 '(w3m-default-coding-system (quote utf-8))
 '(w3m-file-coding-system (quote utf-8))
 '(w3m-file-name-coding-system (quote utf-8))
 '(w3m-terminal-coding-system (quote utf-8))
 '(w3m-use-cookies t)
 '(x-select-enable-clipboard t)
 '(x-select-request-type (quote UTF8_STRING) t))

I'm ready to provide any additional info,
Andrey

In GNU Emacs 23.0.60.1 (i486-pc-linux-gnu, GTK+ Version 2.12.11)
 of 2009-01-18 on elegiac, modified by Debian
 (emacs-snapshot package, version 1:20090118-1)
Windowing system distributor `The X.Org Foundation', version 11.0.10402000
configured using `configure  '--build' 'i486-linux-gnu' '--host' 'i486-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/23.0.60/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.0.60/site-lisp:/usr/share/emacs/site-lisp' '--with-x=yes' '--with-x-toolkit=gtk' 'build_alias=i486-linux-gnu' 'host_alias=i486-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: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ru_RU.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  delete-selection-mode: t
  show-paren-mode: t
  pc-selection-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  global-visual-line-mode: t
  visual-line-mode: t
  transient-mark-mode: t




Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#1960; Package emacs. (Tue, 20 Jan 2009 03:50:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Chong Yidong <cyd <at> stupidchicken.com>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Tue, 20 Jan 2009 03:50:03 GMT) Full text and rfc822 format available.

Message #10 received at 1960 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Chong Yidong <cyd <at> stupidchicken.com>
To: emacs-devel <at> gnu.org
Cc: 1960 <at> debbugs.gnu.org, pent <pent <at> aparamon.msk.ru>,
        rfrancoise <at> debian.org
Subject: Re: 23.0.60; A combination of PC Selection, Visual Lines and emacsclient redefines C-backspace
Date: Mon, 19 Jan 2009 22:40:54 -0500
Simplified recipe for bug#1960:

1. Put (pc-selection-mode 1) in .emacs
2. emacs --daemon
3. emacsclient -c
4. C-h k C-backspace

<C-backspace> runs the command kill-line, which is an interactive
compiled Lisp function in `simple.el'.

5. C-x C-c
6. emacsclient -c
7. C-h k C-backspace

<C-backspace> runs the command backward-kill-word, which is an
interactive compiled Lisp function in `simple.el'.


PC-selection mode binds [C-delete] to kill-line.  My guess is that some
code for distinguishing delete from DEL isn't run when Emacs is started
as a daemon.  It's only run sometime after the first client frame is
created, which is why C-backspace works properly for the second client
frame.

Could someone take a closer look?




Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#1960; Package emacs. (Tue, 20 Jan 2009 16:25:04 GMT) Full text and rfc822 format available.

Message #13 received at 1960 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Dan Nicolaescu <dann <at> tensilica.com>
To: Chong Yidong <cyd <at> stupidchicken.com>
Cc: emacs-devel <at> gnu.org, pent <pent <at> aparamon.msk.ru>, rfrancoise <at> debian.org,
        1960 <at> debbugs.gnu.org
Subject: Re: 23.0.60; A combination of PC Selection, Visual Lines and emacsclient redefines C-backspace
Date: Tue, 20 Jan 2009 08:18:59 -0800 (PST)
Chong Yidong <cyd <at> stupidchicken.com> writes:

  > Simplified recipe for bug#1960:
  > 
  > 1. Put (pc-selection-mode 1) in .emacs
  > 2. emacs --daemon
  > 3. emacsclient -c
  > 4. C-h k C-backspace
  > 
  > <C-backspace> runs the command kill-line, which is an interactive
  > compiled Lisp function in `simple.el'.
  > 
  > 5. C-x C-c
  > 6. emacsclient -c
  > 7. C-h k C-backspace
  > 
  > <C-backspace> runs the command backward-kill-word, which is an
  > interactive compiled Lisp function in `simple.el'.

What happens when repeating steps 5,6 and 7? 
I am guessing that the <C-backspace> binding would toggle between
kill-line and backward-kill-word.  
If that's indeed the case, then there's probably some problem with
pc-selection-mode and the way it interacts with
normal-erase-is-backspace.




Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#1960; Package emacs. (Wed, 21 Jan 2009 16:10:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Chong Yidong <cyd <at> stupidchicken.com>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Wed, 21 Jan 2009 16:10:04 GMT) Full text and rfc822 format available.

Message #18 received at 1960 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Chong Yidong <cyd <at> stupidchicken.com>
To: Dan Nicolaescu <dann <at> tensilica.com>
Cc: emacs-devel <at> gnu.org, pent <pent <at> aparamon.msk.ru>, rfrancoise <at> debian.org,
        1960 <at> debbugs.gnu.org
Subject: Re: 23.0.60; A combination of PC Selection, Visual Lines and emacsclient redefines C-backspace
Date: Wed, 21 Jan 2009 11:02:54 -0500
Dan Nicolaescu <dann <at> tensilica.com> writes:

> there's probably some problem with pc-selection-mode and the way it
> interacts with normal-erase-is-backspace.

The problem is not pc-selection mode, but how Emacs does
normal-erase-is-backspace in multi-tty situations.  Here's an even
simpler recipe, not involving pc-selection-mode or the daemon:

1. Add the following line to .emacs:

     (global-set-key [C-delete] 'kill-line)

2. emacs -nw -f server-start
3. emacsclient -c
4. C-h k C-backspace

  => <C-backspace> runs the command kill-line




Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#1960; Package emacs. (Thu, 22 Jan 2009 06:30:02 GMT) Full text and rfc822 format available.

Message #21 received at 1960 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Dan Nicolaescu <dann <at> ics.uci.edu>
To: Chong Yidong <cyd <at> stupidchicken.com>
Cc: pent <pent <at> aparamon.msk.ru>, rfrancoise <at> debian.org,
        1960 <at> debbugs.gnu.org, emacs-devel <at> gnu.org
Subject: Re: 23.0.60; A combination of PC Selection, Visual Lines and emacsclient redefines C-backspace
Date: Wed, 21 Jan 2009 22:21:28 -0800 (PST)
  > > there's probably some problem with pc-selection-mode and the way it
  > > interacts with normal-erase-is-backspace.
  > 
  > The problem is not pc-selection mode, but how Emacs does
  > normal-erase-is-backspace in multi-tty situations.  Here's an even
  > simpler recipe, not involving pc-selection-mode or the daemon:
  > 
  > 1. Add the following line to .emacs:
  > 
  >      (global-set-key [C-delete] 'kill-line)
  > 
  > 2. emacs -nw -f server-start
  > 3. emacsclient -c
  > 4. C-h k C-backspace
  > 
  >   => <C-backspace> runs the command kill-line


This happens because:

(defun normal-erase-is-backspace-setup-frame (&optional frame)
  "Set up `normal-erase-is-backspace-mode' on FRAME, if necessary."
  (unless frame (setq frame (selected-frame)))
  (unless (terminal-parameter nil 'normal-erase-is-backspace)
    (normal-erase-is-backspace-mode
      (if (if (eq normal-erase-is-backspace 'maybe)

When using "emacs -nw -f server-start" the "(unless (terminal-parameter"
test passes and `normal-erase-is-backspace' is run.

When using "emacs -f server-start" the `terminal-parameter' call returns
non-ni, so `normal-erase-is-backspace' is not run.  
It seems that terminal-parameters are copied from the first frame
created...

Not sure how normal-erase-is-backspace is supposed to work... 





Reply sent to Chong Yidong <cyd <at> stupidchicken.com>:
You have taken responsibility. (Tue, 27 Jan 2009 20:20:04 GMT) Full text and rfc822 format available.

Notification sent to cmr.Pent <at> gmail.com:
bug acknowledged by developer. (Tue, 27 Jan 2009 20:20:04 GMT) Full text and rfc822 format available.

Message #26 received at 1960-done <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Chong Yidong <cyd <at> stupidchicken.com>
To: pent <pent <at> aparamon.msk.ru>
Cc: rfrancoise <at> debian.org, 1960-done <at> debbugs.gnu.org
Subject: Re: 23.0.60; A combination of PC Selection, Visual Lines and emacsclient redefines C-backspace  
Date: Tue, 27 Jan 2009 15:12:18 -0500
I've checked in a fix.  Thanks.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> emacsbugs.donarmstrong.com. (Wed, 25 Feb 2009 15:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 16 years and 176 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.