Subject: bug#48421: 28.0.50; Edit region for query-replace gets lost

From: "Bob Floyd" <[email-masked]>
Date: Fri, 14 May 2021 09:53:45 -0700

Put in a cpp file:

----------------------------------------------------------------------------
---------------

extern "C" void*

NuVmodelPopulator( vpiHandle _parameterHndl, void* _cktVoid, int* _err )

{

  CKTcircuit* _ckt = (CKTcircuit*)_cktVoid;

  std::string          _nmPrm

  ( vpi_get_str( ft_sim->NuVbridge, vpiName, _parameterHndl ) );

  vpiHandle          _paramsetHndl

  ( vpi_handle( ft_sim->NuVbridge, vpiParamset, _parameterHndl ) );

  std::string          _nmPrmset

  ( vpi_get_str( ft_sim->NuVbridge, vpiName, _paramsetHndl ) );

  vpi_release_handle( ft_sim->NuVbridge, _paramsetHndl );

  std::transform

  ( _nmPrmset.begin(), _nmPrmset.end(), _nmPrmset.begin(), ::tolower );

  std::transform

  ( _nmPrmset.begin(), _nmPrmset.end(), _nmPrmset.begin(), ::tolower );

}

----------------------------------------------------------------------------
--------------

1,2,3    => selects region for query-replace.

5,6,7,8 => sequence causes region to be lost.

1. C-a (move-beginning-of-line) on the next to the last line:

-->  ( _nmPrmset.begin(), _nmPrmset.end(), _nmPrmset.begin(), ::tolower );

     }

2. C-SPC (set-mark-command)

3. C-e (move-end-of-line)

4. M-% (query-replace)

     The replace region is the next to the last line:

     ( _nmPrmset.begin(), _nmPrmset.end(), _nmPrmset.begin(), ::tolower );

5. Double-click left mouse on the "_" of "_nmPrm" on the next to the last
line

at column 5 to select "_nmPrm".

6. Middle mouse click then enter to insert in query replace:

    Query replace in region: _nmPrmset

7. Double-click left mouse on the "_" of "_nmPrm" on line 6 to select
"_nmPrm"

8. Middle mouse click then enter:

   Query replace in region _nmPrmset with: _nmPrm

Note the edit region of 1,2,3 is lost.

---------------------------------------------------------------------

In GNU Emacs 28.0.50 (build 1, x86_64-w64-mingw32)

of 2021-01-15 built on CIRROCUMULUS

Repository revision: f45be48ddbde00610e1e08fca6590dcf24a4e1b5

Repository branch: master

Windowing system distributor 'Microsoft Corp.', version 10.0.19042

System Description: Microsoft Windows 10 Enterprise (v10.0.2009.19042.928)

Configured using:

'configure --without-dbus --without-compress-install -C 'CFLAGS=-O2

-static -g3' PKG_CONFIG_PATH=/mingw64/lib/pkgconfig'

Configured features:

ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY

W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS XPM

ZLIB

Important settings:

  value of $LANG: ENU

  locale-coding-system: cp1252

Major mode: C++//la

Minor modes in effect:

  shell-dirtrack-mode: t

  show-paren-mode: t

  tooltip-mode: t

  global-eldoc-mode: t

  electric-indent-mode: t

  mouse-wheel-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

  abbrev-mode: t

Load-path shadows:

None found.

Features:

(pp shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs

rfc822 mml mml-sec epa epg epg-config gnus-util rmail rmail-loaddefs

text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231

mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums

mm-util mail-prsvr mail-utils misearch multi-isearch two-column

help-mode time-date web-mode advice derived edmacro kmacro shell

pcomplete comint ansi-color ring printing ps-print ps-print-loaddefs

ps-def lpr paren cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles

cc-align cc-engine cc-vars cc-defs finder-inf tex-site info package

easymenu browse-url url url-proxy url-privacy url-expand url-methods

url-history url-cookie url-domsuf url-util mailcap url-handlers

url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs

password-cache json subr-x map url-vars seq byte-opt gv bytecomp

byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc electric

uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp

disp-table term/w32-win w32-win w32-vars term/common-win tool-bar dnd

fontset image regexp-opt fringe tabulated-list replace newcomment

text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar

rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock

syntax facemenu font-core term/tty-colors frame minibuffer cl-generic

cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao

korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech

european ethiopic indian cyrillic chinese composite charscript charprop

case-table epa-hook jka-cmpr-hook help simple abbrev obarray

cl-preloaded nadvice button loaddefs faces cus-face macroexp files

window text-properties overlay sha1 md5 base64 format env code-pages

mule custom widget hashtable-print-readable backquote threads w32notify

w32 lcms2 multi-tty make-network-process emacs)

Memory information:

((conses 16 190653 13405)

(symbols 48 14109 5)

(strings 32 48550 3158)

(string-bytes 1 1555849)

(vectors 16 22314)

(vector-slots 8 381834 16818)

(floats 8 268 260)

(intervals 56 3394 0)

(buffers 984 18))