From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: query-replace-interactive not documented Date: Fri, 18 Jun 2004 09:43:05 +0300 Organization: JURTA Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <87u0x92xpq.fsf@mail.jurta.org> References: <20040528.181649.25475113.wl@gnu.org> <87659snbd8.fsf@mail.jurta.org> <87llin98sc.fsf@mail.jurta.org> <87n033y0yj.fsf@mail.jurta.org> <87fz8u19ou.fsf@mail.jurta.org> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1087541295 26997 80.91.224.253 (18 Jun 2004 06:48:15 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 18 Jun 2004 06:48:15 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Fri Jun 18 08:48:04 2004 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1BbDAS-0003Iu-00 for ; Fri, 18 Jun 2004 08:48:04 +0200 Original-Received: from lists.gnu.org ([199.232.76.165]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1BbDAS-00020z-00 for ; Fri, 18 Jun 2004 08:48:04 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1BbDBX-0005wX-Ak for emacs-devel@quimby.gnus.org; Fri, 18 Jun 2004 02:49:11 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1BbDBV-0005wI-0Y for emacs-devel@gnu.org; Fri, 18 Jun 2004 02:49:09 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1BbDBU-0005w6-8N for emacs-devel@gnu.org; Fri, 18 Jun 2004 02:49:08 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1BbDBU-0005w3-4w for emacs-devel@gnu.org; Fri, 18 Jun 2004 02:49:08 -0400 Original-Received: from [66.33.205.9] (helo=spatula.dreamhost.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1BbDAI-0005sU-1Z; Fri, 18 Jun 2004 02:47:54 -0400 Original-Received: from mail.jurta.org (80-235-34-90-dsl.mus.estpak.ee [80.235.34.90]) by spatula.dreamhost.com (Postfix) with ESMTP id 87A1017D024; Thu, 17 Jun 2004 23:47:50 -0700 (PDT) Original-To: David Kastrup In-Reply-To: (David Kastrup's message of "17 Jun 2004 19:03:36 +0200") User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:25072 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:25072 David Kastrup writes: > Here is a sketch. I am calling it a sketch since the string-match for > \? should not be done for every replacement again if the replacement > string did not contain \? in the first place. This is a performance > hog otherwise when doing lots of replacements automatically. You can match it once in the beginning of the main while-loop and store the result into a variable which would be given as an argument of `replace-match-maybe-edit'. There are only two places where the next-replacement string is changed inside the loop. One place is where the replacement expression is evaluated. But since evaluation results are always quoted now, and unquoted \? can't be returned from evaluation, so no need to re-check for \? here. And another place is where the user types `e' to edit the replacement string. Since the user can add \? to the replacement string (not in `replace-match-maybe-edit' but in `perform-replace' in the case with (eq def 'edit-replacement)), it should be re-checked for \? here. But generally your changes work fine. I only want to propose some improvements: when the user types ! to replace all matches and the replacement string contains \?, then matches are not highlighted in the buffer when the user edits the replacement. This could be highlighted before reading the replacement string in `replace-match-maybe-edit' by calling `replace-highlight'. -- Juri Linkov http://www.jurta.org/emacs/