diff options
| author | Lars Ingebrigtsen | 2022-03-03 15:43:35 +0100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2022-03-03 15:43:35 +0100 |
| commit | b6587090bfa192efc4db5ac181a9dfd5ee8c0c08 (patch) | |
| tree | e40fdb1bee6a4b00afe8463d6478650826eb8d19 | |
| parent | d72cd4a2b761d325e5bb3e664781a4c9001eb2c2 (diff) | |
| download | emacs-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.el | 13 |
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)))) |