From 05df6662ef229fdbaa2b6f4430f39f95eaa7a65a Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 16 Jan 2016 09:40:12 +0200 Subject: [PATCH] Fix interactive specs in some hideif.el commands * lisp/progmodes/hideif.el (hif-evaluate-macro) (hide-ifdef-undef, show-ifdef-block): Don't use '(interactive "r")' in commands that should only act on the region if it's active. --- lisp/progmodes/hideif.el | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el index cc7d1c368c5..a75a322b335 100644 --- a/lisp/progmodes/hideif.el +++ b/lisp/progmodes/hideif.el @@ -1581,11 +1581,14 @@ Refer to `hide-ifdef-expand-reinclusion-protection' for more details." result)) (defun hif-evaluate-macro (rstart rend) - "Evaluate the macro expansion result for a region. + "Evaluate the macro expansion result for the active region. If no region active, find the current #ifdefs and evaluate the result. Currently it supports only math calculations, strings or argumented macros can not be expanded." - (interactive "r") + (interactive + (if (use-region-p) + (list (region-beginning) (region-end)) + '(nil nil))) (let ((case-fold-search nil)) (save-excursion (unless mark-active @@ -1844,9 +1847,13 @@ This allows #ifdef VAR to be hidden." (defun hide-ifdef-undef (start end) "Undefine a VAR so that #ifdef VAR would not be included." - (interactive "r") + (interactive + (if (use-region-p) + (list (region-beginning) (region-end)) + '(nil nil))) (let* ((symstr - (or (and mark-active + (or (and (number-or-marker-p start) + (number-or-marker-p end) (buffer-substring-no-properties start end)) (read-string "Undefine what? " (current-word)))) (sym (and symstr @@ -1931,8 +1938,12 @@ With optional prefix argument ARG, also hide the #ifdefs themselves." (defun show-ifdef-block (&optional start end) "Show the ifdef block (true or false part) enclosing or before the cursor." - (interactive "r") - (if mark-active + (interactive + (if (use-region-p) + (list (region-beginning) (region-end)) + '(nil nil))) + (if (and (number-or-marker-p start) + (number-or-marker-p end)) (progn (dolist (o (overlays-in start end)) (if (overlay-get o 'hide-ifdef) -- 2.39.2