From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Mark Oteiza Newsgroups: gmane.emacs.bugs Subject: bug#24580: 25.2.50; query-replace history doesn't work Date: Mon, 3 Oct 2016 20:24:51 -0400 Message-ID: <20161004002451.GA31025@holos.localdomain> References: <87fuogh8mo.fsf@mbork.pl> <83y428lawc.fsf@gnu.org> <20161002041715.GA5612@holos.localdomain> <8337kfkzcd.fsf@gnu.org> <20161002165128.GA1032@holos.localdomain> <20161003010843.GA2404@holos.localdomain> <83h98tq4vn.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1475540738 15052 195.159.176.226 (4 Oct 2016 00:25:38 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 4 Oct 2016 00:25:38 +0000 (UTC) User-Agent: Mutt/1.7+23 (87911ba95dae) (2016-08-17) Cc: mbork@mbork.pl, 24580@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Oct 04 02:25:33 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1brDXs-0001kR-Qx for geb-bug-gnu-emacs@m.gmane.org; Tue, 04 Oct 2016 02:25:21 +0200 Original-Received: from localhost ([::1]:39595 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brDXp-0006X6-J0 for geb-bug-gnu-emacs@m.gmane.org; Mon, 03 Oct 2016 20:25:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38874) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brDXg-0006SN-3r for bug-gnu-emacs@gnu.org; Mon, 03 Oct 2016 20:25:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1brDXa-0005Qn-R2 for bug-gnu-emacs@gnu.org; Mon, 03 Oct 2016 20:25:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:37295) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brDXa-0005Qd-Me for bug-gnu-emacs@gnu.org; Mon, 03 Oct 2016 20:25:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1brDXa-0004yx-H3 for bug-gnu-emacs@gnu.org; Mon, 03 Oct 2016 20:25:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mark Oteiza Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 04 Oct 2016 00:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 24580 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 24580-submit@debbugs.gnu.org id=B24580.147554070119140 (code B ref 24580); Tue, 04 Oct 2016 00:25:02 +0000 Original-Received: (at 24580) by debbugs.gnu.org; 4 Oct 2016 00:25:01 +0000 Original-Received: from localhost ([127.0.0.1]:43485 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1brDXY-0004ye-LY for submit@debbugs.gnu.org; Mon, 03 Oct 2016 20:25:00 -0400 Original-Received: from mail-qk0-f169.google.com ([209.85.220.169]:35831) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1brDXX-0004yM-53 for 24580@debbugs.gnu.org; Mon, 03 Oct 2016 20:24:59 -0400 Original-Received: by mail-qk0-f169.google.com with SMTP id t7so179015762qkh.2 for <24580@debbugs.gnu.org>; Mon, 03 Oct 2016 17:24:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=udel-edu.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=49WAqhj8pjS3bBE8Et3Mw1LCoWDdf6aUp3ggF6uYiXs=; b=Dz+Xb/6xJSXhi+H71zYRjLf1dkxoSrXBwopXmut9jOwlZbsiSn7uXVNoO34vR0lAaK IKuHJ9WC0oOXDktpntDJWTUmEU6OJVgBxeeE0GJkonjqGidpb5d628H50OQOaq6Ev3vy 88gejXjI4arfrdD8JKaqUrk0kwdR44xVx+QXuf9iM0rEwWSzXui1380ooo4OzrqHY/nH ydACn3XOzBP3TMzUbyCSvX9rs5QApp8KXxuNWyGjYy4+pytA9B/g4yoxXLmCzm1fdFmK fW2qwkyIeoecXfaQ7QkjMxUSOOQgjVWe/oaQEZgFb0/r67JWhjjKbVsxfH0uNYei7Du5 IHgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=49WAqhj8pjS3bBE8Et3Mw1LCoWDdf6aUp3ggF6uYiXs=; b=LMXcqC1Dnte7bwiJybYIrVo/OI3Obt6DAcZmJcjcSKB7cRDon053hnj9kCQ5KfaoWb XUD5MGjgAN4IjpTJYOsXVk3PfyiAsWDMJI0ek45tLpf/3W/RdbDbhexCxpaOReGMVfEi QC0k6z0FMkOwQIsHsXSInmgVas4hwzqFPEa+XyeaLyt988/I3X9OooWMpOLM+CegsN9O pxbleideLrJFWLxXXgUqYNQd2FOf/mut4bxL5voxJ3BhoUxz6M38jQ3BcfD7YsJT4dtx 408G6mlTPtG0J8feYTR5VsKcSiu/Yu0CYItzbeCO+GEXip4pORNo8A++eEyv3/1FQwU4 O7hg== X-Gm-Message-State: AA6/9RmqOxG0RtrRyc1CrQUGddA9sOiQ0qu0SBUskSn1nvTeBG6s7V3tImXj/T+jvCK+z4hn X-Received: by 10.55.94.70 with SMTP id s67mr843678qkb.117.1475540693213; Mon, 03 Oct 2016 17:24:53 -0700 (PDT) Original-Received: from holos.localdomain ([69.250.222.218]) by smtp.gmail.com with ESMTPSA id v126sm407766qkh.30.2016.10.03.17.24.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 03 Oct 2016 17:24:52 -0700 (PDT) Original-Received: by holos.localdomain (Postfix, from userid 1000) id 4404160D6F; Mon, 3 Oct 2016 20:24:51 -0400 (EDT) Content-Disposition: inline In-Reply-To: <83h98tq4vn.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:123987 Archived-At: On 03/10/16 at 10:16am, Eli Zaretskii wrote: > > Date: Sun, 2 Oct 2016 21:08:43 -0400 > > From: Mark Oteiza > > Cc: mbork@mbork.pl, 24580@debbugs.gnu.org > > > > > > > The problem lies (at least) in query-replace-read-from, where > > > > > query-replace-from-to is let bound, and later read-from-minibuffer > > > > > refers to the symbol 'query-replace-from-to. At first sight, it looks > > > > > like it could be fixed by putting some of the setup done by these > > > > > bindings into the minibuffer setup hook. > > > > > > > > Isn't there a less intrusive change to fix this? A significant change > > > > like the one you propose is more risky, but if there's no safer one, I > > > > guess we should take it. > > > > > > Perhaps just adding a (defvar query-replace-from-to-history …) will be > > > sufficient. That read-from-minibuffer and friends' HIST argument can > > > only be a symbol is a bit frustrating. > > > > Surely there is a better way. > > Isn't this exactly the minibuffer setup hook method that I wanted to > avoid? Yes > Does a simple defvar you suggested before not work? No, unless I erred somehow, which is likely, because what I tried first (binding minibuffer-history) didn't appear to work either. However, the following does appear to solve the issue. diff --git a/lisp/replace.el b/lisp/replace.el index 4256751..4fc48d4 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -174,7 +174,7 @@ query-replace-read-from (propertize "\0" 'display query-replace-from-to-separator 'separator t))) - (query-replace-from-to-history + (minibuffer-history (append (when separator (mapcar (lambda (from-to) @@ -186,7 +186,7 @@ query-replace-read-from (minibuffer-allow-text-properties t) ; separator uses text-properties (prompt (if (and query-replace-defaults separator) - (format "%s (default %s): " prompt (car query-replace-from-to-history)) + (format "%s (default %s): " prompt (car minibuffer-history)) (format "%s: " prompt))) (from ;; The save-excursion here is in case the user marks and copies @@ -198,9 +198,9 @@ query-replace-read-from (setq-local text-property-default-nonsticky (cons '(separator . t) text-property-default-nonsticky))) (if regexp-flag - (read-regexp prompt nil 'query-replace-from-to-history) + (read-regexp prompt) (read-from-minibuffer - prompt nil nil nil 'query-replace-from-to-history + prompt nil nil nil nil (car (if regexp-flag regexp-search-ring search-ring)) t))))) (to)) (if (and (zerop (length from)) query-replace-defaults)