]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix clobbering of match data in executable-set-magic
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 3 Mar 2022 14:43:35 +0000 (15:43 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 3 Mar 2022 14:43:35 +0000 (15:43 +0100)
* lisp/progmodes/executable.el (executable-set-magic): Switching
buffers may clobber match data, so save the match data first
(bug#54218).

lisp/progmodes/executable.el

index d7c093444eddc8402e56104651ba18497b3afb27..670b6e7e89804b14b58cb753b0fd12c57231718f 100644 (file)
@@ -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))))