Subject: bug#7340: 23.2; occur-mode blocks repeat-macro shortcut

From: Dan McCarthy <[email-masked]>
Date: Fri, 5 Nov 2010 19:23:57 -0400

If I execute a keyboard macro that ends in an occur-mode buffer, Emacs
gives the usual '(Type e to repeat macro)' prompt, but if you type 'e'
it gets rejected because the occur buffer is read-only.

I can still repeat the macro with C-x e (or C-u 100 C-x e, which is
probably what you usually do with macros in occur buffers), but it is
surprising at first.

In GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.8.20)
 of 2010-05-10 on discordia
Windowing system distributor `The X.Org Foundation', version 11.0.70101000
configured using `configure  '--without-sound''

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: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Occur

Minor modes in effect:
  shell-dirtrack-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5>
<help-echo> <down-mouse-5> <mouse-5> <help-echo> <down-mouse-5>
<mouse-5> <help-echo> <down-mouse-5> <mouse-5> <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> <down-mouse-4>
<mouse-4> <down-mouse-4> <mouse-4> <help-echo> <down-mouse-4>
<mouse-4> <help-echo> <down-mouse-4> <mouse-4> <help-echo>
<down-mouse-4> <mouse-4> <down-mouse-4> <mouse-4> <help-echo>
<help-echo> <down-mouse-5> <mouse-5> <down-mouse-5>
<mouse-5> <down-mouse-1> <mouse-1> <double-down-mouse-1>
<double-mouse-1> <down-mouse-1> <mouse-1> <help-echo>
<down-mouse-5> <mouse-5> <help-echo> <down-mouse-5>
<mouse-5> <help-echo> <down-mouse-5> <mouse-5> <down-mouse-5>
<mouse-5> <help-echo> <down-mouse-5> <mouse-5> <help-echo>
<down-mouse-1> <mouse-2> <help-echo> <down-mouse-1>
<mouse-1> <help-echo> <switch-frame> <C-backspace>
<C-backspace> <C-backspace> <switch-frame> <help-echo>
C-x e <switch-frame> <switch-frame> <help-echo> C-x
e <switch-frame> <switch-frame> e e <help-echo> C-x
e <switch-frame> <switch-frame> e C-x e <switch-frame>
<switch-frame> e <help-echo> <help-echo> <switch-frame>
<switch-frame> <help-echo> C-x e <switch-frame> <switch-frame>
C-x e <switch-frame> <switch-frame> C-x e <switch-frame>
<switch-frame> C-x e <switch-frame> <switch-frame>
C-x e <switch-frame> <switch-frame> C-x e <switch-frame>
<switch-frame> C-x e <switch-frame> <switch-frame>
C-u 2 0 C-x e <switch-frame> <switch-frame> <switch-frame>
<switch-frame> <switch-frame> <switch-frame> <switch-frame>
<switch-frame> <switch-frame> <switch-frame> <switch-frame>
<switch-frame> <switch-frame> <switch-frame> <switch-frame>
<switch-frame> <switch-frame> <switch-frame> <switch-frame>
<switch-frame> <switch-frame> <switch-frame> <switch-frame>
<switch-frame> <switch-frame> <switch-frame> <switch-frame>
<switch-frame> <switch-frame> <switch-frame> <switch-frame>
<switch-frame> <switch-frame> <switch-frame> <switch-frame>
<switch-frame> <switch-frame> <switch-frame> <switch-frame>
<switch-frame> C-u 2 0 C-x e <switch-frame> <down-mouse-4>
<mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4>
<triple-mouse-4> <down-mouse-1> <mouse-movement> <mouse-1>
<delete> <up> <up> <up> <up> <down-mouse-1> <mouse-movement>
<drag-mouse-1> <down-mouse-1> <mouse-movement> <mouse-1>
<down-mouse-1> <mouse-movement> <mouse-movement> <drag-mouse-1>
C-w <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> M-x
d e l e <tab> <tab> d u p <tab> <tab> <backspace> <backspace>
<backspace> <tab> C-g <down-mouse-1> <mouse-movement>
<mouse-movement> <drag-mouse-1> C-w <down-mouse-1>
<mouse-movement> <mouse-movement> <drag-mouse-1> C-w
<down-mouse-1> <mouse-movement> <mouse-movement> <drag-mouse-1>
C-w <down-mouse-1> <mouse-movement> <mouse-movement>
<drag-mouse-1> C-w <down-mouse-1> <mouse-movement>
<mouse-movement> <drag-mouse-1> C-w <down-mouse-1>
<mouse-movement> <mouse-movement> <drag-mouse-1> C-w
<down-mouse-1> <mouse-movement> <mouse-movement> <drag-mouse-1>
C-w <switch-frame> <switch-frame> <down-mouse-1> <mouse-movement>
<mouse-1> C-x C-s <switch-frame> <help-echo> <help-echo>
<help-echo> M-x r e p o r t - e m a c s - b u g <r
eturn>

Recent messages:
Buffer is read-only: #<buffer *Occur*>
(Type e to repeat macro)
Buffer is read-only: #<buffer *Occur*>
(Type e to repeat macro) [8 times]
After 14 kbd macro iterations: occur-mode-find-occurrence: No occurrence on
this line
Making completion list... [2 times]
Quit
Auto-saving...done

Load-path shadows:
~/emacs-lisp/css-mode hides
/usr/local/share/emacs/23.2/lisp/textmodes/css-mode
~/emacs-lisp/greek hides /usr/local/share/emacs/23.2/lisp/language/greek

Features:
(shadow mail-extr message 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 disp-table woman novice hideif find-func two-column
iso-transl dictionary link connection multi-isearch noutline outline
ruler-mode mule-util hl-line hexl sort newcomment server skeleton
sh-script jka-compr help-mode view make-mode executable grep ansi-color
shell vc-dispatcher vc-svn man paren cua-base cus-start cus-load
acme-search slime byte-opt bytecomp byte-compile apropos easy-mmode
hyperspec browse-url hideshow pp quack thingatpt compile cmuscheme
comint scheme session xref rx ecf-mode dcm-general arc-mode archive-mode
tar-mode advice advice-preload vanc-mode php-mode speedbar sb-image
ezimage dframe assoc darcs-mode derived css-mode cc-mode cc-fonts
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs regexp-opt
eperiodic edmacro kmacro sudoku easymenu esh-var esh-io esh-cmd esh-ext
esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util etags
ring cl cl-19 eldoc help-fns 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)