Juri Linkov 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.