From: Alan Mackenzie Date: Tue, 29 Mar 2016 09:53:12 +0000 (+0000) Subject: In M-%, avoid making buffer-local binding of text-property-default-nonsticky X-Git-Tag: emacs-25.0.93~89^2~3 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/f99b51295b86770e4b16d4717c0e73049191c4c5 In M-%, avoid making buffer-local binding of text-property-default-nonsticky This would happen when that variable already has a buffer local binding. Such a binding would not be seen by read-from-minibuffer. This fixes bug #23127. * lisp/replace.el (query-replace-read-from): Move the binding of text-property-default-nonsticky to inside of a new with-current-buffer buffer form with the minibuffer as argument. --- diff --git a/lisp/replace.el b/lisp/replace.el index 428be3c3b6..a2344d9f7e 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -167,8 +167,6 @@ wants to replace FROM with TO." ;; unavailable while preparing to dump. (custom-reevaluate-setting 'query-replace-from-to-separator) (let* ((history-add-new-input nil) - (text-property-default-nonsticky - (cons '(separator . t) text-property-default-nonsticky)) (separator (when query-replace-from-to-separator (propertize "\0" @@ -193,11 +191,18 @@ wants to replace FROM with TO." ;; a region in order to specify the minibuffer input. ;; That should not clobber the region for the query-replace itself. (save-excursion - (if regexp-flag - (read-regexp prompt nil 'query-replace-from-to-history) - (read-from-minibuffer - prompt nil nil nil 'query-replace-from-to-history - (car (if regexp-flag regexp-search-ring search-ring)) t)))) + ;; The `with-current-buffer' ensures that the binding + ;; for `text-property-default-nonsticky' isn't a buffer + ;; local binding in the current buffer, which + ;; `read-from-minibuffer' wouldn't see. + (with-current-buffer (window-buffer (minibuffer-window)) + (let ((text-property-default-nonsticky + (cons '(separator . t) text-property-default-nonsticky))) + (if regexp-flag + (read-regexp prompt nil 'query-replace-from-to-history) + (read-from-minibuffer + prompt nil nil nil 'query-replace-from-to-history + (car (if regexp-flag regexp-search-ring search-ring)) t)))))) (to)) (if (and (zerop (length from)) query-replace-defaults) (cons (caar query-replace-defaults)