From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#67124: 26.3; query-replace Arg out of range with comma option (at end-buffer) Date: Thu, 16 Nov 2023 18:51:05 +0200 Message-ID: <83leaxprpi.fsf@gnu.org> References: <020a72b2-b896-4ecf-abab-111a6c1c9eac@medialab.sissa.it> <83cywfuwta.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1173"; mail-complaints-to="usenet@ciao.gmane.io" Cc: gabriele@medialab.sissa.it, 67124@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Nov 16 17:52:23 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1r3fbK-000AZq-SD for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 16 Nov 2023 17:52:22 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r3fb4-0004ns-UF; Thu, 16 Nov 2023 11:52:06 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r3fb2-0004nX-2j for bug-gnu-emacs@gnu.org; Thu, 16 Nov 2023 11:52:04 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r3fb0-0003OC-Un for bug-gnu-emacs@gnu.org; Thu, 16 Nov 2023 11:52:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1r3fb0-0001bR-4M for bug-gnu-emacs@gnu.org; Thu, 16 Nov 2023 11:52:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 16 Nov 2023 16:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67124 X-GNU-PR-Package: emacs Original-Received: via spool by 67124-submit@debbugs.gnu.org id=B67124.17001534856111 (code B ref 67124); Thu, 16 Nov 2023 16:52:02 +0000 Original-Received: (at 67124) by debbugs.gnu.org; 16 Nov 2023 16:51:25 +0000 Original-Received: from localhost ([127.0.0.1]:57494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3faO-0001aV-Ke for submit@debbugs.gnu.org; Thu, 16 Nov 2023 11:51:25 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44398) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3faJ-0001aC-SK for 67124@debbugs.gnu.org; Thu, 16 Nov 2023 11:51:23 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r3faD-00034b-68; Thu, 16 Nov 2023 11:51:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=NsNjcXAbnxoLinpwkhQY3QBbgupBwN2qtFLCNk+4KwU=; b=FPyqWRVApgVG sDuZq2FBFpT4xF7xqeSQlCzAdm3QtwFJ3bEiV1JkthJRu0rKr9deRvyaQL7qIE5f5Oe4YUrAUaRmX dthcKGK8jvL0KLdjSJjWJ7SmNmkRT5pkUVltN5aJRPi6rXSJA7uTY1YgDBjqvusz+xUgo7NG78ntt K6oWQbdMs5Cy0jWEBGKwLP0fr0BMPLj6IZ60sqBJBhtRNxq2nfE2ERIT+Ks+z6Ww3pDSB3O18nKAS /YAkDJtXCjB988g7tBJtZ+fsyf5NcvFji5s2HNgphmBvkCkdaeQfctWV/1v7A7qttPo6AOn4okgzF u/AUe/RNBqHcP3VwIs9oEw==; In-Reply-To: (message from Stefan Monnier on Thu, 16 Nov 2023 10:35:26 -0500) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:274471 Archived-At: > From: Stefan Monnier > Cc: Gabriele Nicolardi , 67124@debbugs.gnu.org > Date: Thu, 16 Nov 2023 10:35:26 -0500 > > > So, I tried the patch below, which makes sense to my superficial > > understanding of the problem, but it apparently doesn't fix the problem > > in the OP's recipe, so I'm clearly missing something. > > Hmm... not sure what happened, because I just tried it again and it does > seem to fix the OP's problem. Are you sure? > So I suggest the patch below (adjusted to the new code on `master`). > > > Stefan > > > diff --git a/lisp/replace.el b/lisp/replace.el > index 7fec54ecb27..acf6b8a4652 100644 > --- a/lisp/replace.el > +++ b/lisp/replace.el > @@ -2642,16 +2642,9 @@ replace-match-maybe-edit > noedit nil))) > (set-match-data match-data) Why do we still need this line? > ;; `replace-match' leaves point at the end of the replacement text, > ;; so move point to the beginning when replacing backward. > - (when backward (goto-char (nth 0 match-data))) > + (when backward (goto-char (match-beginning 0))) Why this unrelated change? is something wrong with the original code? > --- a/src/search.c > +++ b/src/search.c > @@ -3142,9 +3142,16 @@ update_search_regs (ptrdiff_t oldstart, ptrdiff_t oldend, ptrdiff_t newend) > > for (i = 0; i < search_regs.num_regs; i++) > { > - if (search_regs.start[i] >= oldend) > + if (search_regs.start[i] <= oldstart) > + /* If the subgroup that `replace-match` is modifying encloses the > + subgroup `i`, then its `start` position should stay unchanged. > + That's always true for subgroup 0. I've read this part of the comment many times, and I still don't understand what you are trying to convey there, and thus don't understand the new 'if' clause you added. In particular, how come this was never something brought to our attention? the comment seems to imply that replace-match was somehow badly broken since forever. And please don't use Markdown's markup in our code. Still confused...