Subject: 23.1; comint history doesn't handle multi-character delimiters

From: Mark Diekhans <[email-masked]>
Date: Sat, 21 Nov 2009 09:23:15 -0800

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:

Both bash and csh use multi-character delimiters, yet comint and
shell mode only recognize single character delimiters.  This
results in comint-dynamic-complete corrupting the command.  For instance,
in bash:

    date >& /dev/null
    !!<tab>
    date > & /dev/null

    cat $(ls /dev/null)
    !!<tab>
    cat $ ( ls /dev/null )

    cat <(date)
    !!<tab>
    cat < ( date )

This is extremely frustrating, requiring editing of commands being redone
before executing them.

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'.
If you would like to further debug the crash, please read the file
/opt/share/emacs/23.1/etc/DEBUG for instructions.

In GNU Emacs 23.1.1 (x86_64-unknown-freebsd7.1, GTK+ Version 2.16.6)
 of 2009-10-11 on osprey.kermodei.com
configured using `configure  '--prefix=/opt''

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

Major mode: Shell

Minor modes in effect:
  display-time-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
C-g m v SPC s h TAB n o t e s . t x t RET RET RET C-x 
C-f n TAB RET M-> M-< ESC O B ESC O B ESC O B ESC O 
B ESC O B ESC O B ESC O A RET RET RET C-x C-s C-x o 
d a t e C-a C-k c a t SPC $ ( d a t e ) RET M-p M-b 
M-d l s SPC / d e v / n u l l C-e RET ! ! TAB RET ESC 
O A ESC O A ESC O A C-a C-@ ESC O B C-e M-w C-x o ESC 
O A ESC O A C-y C-a M-d C-d ESC O A ESC O A ESC O A 
ESC O A C-@ C-e M-w ESC O B ESC O B ESC O B ESC O B 
ESC O A C-e RET C-y C-a C-x C-s C-x o C-x h C-w RET 
c a t SPC < ( d a t e ) C-e TAB C-x o C-x b RET C-x 
o RET ! ! TAB RET ESC O A ESC O A ESC O A ESC O A C-@ 
ESC O B ESC O B C-e M-w C-x o ESC O B ESC O B RET C-y 
C-a M-d C-d ESC O A C-k ESC O A ESC O A ESC O A ESC 
O A C-@ C-e M-w ESC O B ESC O B ESC O B ESC O B C-y 
ESC O B ESC O B RET RET C-x C-s C-x C-s C-x o M-x C-g 
M-x b u g TAB C-a C-e TAB C-g M-x e m TAB a c TAB - 
b TAB C-g M-x r e p TAB o TAB r TAB RET

Recent messages:
Mark set [4 times]
Saving file /a/markd/work/emacs/comint-bug/notes.txt...
Wrote /a/markd/work/emacs/comint-bug/notes.txt
(No changes need to be saved)
Quit
Making completion list...
Quit
Making completion list...
Quit
Making completion list... [2 times]