unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Bob Floyd" <bobfloyd@comcast.net>
To: "'Juri Linkov'" <juri@linkov.net>
Cc: 45617@debbugs.gnu.org
Subject: bug#45617: <query-replace> loses the edit region. Works in 23.3, broke in 26.3
Date: Fri, 15 Jan 2021 10:05:04 -0800	[thread overview]
Message-ID: <000c01d6eb68$f3f675f0$dbe361d0$@net> (raw)
In-Reply-To: <87k0sezj07.fsf@mail.linkov.net>

I'm having an issue with the new patch. <query-replace> fails!

1. Select entire region by dragging mouse.
2. Begin <query-replace>
   In the command window: Query replace in region: 
3. Enter RL using the keyboard
   In the command window: Query replace in region RL with: 
4. Now, with the mouse, select RL at line 12 ...
   paramset P2 RL; <--- THIS ONE
   ... then yank it to the command window and with keyboard enter X:
   In the command window: Query replace in region RL with: RLX
5. Enter
   Only one of the two RL's in the region are selected, depending on
   if the region was selected from top-to-bottom or bottom-to-top.

   It should select both RL's!

----------------------------------------------------
module RL ( electrical in, out );
   parameter real R1 = 7000.0;
   parameter real C  = 1p;
   
   analog begin
      I(in,out) <+ V(in,out) / R1;
      I(out)    <+ C * ddt( V(out) );
   end
   
endmodule // Sub

paramset P2 RL;
parameter real R=1000;
.R1= R;
endparamset
----------------------------------------------------

Just in case I misread the diff, this is the function as I have manually
patched it:

(defun query-replace-read-args (prompt regexp-flag &optional noerror)
  (unless noerror
    (barf-if-buffer-read-only))
  (save-mark-and-excursion
  (let* ((from (query-replace-read-from prompt regexp-flag))
	 (to (if (consp from) (prog1 (cdr from) (setq from (car from)))
	       (query-replace-read-to from prompt regexp-flag))))
    (or (and current-prefix-arg (not (eq current-prefix-arg '-)))
	(and (plist-member (text-properties-at 0 from)
'isearch-regexp-function)
(get-text-property 0 'isearch-regexp-function from)))
    (list from to
	  (and current-prefix-arg (not (eq current-prefix-arg '-)))
	  (and current-prefix-arg (eq current-prefix-arg '-))))))



-----Original Message-----
From: Juri Linkov [mailto:juri@linkov.net] 
Sent: Friday, January 15, 2021 12:55 AM
To: Bob Floyd
Cc: 'Eli Zaretskii'; 45617@debbugs.gnu.org
Subject: Re: bug#45617: <query-replace> loses the edit region. Works in
23.3, broke in 26.3

> I've removed the earlier patch and installed these changes. Now testing
it!
> Thanks.
>
> -----Original Message-----
>  (defun query-replace-read-args (prompt regexp-flag &optional noerror)
>    (unless noerror
>      (barf-if-buffer-read-only))
> +  (save-mark-and-excursion
>    (let* ((from (query-replace-read-from prompt regexp-flag))
>  	 (to (if (consp from) (prog1 (cdr from) (setq from (car from)))
>  	       (query-replace-read-to from prompt regexp-flag))))

It seems this is what we need to push to be able to close this bug report.
Indeed, it fixes only query-replace commands.  But fixing all commands
that use the minibuffer is not as easy as adding 'save-mark-and-excursion'
like in the patch above.

The problem is that 'read-from-minibuffer' is implemented in C.
If it was implemented in Lisp, it would be easy to add just
'save-mark-and-excursion', but in C this is impossible.






  parent reply	other threads:[~2021-01-15 18:05 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-03  1:05 bug#45617: <query-replace> loses the edit region. Works in 23.3, broke in 26.3 Bob Floyd
2021-01-03 14:47 ` Eli Zaretskii
2021-01-03 19:18   ` Bob Floyd
2021-01-04 17:26     ` Eli Zaretskii
2021-01-04 17:37   ` Juri Linkov
2021-01-04 22:40     ` Bob Floyd
2021-01-05 18:27       ` Juri Linkov
2021-01-05 19:45         ` Bob Floyd
2021-01-06 17:44           ` Juri Linkov
2021-01-06 18:19             ` Eli Zaretskii
2021-01-06 22:10               ` Bob Floyd
2021-01-13 18:53                 ` Juri Linkov
2021-01-15  1:22                   ` Bob Floyd
2021-01-15  8:54                     ` Juri Linkov
2021-01-15 11:23                       ` Eli Zaretskii
2021-01-19 17:45                         ` Juri Linkov
2021-01-19 18:39                           ` Eli Zaretskii
2021-01-15 18:05                       ` Bob Floyd [this message]
2021-01-19 17:43                         ` Juri Linkov
2021-01-20 22:48                           ` Bob Floyd
2021-01-20 23:23                           ` Bob Floyd
2021-01-21 21:50                             ` Juri Linkov
2021-01-22 17:31                               ` Bob Floyd
2021-01-23 17:20                                 ` Juri Linkov
2021-01-23 18:03                                   ` Bob Floyd
2021-01-23 18:31                                     ` Juri Linkov
2021-01-24 20:40                                       ` Bob Floyd
2021-01-25 17:07                                         ` Juri Linkov
2021-01-25 18:13                                           ` Bob Floyd
2021-01-25 18:54                                             ` Juri Linkov
2021-01-25 19:34                                               ` Bob Floyd
2021-01-25 19:51                                                 ` Juri Linkov
2021-01-26  0:34                                                   ` Bob Floyd
2021-01-27  9:43                                                     ` Juri Linkov
2021-01-28 16:31                                                       ` Bob Floyd
2021-01-28 18:42                                                         ` Juri Linkov
2021-01-28 21:32                                                           ` Bob Floyd
2021-01-29  8:56                                                             ` Juri Linkov
2021-01-15 18:09                   ` Bob Floyd
2021-01-07 18:46               ` Juri Linkov
2021-01-07 19:36                 ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='000c01d6eb68$f3f675f0$dbe361d0$@net' \
    --to=bobfloyd@comcast.net \
    --cc=45617@debbugs.gnu.org \
    --cc=juri@linkov.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).