Subject: Re: bug#45607: 27.1; compiled replace-string breaks repeat-complex-command

From: Lars Ingebrigtsen <[email-masked]>
Date: Fri, 12 Aug 2022 15:01:47 +0200

Juri Linkov <[email-masked]> writes:

> Interesting, there are not too many uses of this pattern,
> and most of them are related to replacement commands.
> Ok, I could replace them with adding interactive-args.
>
> lisp/isearch.el
> 2392:      (if (use-region-p) (region-beginning))
> 2393:      (if (use-region-p) (region-end))
> lisp/replace.el
> 464: 	   (if (use-region-p) (region-beginning))
> 465: 	   (if (use-region-p) (region-end))
> 558: 	   (if (use-region-p) (region-beginning))
> 559: 	   (if (use-region-p) (region-end))
> 606: 	   (if (use-region-p) (region-beginning))
> 607: 	   (if (use-region-p) (region-end))
> 761: 	   (if (use-region-p) (region-beginning))
> 762: 	   (if (use-region-p) (region-end))
> lisp/textmodes/paragraphs.el
> 518:                      (if (use-region-p) (region-beginning))
> 519:                      (if (use-region-p) (region-end))))
> lisp/vc/log-view.el
> 581:    (list (if (use-region-p) (region-beginning) (point))
> 582:          (if (use-region-p) (region-end) (point))))
> 596:    (list (if (use-region-p) (region-beginning) (point))
> 597:          (if (use-region-p) (region-end) (point))))

That's fewer than I'd have guessed -- but I guess that quite a few
commands stash the logic down into the function body instead of putting
it into the `interactive' spec.  Commands like `duplicate-dwim', for
instance, could be pretty easily fixed in that way, for instance.