From: Lars Ingebrigtsen Date: Thu, 3 Mar 2022 14:43:35 +0000 (+0100) Subject: Fix clobbering of match data in executable-set-magic X-Git-Tag: emacs-29.0.90~2036 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b6587090bfa192efc4db5ac181a9dfd5ee8c0c08;p=emacs.git Fix clobbering of match data in executable-set-magic * lisp/progmodes/executable.el (executable-set-magic): Switching buffers may clobber match data, so save the match data first (bug#54218). --- diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el index d7c093444ed..670b6e7e898 100644 --- a/lisp/progmodes/executable.el +++ b/lisp/progmodes/executable.el @@ -240,12 +240,13 @@ executable." (not (string= argument (buffer-substring (point) (match-end 1)))) (if (or (not executable-query) no-query-flag - (save-window-excursion - ;; Make buffer visible before question. - (switch-to-buffer (current-buffer)) - (y-or-n-p (format-message - "Replace magic number by `#!%s'? " - argument)))) + (save-match-data + (save-window-excursion + ;; Make buffer visible before question. + (switch-to-buffer (current-buffer)) + (y-or-n-p (format-message + "Replace magic number by `#!%s'? " + argument))))) (progn (replace-match argument t t nil 1) (message "Magic number changed to `#!%s'" argument))))