Subject: bug#13805: query-replace-regexp has conflicting interactive defaults

From: Richard Copley <[email-masked]>
Date: Sun, 24 Feb 2013 20:38:20 +0000

`query-replace-regexp' offers to repeat the last replacement, but
then goes off and does something exciting and new instead.

IMHO replace-regexp and friends should not default their
argument using the thing at point, because the user doesn't have
control of point: it is by definition at one end of the region to be
searched. That means the default is useful only in exceptional
cases, and just a distraction otherwise.

>From `emacs -Q':
M-% . RET ! RET ;; To put a replacement into the history.
M-b    ;; To place point before the word "buffer" in *scratch*.
C-M-%  ;; Prompts "Query replace regexp (default . -> !): ".
RET    ;; Prompts "Query replace regexp \_<buffer\.\_> with: ".
RET !  ;; Replaces "buffer" with "".

In GNU Emacs 24.3.50.1 (i386-mingw-nt6.2.9200)
 of 2013-02-24 on MACHINE
Bzr revision: 111868 [email-masked]
Windowing system distributor `Microsoft Corp.', version 6.2.9200
Configured using:
 `configure --with-gcc (4.7) --cflags -I c:/gnuwin32/include --ldflags
 -L c:/gnuwin32/lib'

Important settings:
  value of $LANG: ENG
  locale-coding-system: cp1252
  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
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-% . <return> ! <return> M-b C-M-% <return> ? <return>
! M-x r e p o r t - e m a c s - b u g <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Mark set
Replaced 0 occurrences
Mark set
Replaced 1 occurrence

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win
w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment 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 button faces cus-face macroexp files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process w32notify w32
multi-tty emacs)