Subject: bug#5668: 23.1.93; comint-mode-map key definitions for [delete] and [kp-delete]

From: "Gallagher, Kevin" <[email-masked]>
Date: Mon, 1 Mar 2010 16:32:05 -0600

This bug report will be sent to the Free Software Foundation,

not to your local site managers!

Please write in English if possible, because the Emacs maintainers

usually do not have translators to read other languages for them.

Your bug report will be posted to the [email-masked] mailing list,

and to the gnu.emacs.bug news group.

Please describe exactly what actions triggered the bug

and the precise symptoms of the bug.  If you can, give

a recipe starting from `emacs -Q':

In comint.el, the following key definitions have been added to

comint-mode-map:

    ;; The following two are standardly aliased to C-d,

    ;; but they should never do EOF, just delete.

    (define-key map [delete]           'delete-char)

    (define-key map [kp-delete]       'delete-char)

Now, I understand the motivation here BUT, typically, one only defines

mode-specific C-c bindings and mode-specific pull-down menu

bindings in mode maps. In my case, I have delete and kp-delete assigned

to perform an entirely different function. This is the first time any

mode map has ever usurped my custom assignments to the delete and kp-delete

keys. In addition, the above reassignment assumes the user is using a PC

type of keyboard.  If one is using a DEC VT series keyboard, or a DEC VT

terminal series emulator, then the Delete key is located where the PC

Backspace key is located.  In this case, the Delete key assignment in

the global-map will be to DEL, not C-d.

A better approach is NOT to make these assignments unilaterally.

Instead, the code should examine the current key assignment for delete

and kp-delete in current-global-map. ONLY IF the current assignment is

"C-d" should the above redefinitions be made.

If Emacs crashed, and you have the Emacs process in the gdb debugger,

please include the output from the following gdb commands:

    `bt full' and `xbacktrace'.

For information about debugging Emacs, please read the file

/users/gallagk/src/emacs-23.1.93/etc/DEBUG.

In GNU Emacs 23.1.93.1 (i686-pc-linux-gnu, GTK+ Version 2.10.4)

 of 2010-02-28 on houfcs101

Windowing system distributor `AT&T Laboratories Cambridge', version 11.0.3332

configured using `configure  '--prefix=/users/gallagk/usr/local53''

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: C

  value of $XMODIFIERS: nil

  locale-coding-system: nil

  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:

  shell-dirtrack-mode: t

  show-paren-mode: t

  display-time-mode: t

  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

  blink-cursor-mode: t

  auto-encryption-mode: t

  auto-compression-mode: t

  line-number-mode: t

  transient-mark-mode: t

Recent input:

~ / s r c / <backspace> <backspace> <backspace> <backspace>

u s r / l o c a l <backspace> <backspace> <backspace>

<backspace> <backspace> <backspace> <backspace> <backspace>

<backspace> . l i s p <tab> <return> SPC SPC SPC SPC

SPC SPC SPC SPC SPC SPC f SPC p f <escape> x e d i

f f SPC b u f f SPC <return> <return> <return> n n

n n p n p n p n p n n n p n n n n n n n n n n n n n

n n n n n n <switch-frame> <down-mouse-1> <mouse-movement>

<mouse-movement> <drag-mouse-1> <down-mouse-1> <mouse-1>

<down-mouse-1> <mouse-1> <down-mouse-5> <mouse-5> <down-mouse-5>

<mouse-5> <double-down-mouse-5> <double-mouse-5> <triple-down-mouse-5>

<triple-mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5>

<mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5>

<double-mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5>

<mouse-5> <down-mouse-4> <mouse-4> <double-down-mouse-4>

<double-mouse-4> <triple-down-mouse-4> <triple-mouse-4>

<triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4>

<triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4>

<down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5>

<mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5>

<double-mouse-5> <triple-down-mouse-5> <triple-mouse-5>

<down-mouse-4> <mouse-4> <down-mouse-1> <mouse-movement>

<mouse-movement> <drag-mouse-1> <down-mouse-1> <mouse-1>

<down-mouse-1> <mouse-movement> <mouse-movement> <drag-mouse-1>

<help-echo> <down-mouse-1> <mouse-movement> <drag-mouse-1>

C-h k e o C-/ <help-echo> <down-mouse-1> <mouse-1>

q <help-echo> <down-mouse-1> <mouse-movement> <drag-mouse-1>

<down-mouse-1> <mouse-1> <help-echo> <down-mouse-1>

<mouse-movement> <mouse-movement> <drag-mouse-1> <help-echo>

<down-mouse-1> <mouse-1> <switch-frame> q y <help-echo>

C-h i q C-h f c o m i n t - d e l c h a r - o r - m

a y b e - e o f <return> <help-echo> <down-mouse-1>

<mouse-1> C-x 1 <down-mouse-5> <mouse-5> <down-mouse-5>

<mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5>

<down-mouse-4> <mouse-4> <double-down-mouse-4> <double-mouse-4>

<triple-down-mouse-4> <triple-mouse-4> <down-mouse-5>

<mouse-5> <down-mouse-5> <mouse-5> <insert> <insert>

<delete> <delete> <delete> <insert> C-h k <delete>

C-h k <kp-decimal> C-h k <delete> <help-echo> <down-mouse-1>

<mouse-movement> <mouse-1> <help-echo> <down-mouse-1>

<mouse-1> <help-echo> <down-mouse-1> <mouse-1> C-x

1 <f12> b SPC SPC f <down-mouse-1> <mouse-movement>

<mouse-movement> <drag-mouse-1> <escape> x r e p o

r SPC b u g SPC <return>

Recent messages:

Only white-space differences in region 22

Refining difference region 23 ...

Region 24 in buffer A is empty [2 times]

Type C-x 4 C-o RET to restore the other window.

Undo!

Quit this Ediff session? (y or n)

Composing main Info directory...done

Type C-x 4 C-o RET to restore the other window.

Type C-x 1 to delete the help window.

Commands: d, s, x, u; f, o, 1, 2, m, v; ~, %; q to quit; ? for help.

Load-path shadows:

None found.

Features:

(shadow sort mail-extr message sendmail ecomplete rfc822 mml mml-sec

password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231

rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc

time-date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1

hex-util hashcash mail-utils emacsbug info ediff-merg ediff-diff

ediff-wind ediff-help ediff-util ediff-mult ediff-init ediff

multi-isearch dired-aux help-mode view ansi-color shell edt picture

ehelp electric clearcase advice help-fns advice-preload tq reporter

executable easymenu dired regexp-opt comint ring cl cl-19 filladapt

paren time tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win

x-dnd font-setting tool-bar dnd fontset image fringe lisp-mode register

page menu-bar rfn-eshadow timer select scroll-bar mldrag 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 loaddefs button

minibuffer faces cus-face files text-properties overlay md5 base64

format env code-pages mule custom widget hashtable-print-readable

backquote make-network-process dbusbind system-font-setting

font-render-setting gtk x-toolkit x multi-tty emacs)