aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ingebrigtsen2022-03-03 15:43:35 +0100
committerLars Ingebrigtsen2022-03-03 15:43:35 +0100
commitb6587090bfa192efc4db5ac181a9dfd5ee8c0c08 (patch)
treee40fdb1bee6a4b00afe8463d6478650826eb8d19
parentd72cd4a2b761d325e5bb3e664781a4c9001eb2c2 (diff)
downloademacs-b6587090bfa192efc4db5ac181a9dfd5ee8c0c08.tar.gz
emacs-b6587090bfa192efc4db5ac181a9dfd5ee8c0c08.zip
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).
-rw-r--r--lisp/progmodes/executable.el13
1 files changed, 7 insertions, 6 deletions
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."
240 (not (string= argument 240 (not (string= argument
241 (buffer-substring (point) (match-end 1)))) 241 (buffer-substring (point) (match-end 1))))
242 (if (or (not executable-query) no-query-flag 242 (if (or (not executable-query) no-query-flag
243 (save-window-excursion 243 (save-match-data
244 ;; Make buffer visible before question. 244 (save-window-excursion
245 (switch-to-buffer (current-buffer)) 245 ;; Make buffer visible before question.
246 (y-or-n-p (format-message 246 (switch-to-buffer (current-buffer))
247 "Replace magic number by `#!%s'? " 247 (y-or-n-p (format-message
248 argument)))) 248 "Replace magic number by `#!%s'? "
249 argument)))))
249 (progn 250 (progn
250 (replace-match argument t t nil 1) 251 (replace-match argument t t nil 1)
251 (message "Magic number changed to `#!%s'" argument)))) 252 (message "Magic number changed to `#!%s'" argument))))