Received: (at 79761) by debbugs.gnu.org; 25 Nov 2025 20:22:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 25 15:22:18 2025 Received: from localhost ([127.0.0.1]:41884 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vNzYH-00014E-L7 for submit <at> debbugs.gnu.org; Tue, 25 Nov 2025 15:22:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44002) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vN5Zn-0007Rs-B0 for 79761 <at> debbugs.gnu.org; Sun, 23 Nov 2025 03:36:08 -0500 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 <eliz@HIDDEN>) id 1vN5ZM-0000ts-F4; Sun, 23 Nov 2025 03:35:40 -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=VwmrG291WJBOHFxnxwxJEycvCH6ZgCOQR6HILXEvtY0=; b=ja1R/cV98N8Q 72WNEmOR0F3P9Pynm8M+RLU1iSwAruG3PeI2j3T0IHtk/UyCyTpThH1qBotgUk8xiSU9cTFttD8pV nQk8RJJaoKDMRWKgoInEDxoRnBtWLlp1HjC43nBYyJJ4SqJ+hzkJGMmtj6xrgdcqmARihPCTtP+ZS LT/w7uWCXhPwiNSBihGIpoVjkdk2Vg7Sr7i5chmdwFk32MWLrA2dbP0ICemI5q7jrB+130YUGPbLB V7dDbgsW6lYdvbDSkY+GlMOBxYdL00ADoAsxGhZXKde3ozFT4+p9s/D7dvZqHGle/dM6N0VZ5HM4r gCPXXg9z2d8uUUngzQ9+dQ==; Date: Sun, 23 Nov 2025 10:35:29 +0200 Message-Id: <86o6otdu3y.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: juri@HIDDEN, sbaugh@HIDDEN In-Reply-To: <86see7ho2c.fsf@HIDDEN> (message from Eli Zaretskii on Fri, 21 Nov 2025 08:55:39 +0200) Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers References: <ier8qgm7rv0.fsf@HIDDEN> <87jz06tf5b.fsf@HIDDEN> <87ikfp1x6s.fsf@HIDDEN> <iera50om9nt.fsf@HIDDEN> <87pl9hc45b.fsf@HIDDEN> <87bjkwh7jy.fsf@HIDDEN> <86v7j4h5dd.fsf@HIDDEN> <871plsh4ej.fsf@HIDDEN> <86see7ho2c.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79761 Cc: 79761 <at> debbugs.gnu.org, monnier@HIDDEN, azeng@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: sbaugh@HIDDEN, 79761 <at> debbugs.gnu.org, monnier@HIDDEN, > azeng@HIDDEN > Date: Fri, 21 Nov 2025 08:55:39 +0200 > From: Eli Zaretskii <eliz@HIDDEN> > > > 'multi-file-diff-no-select' is based on `diff-no-select' > > that has the same problem. With the above test case: > > > > (diff-no-select (current-buffer) (current-buffer)) > > > > pops up a buffer asking > > > > Select coding system (default utf-8): > > Yes, of course. But that problem is harder to solve in advance: > > . each argument can be either a file or a buffer > . they are generally different, so each one could have its own encoding > > Also, diff-no-select is not a command, so we could, at least in > principle, expect the caller to set up things as they need to be, or > indeed let the user choose a safe encoding. > > By contrast, here we are talking about a command, and it basically has > only one buffer, not two, so the safe encoding is the same (I would > suggest utf-8-emacs-unix, which can safely encode _any_ buffer). The > problem is how to pass that safely to where write-region is called. > The only idea I have is to define some defvar which the command will > bind and multi-file-diff-no-select will use when it calls > write-region. If there are no better ideas, I will try implementing > that. No done.
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.Received: (at 79761) by debbugs.gnu.org; 21 Nov 2025 07:27:52 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 21 02:27:52 2025 Received: from localhost ([127.0.0.1]:53140 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vMLYd-00054k-HD for submit <at> debbugs.gnu.org; Fri, 21 Nov 2025 02:27:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52916) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vMLYL-00053T-8d for 79761 <at> debbugs.gnu.org; Fri, 21 Nov 2025 02:27:35 -0500 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 <eliz@HIDDEN>) id 1vMLYF-0007e7-Sa; Fri, 21 Nov 2025 02:27:27 -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=ger0NSNBgKQ0FaagV3oksehiw669IWNV93Z4S6rhIeQ=; b=gtKOis3g+lfD 2KUThSzeGSXGkM/JuszIdeyWCXx0VeNC6ErAEu5HATB9vHOAMCBrhi0nSP16MTVLvoj4rlM0LbE+I kwbeqZ4mnjyVpSUDlsxSmosNCIXvFTyJuWr5qT3yH63/0d1M1qNgQWA2pbrtdILlPdosIBzPasOZG vy26KRtud2phmcNnCF5lx88e9OAO9W7fN/9Y06qobAxxvWrPSAMatx0Te2ITSYeBMzso/BFOWKPmi ap5lNrVCDzuC9PsvAWHt8MuBa69Tl2YdaqzFuGcZ2vDPh/Fw12Lafld8/J0eDLGu1hn0rtNfalmlI y1TOBHYnCmKUdHwcyZwvtw==; Date: Fri, 21 Nov 2025 09:27:24 +0200 Message-Id: <86pl9bhmlf.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Juri Linkov <juri@HIDDEN> In-Reply-To: <871plsh4ej.fsf@HIDDEN> (message from Juri Linkov on Thu, 20 Nov 2025 21:48:04 +0200) Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers References: <ier8qgm7rv0.fsf@HIDDEN> <87jz06tf5b.fsf@HIDDEN> <87ikfp1x6s.fsf@HIDDEN> <iera50om9nt.fsf@HIDDEN> <87pl9hc45b.fsf@HIDDEN> <87bjkwh7jy.fsf@HIDDEN> <86v7j4h5dd.fsf@HIDDEN> <871plsh4ej.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79761 Cc: sbaugh@HIDDEN, 79761 <at> debbugs.gnu.org, monnier@HIDDEN, azeng@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Juri Linkov <juri@HIDDEN> > Cc: Stefan Monnier <monnier@HIDDEN>, sbaugh@HIDDEN, > 79761 <at> debbugs.gnu.org, azeng@HIDDEN > Date: Thu, 20 Nov 2025 21:48:04 +0200 > > > emacs -Q > > C-x RET f latin-1 RET latin-1 RET > > M-< > > M-% is RET its RET > > d > > > > Observe Emacs popping a buffer asking you to select a safe > > coding-system. Huh? all I wanted was to get a buffer with diffs. > > > > The problem is that we invoke multi-file-diff-no-select, which wants > > to write the buffer to a file and then compare two files. But that > > doesn't work well if the buffer's coding-system cannot safely encode > > the contents, like in this simple recipe. > > > > To fix this, we need to ensure the previous and the new version of the > > buffer are saved using a safe encoding. But there's no way for us to > > set up the proper encoding below multi-file-replace-as-diff, because > > those are more general functions, where each of the files' buffers to > > compare could have its own encoding. OTOH, we cannot just bind > > coding-system-to-write in multi-file-replace-as-diff, because that > > affects also the encoding of the command-line arguments to Diff, which > > could also cause trouble. So it's a conundrum. > > > > Any ideas for how to solve this? Without solving it, IMO this command > > has a grave problem whenever the buffer has non-ASCII characters and > > is not visiting a file. > > 'multi-file-diff-no-select' is based on `diff-no-select' > that has the same problem. With the above test case: > > (diff-no-select (current-buffer) (current-buffer)) > > pops up a buffer asking > > Select coding system (default utf-8): Yes, of course. But that problem is harder to solve in advance: . each argument can be either a file or a buffer . they are generally different, so each one could have its own encoding Also, diff-no-select is not a command, so we could, at least in principle, expect the caller to set up things as they need to be, or indeed let the user choose a safe encoding. By contrast, here we are talking about a command, and it basically has only one buffer, not two, so the safe encoding is the same (I would suggest utf-8-emacs-unix, which can safely encode _any_ buffer). The problem is how to pass that safely to where write-region is called. The only idea I have is to define some defvar which the command will bind and multi-file-diff-no-select will use when it calls write-region. If there are no better ideas, I will try implementing that. P.S. Comparing non-ASCII text using Diff is inherently problematic, because (AFFAIK) Diff compares byte by byte, so the same text in two different encodings will compare not equal. This might be OK for comparing files, but is confusing and unexpected when comparing a file to a buffer or two buffers, because from Emacs users POV the encoding specified by buffer-file-coding-system is not relevant, all they see is characters in the buffers, and therefore expect the same text to compare equal. So for better results, Emacs should convert the files to a single encoding, probably UTF-8, and _then_ compare. But that could be expensive (i.e. slow) for large files/buffers.
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.Received: (at 79761) by debbugs.gnu.org; 21 Nov 2025 07:27:21 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 21 02:27:21 2025 Received: from localhost ([127.0.0.1]:53132 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vMLY8-000536-IB for submit <at> debbugs.gnu.org; Fri, 21 Nov 2025 02:27:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50140) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vMLY5-00052E-Mw for 79761 <at> debbugs.gnu.org; Fri, 21 Nov 2025 02:27:18 -0500 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 <eliz@HIDDEN>) id 1vMLXm-00062V-Fo; Fri, 21 Nov 2025 02:27:01 -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=ger0NSNBgKQ0FaagV3oksehiw669IWNV93Z4S6rhIeQ=; b=lc11Rf/ceWBX cVg5T+mvjawXpKXEBd/SwUPUSA9dFKykigI0o//fMH5JgA817VaMujkG7gEkIrQhXq35DqoB8ocWB sfK6tIlSXUUmP8yNp91b+5qGOavcVrnOn3Dxm4TxNspbWUmSsrjgPpAJ3ry31RwmgfVlYWhiD95rG Gm3KPg95woYoQp7/mQJ+4qfSZG0U1hDX14rIIZSP1NrMjaTPvLXsHdu0Tcnp7PsKZSUSycKWsNlM2 kvmRN9R4iIVTpk6eGExg9hueaMrC+VTED0U5isop9e/+enfM6Wwvao6I2ENDBSnQDRDLl3bBbi3ru WGU317p17keIYWAEbLGdKw==; Date: Fri, 21 Nov 2025 09:04:19 +0200 Message-Id: <86qztrhnnw.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Juri Linkov <juri@HIDDEN> In-Reply-To: <871plsh4ej.fsf@HIDDEN> (message from Juri Linkov on Thu, 20 Nov 2025 21:48:04 +0200) Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers References: <ier8qgm7rv0.fsf@HIDDEN> <87jz06tf5b.fsf@HIDDEN> <87ikfp1x6s.fsf@HIDDEN> <iera50om9nt.fsf@HIDDEN> <87pl9hc45b.fsf@HIDDEN> <87bjkwh7jy.fsf@HIDDEN> <86v7j4h5dd.fsf@HIDDEN> <871plsh4ej.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79761 Cc: sbaugh@HIDDEN, 79761 <at> debbugs.gnu.org, monnier@HIDDEN, azeng@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Juri Linkov <juri@HIDDEN> > Cc: Stefan Monnier <monnier@HIDDEN>, sbaugh@HIDDEN, > 79761 <at> debbugs.gnu.org, azeng@HIDDEN > Date: Thu, 20 Nov 2025 21:48:04 +0200 > > > emacs -Q > > C-x RET f latin-1 RET latin-1 RET > > M-< > > M-% is RET its RET > > d > > > > Observe Emacs popping a buffer asking you to select a safe > > coding-system. Huh? all I wanted was to get a buffer with diffs. > > > > The problem is that we invoke multi-file-diff-no-select, which wants > > to write the buffer to a file and then compare two files. But that > > doesn't work well if the buffer's coding-system cannot safely encode > > the contents, like in this simple recipe. > > > > To fix this, we need to ensure the previous and the new version of the > > buffer are saved using a safe encoding. But there's no way for us to > > set up the proper encoding below multi-file-replace-as-diff, because > > those are more general functions, where each of the files' buffers to > > compare could have its own encoding. OTOH, we cannot just bind > > coding-system-to-write in multi-file-replace-as-diff, because that > > affects also the encoding of the command-line arguments to Diff, which > > could also cause trouble. So it's a conundrum. > > > > Any ideas for how to solve this? Without solving it, IMO this command > > has a grave problem whenever the buffer has non-ASCII characters and > > is not visiting a file. > > 'multi-file-diff-no-select' is based on `diff-no-select' > that has the same problem. With the above test case: > > (diff-no-select (current-buffer) (current-buffer)) > > pops up a buffer asking > > Select coding system (default utf-8): Yes, of course. But that problem is harder to solve in advance: . each argument can be either a file or a buffer . they are generally different, so each one could have its own encoding Also, diff-no-select is not a command, so we could, at least in principle, expect the caller to set up things as they need to be, or indeed let the user choose a safe encoding. By contrast, here we are talking about a command, and it basically has only one buffer, not two, so the safe encoding is the same (I would suggest utf-8-emacs-unix, which can safely encode _any_ buffer). The problem is how to pass that safely to where write-region is called. The only idea I have is to define some defvar which the command will bind and multi-file-diff-no-select will use when it calls write-region. If there are no better ideas, I will try implementing that. P.S. Comparing non-ASCII text using Diff is inherently problematic, because (AFFAIK) Diff compares byte by byte, so the same text in two different encodings will compare not equal. This might be OK for comparing files, but is confusing and unexpected when comparing a file to a buffer or two buffers, because from Emacs users POV the encoding specified by buffer-file-coding-system is not relevant, all they see is characters in the buffers, and therefore expect the same text to compare equal. So for better results, Emacs should convert the files to a single encoding, probably UTF-8, and _then_ compare. But that could be expensive (i.e. slow) for large files/buffers.
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.Received: (at 79761) by debbugs.gnu.org; 21 Nov 2025 07:27:20 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 21 02:27:20 2025 Received: from localhost ([127.0.0.1]:53130 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vMLY8-00052z-0e for submit <at> debbugs.gnu.org; Fri, 21 Nov 2025 02:27:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50156) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vMLY5-00052F-OL for 79761 <at> debbugs.gnu.org; Fri, 21 Nov 2025 02:27:18 -0500 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 <eliz@HIDDEN>) id 1vMLXm-00062s-0n; Fri, 21 Nov 2025 02:27:01 -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=ger0NSNBgKQ0FaagV3oksehiw669IWNV93Z4S6rhIeQ=; b=Ax0XzbvW70ID 6AWMs+AVj7qYlMXWw3iM3a/0tRuD3rrf6WAF9cj+TmNOGoropmDQl1QlOxEjMfUw3qr93sujZVPZl gesb6ErHHXDdTx+OJToJOBRcAZhDn3lc3L7GRVQ0aZXnheGHyBExMAS8VjdOQUGlApynLZiL+Qflu OLaLbSr8/lhgUu8GVmXTkFImKDxcroufJUF06DrU9ioF6VOzNI4R7w6nCpk/rxHYSFWtVS2ZnBrY5 eCtvqnkuO4STrvr3oM9EbOtz8AyyZlRkd1wTmIiZ9dQmGtHwQ3/sLg2Qa8rF20cSECuSprXAI3HUO Cj94ANnGzjH5wp8Qkpz+vQ==; Date: Fri, 21 Nov 2025 08:55:39 +0200 Message-Id: <86see7ho2c.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Juri Linkov <juri@HIDDEN> In-Reply-To: <871plsh4ej.fsf@HIDDEN> (message from Juri Linkov on Thu, 20 Nov 2025 21:48:04 +0200) Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers References: <ier8qgm7rv0.fsf@HIDDEN> <87jz06tf5b.fsf@HIDDEN> <87ikfp1x6s.fsf@HIDDEN> <iera50om9nt.fsf@HIDDEN> <87pl9hc45b.fsf@HIDDEN> <87bjkwh7jy.fsf@HIDDEN> <86v7j4h5dd.fsf@HIDDEN> <871plsh4ej.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79761 Cc: sbaugh@HIDDEN, 79761 <at> debbugs.gnu.org, monnier@HIDDEN, azeng@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Juri Linkov <juri@HIDDEN> > Cc: Stefan Monnier <monnier@HIDDEN>, sbaugh@HIDDEN, > 79761 <at> debbugs.gnu.org, azeng@HIDDEN > Date: Thu, 20 Nov 2025 21:48:04 +0200 > > > emacs -Q > > C-x RET f latin-1 RET latin-1 RET > > M-< > > M-% is RET its RET > > d > > > > Observe Emacs popping a buffer asking you to select a safe > > coding-system. Huh? all I wanted was to get a buffer with diffs. > > > > The problem is that we invoke multi-file-diff-no-select, which wants > > to write the buffer to a file and then compare two files. But that > > doesn't work well if the buffer's coding-system cannot safely encode > > the contents, like in this simple recipe. > > > > To fix this, we need to ensure the previous and the new version of the > > buffer are saved using a safe encoding. But there's no way for us to > > set up the proper encoding below multi-file-replace-as-diff, because > > those are more general functions, where each of the files' buffers to > > compare could have its own encoding. OTOH, we cannot just bind > > coding-system-to-write in multi-file-replace-as-diff, because that > > affects also the encoding of the command-line arguments to Diff, which > > could also cause trouble. So it's a conundrum. > > > > Any ideas for how to solve this? Without solving it, IMO this command > > has a grave problem whenever the buffer has non-ASCII characters and > > is not visiting a file. > > 'multi-file-diff-no-select' is based on `diff-no-select' > that has the same problem. With the above test case: > > (diff-no-select (current-buffer) (current-buffer)) > > pops up a buffer asking > > Select coding system (default utf-8): Yes, of course. But that problem is harder to solve in advance: . each argument can be either a file or a buffer . they are generally different, so each one could have its own encoding Also, diff-no-select is not a command, so we could, at least in principle, expect the caller to set up things as they need to be, or indeed let the user choose a safe encoding. By contrast, here we are talking about a command, and it basically has only one buffer, not two, so the safe encoding is the same (I would suggest utf-8-emacs-unix, which can safely encode _any_ buffer). The problem is how to pass that safely to where write-region is called. The only idea I have is to define some defvar which the command will bind and multi-file-diff-no-select will use when it calls write-region. If there are no better ideas, I will try implementing that. P.S. Comparing non-ASCII text using Diff is inherently problematic, because (AFFAIK) Diff compares byte by byte, so the same text in two different encodings will compare not equal. This might be OK for comparing files, but is confusing and unexpected when comparing a file to a buffer or two buffers, because from Emacs users POV the encoding specified by buffer-file-coding-system is not relevant, all they see is characters in the buffers, and therefore expect the same text to compare equal. So for better results, Emacs should convert the files to a single encoding, probably UTF-8, and _then_ compare. But that could be expensive (i.e. slow) for large files/buffers.
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.Received: (at 79761) by debbugs.gnu.org; 20 Nov 2025 19:48:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 20 14:48:58 2025 Received: from localhost ([127.0.0.1]:50117 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vMAeI-0005ty-8c for submit <at> debbugs.gnu.org; Thu, 20 Nov 2025 14:48:58 -0500 Received: from mout-p-102.mailbox.org ([2001:67c:2050:0:465::102]:47044) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vMAeF-0005tG-CE for 79761 <at> debbugs.gnu.org; Thu, 20 Nov 2025 14:48:56 -0500 Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4dC86j4cRsz9tgD; Thu, 20 Nov 2025 20:48:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; t=1763668125; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=MMRUrt8FkUV4n4LQYNw2QJT6B0aDs7oPsaX7FclKFvU=; b=CK2adTS6Rmz9VqkdoS2gQhEei1BxGc0e/4qpnzHw/YcLttbZai5pC7Rx6gRVpHXhFsuoML vLAFH+cKDTjZdyelxvyUOojQwRq5s6g+x0qKPk6p5J2p+H4OuMVCP+dOLyp6ga/B3+psnq OnrCRgTE8EO+Q61i9m/OFdeQJpdyz5qXkeutXuWBZw93o4i/K+yHfVYHdtGLfa0kF0Gzms GjpbFimTQxsreS3H2bgjPSoW0kMB0t92qt0Jykr1wSchAnoXMQTC1Q7GLduBL2J2J44SQJ Rn34WRr72ZtRjBzweAWTUAco4kRXCYek8p5NAUi3IY3lit4f281zgR/Li2x49Q== From: Juri Linkov <juri@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers In-Reply-To: <86v7j4h5dd.fsf@HIDDEN> Organization: LINKOV.NET References: <ier8qgm7rv0.fsf@HIDDEN> <87jz06tf5b.fsf@HIDDEN> <87ikfp1x6s.fsf@HIDDEN> <iera50om9nt.fsf@HIDDEN> <87pl9hc45b.fsf@HIDDEN> <87bjkwh7jy.fsf@HIDDEN> <86v7j4h5dd.fsf@HIDDEN> Date: Thu, 20 Nov 2025 21:48:04 +0200 Message-ID: <871plsh4ej.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 79761 Cc: sbaugh@HIDDEN, 79761 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>, azeng@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) > emacs -Q > C-x RET f latin-1 RET latin-1 RET > M-< > M-% is RET its RET > d > > Observe Emacs popping a buffer asking you to select a safe > coding-system. Huh? all I wanted was to get a buffer with diffs. > > The problem is that we invoke multi-file-diff-no-select, which wants > to write the buffer to a file and then compare two files. But that > doesn't work well if the buffer's coding-system cannot safely encode > the contents, like in this simple recipe. > > To fix this, we need to ensure the previous and the new version of the > buffer are saved using a safe encoding. But there's no way for us to > set up the proper encoding below multi-file-replace-as-diff, because > those are more general functions, where each of the files' buffers to > compare could have its own encoding. OTOH, we cannot just bind > coding-system-to-write in multi-file-replace-as-diff, because that > affects also the encoding of the command-line arguments to Diff, which > could also cause trouble. So it's a conundrum. > > Any ideas for how to solve this? Without solving it, IMO this command > has a grave problem whenever the buffer has non-ASCII characters and > is not visiting a file. 'multi-file-diff-no-select' is based on `diff-no-select' that has the same problem. With the above test case: (diff-no-select (current-buffer) (current-buffer)) pops up a buffer asking Select coding system (default utf-8):
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.Received: (at 79761) by debbugs.gnu.org; 20 Nov 2025 19:27:24 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 20 14:27:24 2025 Received: from localhost ([127.0.0.1]:50039 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vMAJP-0004R5-U3 for submit <at> debbugs.gnu.org; Thu, 20 Nov 2025 14:27:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33422) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vMAJM-0004QS-TD for 79761 <at> debbugs.gnu.org; Thu, 20 Nov 2025 14:27:22 -0500 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 <eliz@HIDDEN>) id 1vMAJG-0003m6-Js; Thu, 20 Nov 2025 14:27:14 -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=fGJKg7rVxnrf+BgdsXxaq5z+B8W40Z9JsJoA31P+L2o=; b=QI6JZXTho5q3 aA0ZqA6ZEUcHqBpeOgDEbkdM3FA2EcAHnAm6d0Vf2Wsb9vHJZPD/l1ai5Lx6N2g6cd5R3yvnQZb3/ vOfkS97na4arvWX22nVaDDVjbcbZf2tIg5p0dpPoEz4DptavnB/Wj7JHGpWDUYRp55uT7SoB50U0N zNiqn7gtaxYedTGRJKtdn/JWUFl+fdF13TYuLgFUadQZx16nBvdc7RzJ1WBs5+YHWJXXsM4L4H0ay Tv03TXMmGq1aBpXiNA8jSmDF1gMtk8doyApe9NSdDrluMkiIWYX1Z3Rjvxdi1WOkRrjOtepArjPh6 9PXye4+DlovzVayVUcaFjQ==; Date: Thu, 20 Nov 2025 21:27:10 +0200 Message-Id: <86v7j4h5dd.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Juri Linkov <juri@HIDDEN>, Stefan Monnier <monnier@HIDDEN> In-Reply-To: <87bjkwh7jy.fsf@HIDDEN> (message from Juri Linkov on Thu, 20 Nov 2025 20:40:01 +0200) Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers References: <ier8qgm7rv0.fsf@HIDDEN> <87jz06tf5b.fsf@HIDDEN> <87ikfp1x6s.fsf@HIDDEN> <iera50om9nt.fsf@HIDDEN> <87pl9hc45b.fsf@HIDDEN> <87bjkwh7jy.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79761 Cc: sbaugh@HIDDEN, 79761 <at> debbugs.gnu.org, azeng@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: 79761 <at> debbugs.gnu.org, azeng@HIDDEN > From: Juri Linkov <juri@HIDDEN> > Date: Thu, 20 Nov 2025 20:40:01 +0200 > > So now pushed and closed. Thanks, but this doesn't always work well. Example: emacs -Q C-x RET f latin-1 RET latin-1 RET M-< M-% is RET its RET d Observe Emacs popping a buffer asking you to select a safe coding-system. Huh? all I wanted was to get a buffer with diffs. The problem is that we invoke multi-file-diff-no-select, which wants to write the buffer to a file and then compare two files. But that doesn't work well if the buffer's coding-system cannot safely encode the contents, like in this simple recipe. To fix this, we need to ensure the previous and the new version of the buffer are saved using a safe encoding. But there's no way for us to set up the proper encoding below multi-file-replace-as-diff, because those are more general functions, where each of the files' buffers to compare could have its own encoding. OTOH, we cannot just bind coding-system-to-write in multi-file-replace-as-diff, because that affects also the encoding of the command-line arguments to Diff, which could also cause trouble. So it's a conundrum. Any ideas for how to solve this? Without solving it, IMO this command has a grave problem whenever the buffer has non-ASCII characters and is not visiting a file.
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.Juri Linkov <juri@HIDDEN>
to control <at> debbugs.gnu.org.
Full text available.Received: (at 79761) by debbugs.gnu.org; 20 Nov 2025 18:41:04 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 20 13:41:04 2025 Received: from localhost ([127.0.0.1]:49873 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vM9aZ-0007Ek-S6 for submit <at> debbugs.gnu.org; Thu, 20 Nov 2025 13:41:04 -0500 Received: from mout-p-201.mailbox.org ([80.241.56.171]:55646) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vM9aX-0007Dg-25; Thu, 20 Nov 2025 13:41:01 -0500 Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4dC6cM4ytFz9tHX; Thu, 20 Nov 2025 19:40:51 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; t=1763664051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=jZF3EgRfx/LA590q8PyDj0LndoSVdZ74Fd2S8WDGd2c=; b=z8arvP9XnW8ymK4d+s8DSRpAecQt257kGpiTAQbVqEhjVOZVisBBZtA3RLHS5aJEGY/Hqt iOmB5rtzulGLFgJP09EnJ1V99i5qhbNRknglqCoTIgLqWqxn5e0ZIPnXLsD22lGZD2Q0i7 NZ/kEgqPvsGKN0h0ItjtdMMKPNvg9feIuHYb7Jx0U1kZorT/zXa8INDdULyyxBYeLg8oo9 /08+RbxQy9yIL9dQyTzLxRpZvPMGcGLC2hOxU/h20WldN4OCSGEjyfR+80XbtfJ6YNtYop URULwG4PdZN4h2OPnpHjmeSr8JqGjz473Lu7h9FvlWIs9zfqcNYZGoKwFfS83Q== From: Juri Linkov <juri@HIDDEN> To: Spencer Baugh <sbaugh@HIDDEN> Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers In-Reply-To: <87pl9hc45b.fsf@HIDDEN> Organization: LINKOV.NET References: <ier8qgm7rv0.fsf@HIDDEN> <87jz06tf5b.fsf@HIDDEN> <87ikfp1x6s.fsf@HIDDEN> <iera50om9nt.fsf@HIDDEN> <87pl9hc45b.fsf@HIDDEN> Date: Thu, 20 Nov 2025 20:40:01 +0200 Message-ID: <87bjkwh7jy.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 79761 Cc: 79761 <at> debbugs.gnu.org, azeng@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) close 79761 31.0.50 thanks So now pushed and closed.
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.Received: (at 79761) by debbugs.gnu.org; 16 Nov 2025 17:10:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 16 12:10:43 2025 Received: from localhost ([127.0.0.1]:46127 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vKgGx-0005hN-A3 for submit <at> debbugs.gnu.org; Sun, 16 Nov 2025 12:10:43 -0500 Received: from mout-p-202.mailbox.org ([80.241.56.172]:39996) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vKgGt-0005gm-6c for 79761 <at> debbugs.gnu.org; Sun, 16 Nov 2025 12:10:39 -0500 Received: from smtp1.mailbox.org (smtp1.mailbox.org [IPv6:2001:67c:2050:b231:465::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4d8cnz3w7Xz9tPF; Sun, 16 Nov 2025 18:10:31 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; t=1763313031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=hDAlpGGgaBVyIFvPdJeoPh6X1ATnxY8Nfix4kPPFJMI=; b=k7HAZ6FNijDjKeYs8uFBaGwIhLlB8UkDi12/ZQbGRk4kFvvOAmtyIZ+S3EDxKeZ3pzVqUX Dn6aBJBRbTTXU9P4tZb+ODjU60i3YQY6vvFEEKMlDxLjC6P6FblPuzZ3jGio4MpWUKfkUs aT5PIw0cW+qxcEaK72LraDjBAH5WrCIWb4X0keNZjVTVrbAT5e2zIUWdkO+XjfMY0UEtLG mRy4Vm7hYQJSL6bcDYAsRYBy7sF0bqOfQnvD90008cjN06j27rIkOESDlhAaNI5HVm7cqn ckkFjOMuDy36dMo/5TyJJ+xCXcGoFJa7D5s+zcYhCAS3T/bUnRcJZkaGdotGBA== Authentication-Results: outgoing_mbo_mout; dkim=none; spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates 2001:67c:2050:b231:465::1 as permitted sender) smtp.mailfrom=juri@HIDDEN From: Juri Linkov <juri@HIDDEN> To: Spencer Baugh <sbaugh@HIDDEN> Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers In-Reply-To: <iera50om9nt.fsf@HIDDEN> Organization: LINKOV.NET References: <ier8qgm7rv0.fsf@HIDDEN> <87jz06tf5b.fsf@HIDDEN> <87ikfp1x6s.fsf@HIDDEN> <iera50om9nt.fsf@HIDDEN> Date: Sun, 16 Nov 2025 19:01:12 +0200 Message-ID: <87pl9hc45b.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Rspamd-Queue-Id: 4d8cnz3w7Xz9tPF X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 79761 Cc: 79761 <at> debbugs.gnu.org, azeng@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) >> + (eq multi-file-diff-unsaved 'use-modified-buffer)) > > Commenting on code right below this: > > If there's a buffer, shouldn't we always use insert-buffer-substring, > even if (not (buffer-modified-p file-buffer))? This (buffer-modified-p file-buffer) is required to handle (eq multi-file-diff-unsaved 'use-modified-buffer) above. >> + ((eq def 'diff) >> + (let ((display-buffer-overriding-action >> + '(nil (inhibit-same-window . t)))) >> + (save-selected-window >> + (multi-file-replace-as-diff >> + (list (or buffer-file-name (current-buffer))) > > Shouldn't we always pass (current-buffer) here instead of > buffer-file-name? Using buffer-file-name is more preferable since it generates diff buffers with file names that can be applied with 'C-c C-a'.
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.Received: (at 79761) by debbugs.gnu.org; 15 Nov 2025 00:17:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 14 19:17:34 2025 Received: from localhost ([127.0.0.1]:60719 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vK3yv-00005w-Ro for submit <at> debbugs.gnu.org; Fri, 14 Nov 2025 19:17:34 -0500 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:58325) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <sbaugh@HIDDEN>) id 1vK3yt-00005k-Sl for 79761 <at> debbugs.gnu.org; Fri, 14 Nov 2025 19:17:32 -0500 From: Spencer Baugh <sbaugh@HIDDEN> To: Juri Linkov <juri@HIDDEN> Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers In-Reply-To: <87ikfp1x6s.fsf@HIDDEN> (Juri Linkov's message of "Tue, 04 Nov 2025 20:15:23 +0200") References: <ier8qgm7rv0.fsf@HIDDEN> <87jz06tf5b.fsf@HIDDEN> <87ikfp1x6s.fsf@HIDDEN> Date: Fri, 14 Nov 2025 19:17:26 -0500 Message-ID: <iera50om9nt.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1763165846; bh=SipnlYKrZWBhqWqLdnQc+K7EK96VTmbjWjy6+ZMkfDs=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=qRX628lTv2Tx8n5pwxuDOq+YbyN9AjRpf6aN1bve/3g+eOyVYJH6V+/fouD4JfFGn qX+3hWmyIt0qe1RBgEhtq5lpF838LH05HwFTZTRc4aqUGL+RwejUNQu79GmGh7Nci+ iY+RrsAe48MjSKydlixty3tlLG3jPnQxw0WlpcSIlmraWmXhrRxz0iYAybY63iepyd /EpvB7N2qKFewcNg7JN3I9inst7HSZHJzG2zrln51z0M2/FVN9+rqUy+hHbmnXqs8W 5VQf28PFzui3O2zDHo1NEjeP6jKhw3dxB3hWnXR/n1HS+l8HyeIL9VLnNj914juAuh W8VBWB6SpjtAg== X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79761 Cc: 79761 <at> debbugs.gnu.org, azeng@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Juri Linkov <juri@HIDDEN> writes: >>> I guess this is because it relies on multi-file-replace-as-diff which >>> only works on file-visiting buffers. >> >> replace-regexp-as-diff was intended to work only on file-visiting buffers. >> However, neither its name nor its docstring mention this. So we could >> extend it to support non-file buffers. This should be straightforward to do >> since multi-file-diff-no-select is based on diff-no-select that supports >> non-file buffers. >> >>> (BTW, it would be neat if replace-regexp-as-diff was incorporated into >>> normal query-replace - if, perhaps, after M-% you could press "d" to >>> display a diff buffer with the rest of the replacements, and probably >>> also exit the query-replace) >> >> Nice idea - this will help to review the remaining replacements and decide >> whether they all can be replaced with !. So I will implement this as well. > > Here is the first version that supports non-file buffers > and 'd' in query-replace: Seems to work for me. > diff --git a/lisp/misearch.el b/lisp/misearch.el > index 5d41ae5fc15..b74d7879c49 100644 > --- a/lisp/misearch.el > +++ b/lisp/misearch.el > @@ -406,6 +406,7 @@ multi-file-diff-unsaved > (declare-function diff-setup-whitespace "diff-mode" ()) > (declare-function diff-setup-buffer-type "diff-mode" ()) > > +;;;###autoload > (defun multi-file-replace-as-diff (files from-string replacements regexp-flag delimited-flag) > "Show as diffs replacements of FROM-STRING with REPLACEMENTS. > FILES is a list of file names. REGEXP-FLAG and DELIMITED-FLAG have > @@ -427,12 +428,19 @@ multi-file-replace-as-diff > (setq buffer-read-only t) > (diff-mode)) > (dolist (file-name files) > - (let* ((file-exists (file-exists-p file-name)) > + (let* ((non-file-buffer (and (buffer-live-p file-name) > + (not (buffer-local-value > + 'buffer-file-name file-name)))) > + (file-exists (unless non-file-buffer > + (file-exists-p file-name))) > (file-buffer > - (when (or (not file-exists) > - (eq multi-file-diff-unsaved 'use-modified-buffer)) > - (find-buffer-visiting file-name)))) > - (when file-name > + (if non-file-buffer > + file-name > + (when (or (not file-exists) > + (eq multi-file-diff-unsaved 'use-modified-buffer)) > + (find-buffer-visiting file-name))))) > + (when non-file-buffer (setq file-name (buffer-name file-name))) > + (when (or file-exists file-buffer) > (with-temp-buffer > (if (and file-buffer > (or (not file-exists) Commenting on code right below this: If there's a buffer, shouldn't we always use insert-buffer-substring, even if (not (buffer-modified-p file-buffer))? > @@ -488,7 +496,8 @@ replace-regexp-as-diff > t t))) > (list (nth 0 common) (nth 1 common) (nth 2 common)))) > (multi-file-replace-as-diff > - (list buffer-file-name) regexp to-string t delimited)) > + (list (or buffer-file-name (current-buffer))) > + regexp to-string t delimited)) > > (defvar diff-use-labels) > (declare-function diff-check-labels "diff" (&optional force)) > diff --git a/lisp/replace.el b/lisp/replace.el > index 107c5eadeb2..414238bf240 100644 > --- a/lisp/replace.el > +++ b/lisp/replace.el > @@ -2492,6 +2492,7 @@ query-replace-map > (define-key map "^" 'backup) > (define-key map "u" 'undo) > (define-key map "U" 'undo-all) > + (define-key map "d" 'diff) > (define-key map "\C-h" 'help) > (define-key map [f1] 'help) > (define-key map [help] 'help) > @@ -2518,7 +2519,7 @@ query-replace-map > `scroll-down', `scroll-other-window', `scroll-other-window-down', > `edit', `edit-replacement', `edit-replacement-exact-case', > `delete-and-edit', `automatic', `backup', `undo', `undo-all', > -`quit', and `help'. > +`diff', `quit', and `help'. > > This keymap is used by `y-or-n-p' as well as `query-replace'.") > > @@ -3333,6 +3334,16 @@ perform-replace > (replace-dehighlight) > (save-excursion (recursive-edit)) > (setq replaced t)) > + > + ((eq def 'diff) > + (let ((display-buffer-overriding-action > + '(nil (inhibit-same-window . t)))) > + (save-selected-window > + (multi-file-replace-as-diff > + (list (or buffer-file-name (current-buffer))) Shouldn't we always pass (current-buffer) here instead of buffer-file-name? > + from-string (or replacements next-replacement) > + regexp-flag delimited-flag)))) > + > ((commandp def t) > (call-interactively def)) > ;; Note: we do not need to treat `exit-prefix'
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.
Received: (at 79761) by debbugs.gnu.org; 4 Nov 2025 18:16:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 04 13:16:36 2025
Received: from localhost ([127.0.0.1]:49052 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vGLa7-0007Ul-O4
for submit <at> debbugs.gnu.org; Tue, 04 Nov 2025 13:16:36 -0500
Received: from mout-p-201.mailbox.org ([80.241.56.171]:50372)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vGLa2-0007UH-QE
for 79761 <at> debbugs.gnu.org; Tue, 04 Nov 2025 13:16:33 -0500
Received: from smtp202.mailbox.org (smtp202.mailbox.org
[IPv6:2001:67c:2050:b231:465::202])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
(No client certificate requested)
by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4d1GqV39nzz9ttW;
Tue, 4 Nov 2025 19:16:22 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001;
t=1762280182;
h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
to:to:cc:cc:mime-version:mime-version:content-type:content-type:
in-reply-to:in-reply-to:references:references;
bh=6bbFy/aNR/A+u55UokNl8AZ5ZHYeECOjsuBooUCXjy8=;
b=QgX+tdGN/eSRmjJrmS7AX8WICVdiPirmZFauAwKRdp8q7C4Tufj7i9lgWNsgxXVZY93Ewu
HSP278gq2hOeACldAdHDR0FOoCv34ySBMr7iRD+rMyGp8skOwDga2kcrml81BLjRmrwITl
YufB+/NfiESBGyqq2j7jy4rS1VBkFoX47oX31ZucQRKVh2VumNWFdVsGPA0zQ6b70vIIwJ
/8aLRaKXvLd5iPDVzHQdIeTbiJRR7PlXJ1C5xVH/XnzUot++zVUqd8ayFImvr9NeuN2dbx
zMpEeQ65MGe//VrthgNAgQ4/pPisWa590LWWe/LUhsG+9D7r3Fq66op4sKLsQg==
Authentication-Results: outgoing_mbo_mout; dkim=none;
spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
2001:67c:2050:b231:465::202 as permitted sender)
smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Spencer Baugh <sbaugh@HIDDEN>
Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on
non-file-visiting buffers
In-Reply-To: <87jz06tf5b.fsf@HIDDEN>
Organization: LINKOV.NET
References: <ier8qgm7rv0.fsf@HIDDEN> <87jz06tf5b.fsf@HIDDEN>
Date: Tue, 04 Nov 2025 20:15:23 +0200
Message-ID: <87ikfp1x6s.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Rspamd-Queue-Id: 4d1GqV39nzz9ttW
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79761
Cc: 79761 <at> debbugs.gnu.org, azeng@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)
--=-=-=
Content-Type: text/plain
>> I guess this is because it relies on multi-file-replace-as-diff which
>> only works on file-visiting buffers.
>
> replace-regexp-as-diff was intended to work only on file-visiting buffers.
> However, neither its name nor its docstring mention this. So we could
> extend it to support non-file buffers. This should be straightforward to do
> since multi-file-diff-no-select is based on diff-no-select that supports
> non-file buffers.
>
>> (BTW, it would be neat if replace-regexp-as-diff was incorporated into
>> normal query-replace - if, perhaps, after M-% you could press "d" to
>> display a diff buffer with the rest of the replacements, and probably
>> also exit the query-replace)
>
> Nice idea - this will help to review the remaining replacements and decide
> whether they all can be replaced with !. So I will implement this as well.
Here is the first version that supports non-file buffers
and 'd' in query-replace:
--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=replace-regexp-as-diff-non-file.patch
diff --git a/lisp/misearch.el b/lisp/misearch.el
index 5d41ae5fc15..b74d7879c49 100644
--- a/lisp/misearch.el
+++ b/lisp/misearch.el
@@ -406,6 +406,7 @@ multi-file-diff-unsaved
(declare-function diff-setup-whitespace "diff-mode" ())
(declare-function diff-setup-buffer-type "diff-mode" ())
+;;;###autoload
(defun multi-file-replace-as-diff (files from-string replacements regexp-flag delimited-flag)
"Show as diffs replacements of FROM-STRING with REPLACEMENTS.
FILES is a list of file names. REGEXP-FLAG and DELIMITED-FLAG have
@@ -427,12 +428,19 @@ multi-file-replace-as-diff
(setq buffer-read-only t)
(diff-mode))
(dolist (file-name files)
- (let* ((file-exists (file-exists-p file-name))
+ (let* ((non-file-buffer (and (buffer-live-p file-name)
+ (not (buffer-local-value
+ 'buffer-file-name file-name))))
+ (file-exists (unless non-file-buffer
+ (file-exists-p file-name)))
(file-buffer
- (when (or (not file-exists)
- (eq multi-file-diff-unsaved 'use-modified-buffer))
- (find-buffer-visiting file-name))))
- (when file-name
+ (if non-file-buffer
+ file-name
+ (when (or (not file-exists)
+ (eq multi-file-diff-unsaved 'use-modified-buffer))
+ (find-buffer-visiting file-name)))))
+ (when non-file-buffer (setq file-name (buffer-name file-name)))
+ (when (or file-exists file-buffer)
(with-temp-buffer
(if (and file-buffer
(or (not file-exists)
@@ -488,7 +496,8 @@ replace-regexp-as-diff
t t)))
(list (nth 0 common) (nth 1 common) (nth 2 common))))
(multi-file-replace-as-diff
- (list buffer-file-name) regexp to-string t delimited))
+ (list (or buffer-file-name (current-buffer)))
+ regexp to-string t delimited))
(defvar diff-use-labels)
(declare-function diff-check-labels "diff" (&optional force))
diff --git a/lisp/replace.el b/lisp/replace.el
index 107c5eadeb2..414238bf240 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -2492,6 +2492,7 @@ query-replace-map
(define-key map "^" 'backup)
(define-key map "u" 'undo)
(define-key map "U" 'undo-all)
+ (define-key map "d" 'diff)
(define-key map "\C-h" 'help)
(define-key map [f1] 'help)
(define-key map [help] 'help)
@@ -2518,7 +2519,7 @@ query-replace-map
`scroll-down', `scroll-other-window', `scroll-other-window-down',
`edit', `edit-replacement', `edit-replacement-exact-case',
`delete-and-edit', `automatic', `backup', `undo', `undo-all',
-`quit', and `help'.
+`diff', `quit', and `help'.
This keymap is used by `y-or-n-p' as well as `query-replace'.")
@@ -3333,6 +3334,16 @@ perform-replace
(replace-dehighlight)
(save-excursion (recursive-edit))
(setq replaced t))
+
+ ((eq def 'diff)
+ (let ((display-buffer-overriding-action
+ '(nil (inhibit-same-window . t))))
+ (save-selected-window
+ (multi-file-replace-as-diff
+ (list (or buffer-file-name (current-buffer)))
+ from-string (or replacements next-replacement)
+ regexp-flag delimited-flag))))
+
((commandp def t)
(call-interactively def))
;; Note: we do not need to treat `exit-prefix'
--=-=-=--
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.Received: (at 79761) by debbugs.gnu.org; 4 Nov 2025 07:49:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 04 02:49:13 2025 Received: from localhost ([127.0.0.1]:45794 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vGBmt-0004M7-PQ for submit <at> debbugs.gnu.org; Tue, 04 Nov 2025 02:49:13 -0500 Received: from [2001:67c:2050:0:465::201] (port=40248 helo=mout-p-201.mailbox.org) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vGBmk-0004Li-UK for 79761 <at> debbugs.gnu.org; Tue, 04 Nov 2025 02:49:05 -0500 Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4d10vK2tvJz9twH; Tue, 4 Nov 2025 08:48:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; t=1762242525; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=qK9AWPTforzxxHE3NcDXx3oX+svLcsWhF+vP//dkEDk=; b=qFTQdpQLXSKLrW4PQw7xD0OKOmCTXnOPs67TTGn59wI71KMTJPOsKWkzVRa1cOL9MW0Uf4 FOZQ4nGv3hwRiThdiEzy5xV8prx8snBB+nus0vtZrwNWoKAQp+9VIByjzOvnvicROxiXoY lj33VIRqDKA596tsyAJ7/IW27ZRhkp3lRxpMBn8vxRrRE5O1YLIFDdokLCufEqBNcwbs6m /8NUfzeGz5FMDFUR0HcAkfeejDzu4vd4tx+M3JOLa/QQQN5420KUGuHQWwxsw8ZYB1Dtr1 tghX9L+KdTRTgGzUUwVr6Ddc6ZrAuBq07zTSWY4WiqPUVnpwH7y7PTwhG/eQdw== From: Juri Linkov <juri@HIDDEN> To: Spencer Baugh <sbaugh@HIDDEN> Subject: Re: bug#79761: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers In-Reply-To: <ier8qgm7rv0.fsf@HIDDEN> Organization: LINKOV.NET References: <ier8qgm7rv0.fsf@HIDDEN> Date: Tue, 04 Nov 2025 09:45:20 +0200 Message-ID: <87jz06tf5b.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: 79761 Cc: 79761 <at> debbugs.gnu.org, azeng@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.4 (/) > 1. emacs -Q > 2. C-x b *scratch* > 3. M-x replace-regexp-as-diff foo bar > 4. Observe immediate error. > > I guess this is because it relies on multi-file-replace-as-diff which > only works on file-visiting buffers. replace-regexp-as-diff was intended to work only on file-visiting buffers. However, neither its name nor its docstring mention this. So we could extend it to support non-file buffers. This should be straightforward to do since multi-file-diff-no-select is based on diff-no-select that supports non-file buffers. > (BTW, it would be neat if replace-regexp-as-diff was incorporated into > normal query-replace - if, perhaps, after M-% you could press "d" to > display a diff buffer with the rest of the replacements, and probably > also exit the query-replace) Nice idea - this will help to review the remaining replacements and decide whether they all can be replaced with !. So I will implement this as well.
bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.Received: (at submit) by debbugs.gnu.org; 3 Nov 2025 21:02:15 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 03 16:02:15 2025 Received: from localhost ([127.0.0.1]:43514 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vG1gs-0003HI-Cn for submit <at> debbugs.gnu.org; Mon, 03 Nov 2025 16:02:15 -0500 Received: from lists.gnu.org ([2001:470:142::17]:37874) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <sbaugh@HIDDEN>) id 1vG1gm-0003H4-LR for submit <at> debbugs.gnu.org; Mon, 03 Nov 2025 16:02:11 -0500 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 <sbaugh@HIDDEN>) id 1vG1gX-0007zR-9n for bug-gnu-emacs@HIDDEN; Mon, 03 Nov 2025 16:01:54 -0500 Received: from mxout5.mail.janestreet.com ([64.215.233.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <sbaugh@HIDDEN>) id 1vG1gM-000315-MK for bug-gnu-emacs@HIDDEN; Mon, 03 Nov 2025 16:01:50 -0500 From: Spencer Baugh <sbaugh@HIDDEN> To: bug-gnu-emacs@HIDDEN Subject: 30.1.90; replace-regexp-as-diff fails on non-file-visiting buffers X-Debbugs-Cc: azeng@HIDDEN, Juri Linkov <juri@HIDDEN> Date: Mon, 03 Nov 2025 16:01:39 -0500 Message-ID: <ier8qgm7rv0.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1762203699; bh=N7hYfFLBOz+ZIVECGiiN/AIuwTDQajkhJB5SHgedEaE=; h=From:To:Subject:Date; b=meoOs5fo/usfnYjxwdlCBovMZEtnmT6PCqsXlPQuJOvnyJv4fP4RakwgCrPe27W0g hG01MSXeo70zcf7o9PeQcv6ZWDgVo9GAsU8z89srIi/PSOgKBIiXcDUPAFw2HuFxJM 1PSBv2c/uShE4prYIKuxRkmB2NmqNRzX+doL5ixkbQ5awZDMJr3iqhitZ9GRUcOSdW RbjC3/sO1U/ii0JCN2Qpe+SlNl1Z2CsR7xYwsDkwwrjar8s2rxc2L6FpfkFAI6gXwx Kuko/oEXmUP1xKpBlHZw0GQ5Mdr4LNTqOvDWwu3Chw1BV4uzqdBlSd0BLOxryPwtmw 7KrA9P0xKmuuw== Received-SPF: pass client-ip=64.215.233.18; envelope-from=sbaugh@HIDDEN; helo=mxout5.mail.janestreet.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.1 (/) 1. emacs -Q 2. C-x b *scratch* 3. M-x replace-regexp-as-diff foo bar 4. Observe immediate error. I guess this is because it relies on multi-file-replace-as-diff which only works on file-visiting buffers. (BTW, it would be neat if replace-regexp-as-diff was incorporated into normal query-replace - if, perhaps, after M-% you could press "d" to display a diff buffer with the rest of the replacements, and probably also exit the query-replace) In GNU Emacs 30.1.90 (build 77, x86_64-pc-linux-gnu, X toolkit, cairo version 1.15.12, Xaw scroll bars) of 2025-10-27 built on igm-qws-u22796a Repository revision: c62810f30fbbf4054050698f37acc6c45bb30624 Repository branch: emacs-30 Windowing system distributor 'The X.Org Foundation', version 11.0.12011000 System Description: Rocky Linux 8.10 (Green Obsidian) Configured using: 'configure --with-x-toolkit=lucid --without-gpm --without-gconf --without-selinux --without-imagemagick --with-modules --with-gif=no --with-cairo --with-rsvg --without-compress-install --with-tree-sitter --with-native-compilation=aot PKG_CONFIG_PATH=/usr/local/home/garnish/libtree-sitter/0.22.6-1/lib/pkgconfig/' Configured features: CAIRO DBUS FREETYPE GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM XINPUT2 XPM LUCID ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: global-so-long-mode: t global-git-commit-mode: t magit-auto-revert-mode: t windmove-mode: t savehist-mode: t save-place-mode: t delete-selection-mode: t dired-omit-mode: t editorconfig-mode: t mode-line-bell-mode: t server-mode: t global-jane-cr-highlight-minor-mode: t jane-cr-highlight-minor-mode: t diff-hl-mode: t jane-fe-jenga-minor-mode: t jane-fe-minor-mode: t jane-minor-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t vc-auto-revert-mode: t mouse-wheel-mode: t tab-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t context-menu-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t abbrev-mode: t Features: (shadow emacsbug cl-print tramp-cache time-stamp tramp-sh shortdoc help-fns radix-tree face-remap bug-reference macrostep-c cmacexp macrostep cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs whitespace qp smiley gnus-cite textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check gnus-async gnus-bcklg gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-ml gnus-msg disp-table nndoc gnus-cache gnus-dup display-line-numbers mm-archive debbugs-gnu debbugs soap-client rng-xsd rng-dt rng-util xsd-regexp debbugs-compat dabbrev misc wgrep tramp trampver tramp-integration tramp-message tramp-compat tramp-loaddefs mail-extr markdown-mode edit-indirect sort find-dired url-http-ntlm ntlm hmac-md5 hex-util md4 network-stream url-http url-gw nsm url-cache agent-shell agent-shell-heartbeat agent-shell-qwen agent-shell-openai agent-shell-goose agent-shell-google agent-shell-diff agent-shell-anthropic agent-shell-ui shell-maker markdown-overlays acp acp-traffic pulse color ocaml-eglot ocaml-eglot-type-enclosing flycheck ffap oc-basic org-element org-persist org-id org-refile org-element-ast inline avl-tree generator ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi rect vc-git misearch multi-isearch dired-aux files-x jane-fe-diff jane-fe-show goto-addr jane-fe-todo jane-fe-wl jane-fe-history jane-fe-feature-specific gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win jane-dune open-junk-file vc-fe grep let-alist so-long vc-hg skeleton page-ext magit-extras magit-bookmark magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff git-commit dash magit-core magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient edmacro kmacro benchmark magit-git magit-base magit-section cursor-sensor llama cond-let compat gnus nnheader range windmove org org-macro org-pcomplete org-list org-footnote org-faces org-entities noutline outline ob-dot ob-shell ob ob-tangle org-src sh-script treesit executable ob-ref ob-lob ob-table ob-exp ob-comint ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs org-version org-compat org-macs format-spec gdb-mi bindat vundo modus-vivendi-theme modus-themes savehist saveplace finder-inf site-start jane-customization jane-which-key which-key delsel jane-build-status jane-fe-workspace jane-patdiff jane-diagnose jane-async-merlin jane-completion jane-aide jane-yasnippet jane-fe-menu ecaml autorevert dired-x editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch mode-line-bell help-at-pt jane-micro-features server jane-diff smerge-mode unified-test-mode shell-file jane-fe-read-feature jane-fe-regex jane-fe-vtable vtable mule-util jane-fe-project jane-fe-feature-table hl-line jane-fe-button jane-sexp rainbow-delimiters jane-python jane-ocaml gud hydra lv jane-merlin merlin-xref merlin-cap merlin hi-lock advice crm ocaml-eglot-xref ocaml-eglot-req ocaml-eglot-util tuareg tuareg-compat tuareg-opam smie caml-types caml-help view find-file jane-cr jane-align shell pcomplete diff-hl log-view log-edit message sendmail yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa derived gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader add-log pcvs-util vc-dir vc vc-dispatcher jane-telemetry jane-ecaml ecaml_plugin time-date comp comp-cstr cl-extra bookmark jane-rust ocp-indent jane-eglot eglot tree-widget external-completion jsonrpc xref flymake thingatpt project diff diff-mode track-changes easy-mmode ert ewoc debug backtrace help-mode find-func filenotify warnings imenu contrib-loaddefs jane-loaddefs jane-util jane-elpa-pin cus-edit pp cus-start cus-load wid-edit jane-constants adaptive-wrap-autoloads agent-shell-autoloads acp-autoloads caml-autoloads corfu-autoloads csv-mode-autoloads cyberpunk-theme-autoloads debbugs-autoloads diffview-autoloads git-commit-autoloads keycast-autoloads mct-autoloads shell-maker-autoloads url-http-ntlm-autoloads url-auth utop-autoloads vc-hgcmd-autoloads vertico-autoloads vundo-autoloads ace-link-autoloads aggressive-indent-autoloads ahk-mode-autoloads all-the-icons-ivy-rich-autoloads amx-autoloads auto-compile-autoloads auto-dictionary-autoloads auto-highlight-symbol-autoloads auto-yasnippet-autoloads base16-theme-autoloads bash-completion-autoloads blacken-autoloads browse-at-remote-autoloads centered-cursor-mode-autoloads claude-code-ide-autoloads clean-aindent-mode-autoloads code-cells-autoloads column-enforce-mode-autoloads company-box-autoloads company-lua-autoloads company-posframe-autoloads company-quickhelp-autoloads company-shell-autoloads company-statistics-autoloads company-web-autoloads consult-yasnippet-autoloads counsel-css-autoloads counsel-projectile-autoloads counsel-autoloads cpp-auto-include-autoloads dap-mode-autoloads bui-autoloads define-word-autoloads diff-hl-autoloads diminish-autoloads dired-quick-sort-autoloads disable-mouse-autoloads disaster-autoloads doom-modeline-autoloads doom-themes-autoloads dotenv-mode-autoloads drag-stuff-autoloads eat-autoloads edit-indirect-autoloads eldoc-box-autoloads elisp-def-autoloads elisp-slime-nav-autoloads embark-consult-autoloads consult-autoloads embark-autoloads emmet-mode-autoloads emr-autoloads clang-format-autoloads envrc-autoloads esh-help-autoloads eshell-prompt-extras-autoloads eshell-z-autoloads ess-autoloads eval-sexp-fu-autoloads evil-anzu-autoloads anzu-autoloads evil-args-autoloads evil-cleverparens-autoloads evil-collection-autoloads annalist-autoloads evil-easymotion-autoloads evil-escape-autoloads evil-exchange-autoloads evil-goggles-autoloads evil-iedit-state-autoloads evil-indent-plus-autoloads evil-leader-autoloads evil-lion-autoloads evil-lisp-state-autoloads bind-map-autoloads evil-matchit-autoloads evil-mc-autoloads evil-nerd-commenter-autoloads evil-numbers-autoloads evil-org-autoloads evil-quickscope-autoloads evil-surround-autoloads evil-textobj-line-autoloads evil-tutor-autoloads evil-visual-mark-mode-autoloads evil-visualstar-autoloads expand-region-autoloads eyebrowse-autoloads fish-mode-autoloads flx-autoloads flycheck-bashate-autoloads flycheck-eglot-autoloads eglot-autoloads flycheck-elsa-autoloads flycheck-package-autoloads flycheck-pos-tip-autoloads flyspell-correct-helm-autoloads flyspell-correct-ivy-autoloads flyspell-correct-popup-autoloads flyspell-correct-autoloads flyspell-popup-autoloads frame-local-autoloads fzf-autoloads gh-md-autoloads git-gutter-autoloads git-link-autoloads git-messenger-autoloads popup-autoloads git-modes-autoloads git-timemachine-autoloads gitignore-templates-autoloads gnu-elpa-keyring-update-autoloads compile text-property-search comint ansi-osc ansi-color ring comp-run comp-common epg rfc6068 epg-config gnu-elpa-keyring-update gnuplot-autoloads golden-ratio-autoloads google-c-style-autoloads gruvbox-theme-autoloads autothemer-autoloads haskell-mode-autoloads hc-zenburn-theme-autoloads helm-ag-autoloads helm-c-yasnippet-autoloads helm-comint-autoloads helm-company-autoloads company-autoloads helm-css-scss-autoloads helm-descbinds-autoloads helm-make-autoloads helm-mode-manager-autoloads helm-org-rifle-autoloads helm-projectile-autoloads helm-purpose-autoloads helm-pydoc-autoloads helm-swoop-autoloads helm-autoloads helm-core-autoloads helpful-autoloads elisp-refs-autoloads highlight-indentation-autoloads highlight-numbers-autoloads highlight-parentheses-autoloads ibuffer-projectile-autoloads iedit-autoloads impatient-mode-autoloads importmagic-autoloads epc-autoloads ctable-autoloads concurrent-autoloads deferred-autoloads indent-guide-autoloads inheritenv-autoloads ivy-avy-autoloads ivy-hydra-autoloads ivy-purpose-autoloads ivy-rich-autoloads ivy-xref-autoloads ivy-yasnippet-autoloads js-doc-autoloads js2-refactor-autoloads json-mode-autoloads json-navigator-autoloads json-reformat-autoloads json-snatcher-autoloads jsonnet-mode-autoloads ligature-autoloads link-hint-autoloads livid-mode-autoloads lorem-ipsum-autoloads lsp-docker-autoloads lsp-treemacs-autoloads lsp-mode-autoloads eldoc-autoloads lua-mode-autoloads macrostep-autoloads magit-gitflow-autoloads magit-popup-autoloads magit-svn-autoloads magit-todos-autoloads hl-todo-autoloads marginalia-autoloads markdown-toc-autoloads material-theme-autoloads merlin-eldoc-autoloads merlin-autoloads mode-line-bell-autoloads monokai-theme-autoloads multi-line-autoloads multi-term-autoloads multi-vterm-autoloads multiple-cursors-autoloads mwim-autoloads nameless-autoloads nerd-icons-autoloads nix-mode-autoloads nodejs-repl-autoloads npm-mode-autoloads ob-powershell-autoloads ocaml-eglot-autoloads ocp-indent-autoloads olivetti-autoloads open-junk-file-autoloads orderless-autoloads org-alert-autoloads org-appear-autoloads org-cliplink-autoloads org-contrib-autoloads org-download-autoloads async-autoloads org-jira-autoloads org-mime-autoloads org-modern-autoloads org-pomodoro-autoloads alert-autoloads log4e-autoloads gntp-autoloads org-present-autoloads org-projectile-autoloads org-project-capture-autoloads org-category-capture-autoloads org-re-reveal-autoloads htmlize-autoloads org-rich-yank-autoloads org-roam-autoloads org-sticky-header-autoloads org-superstar-autoloads org-transclusion-autoloads orgit-forge-autoloads orgit-autoloads forge-autoloads ghub-autoloads closql-autoloads emacsql-autoloads origami-autoloads overseer-autoloads ox-gfm-autoloads ox-jira-autoloads org-autoloads package-lint-autoloads page-break-lines-autoloads paradox-autoloads paredit-autoloads parent-mode-autoloads pcre2el-autoloads persistent-scratch-autoloads pip-requirements-autoloads pippel-autoloads pkg-info-autoloads epl-autoloads poly-markdown-autoloads polymode-autoloads popwin-autoloads pos-tip-autoloads powershell-autoloads prettier-js-autoloads protobuf-mode-autoloads pug-mode-autoloads py-isort-autoloads pydoc-autoloads pytest-autoloads pyvenv-autoloads quickrun-autoloads rainbow-delimiters-autoloads request-autoloads rg-autoloads ron-mode-autoloads rustic-autoloads flycheck-autoloads markdown-mode-autoloads rust-mode-autoloads sass-mode-autoloads haml-mode-autoloads scss-mode-autoloads shell-pop-autoloads shfmt-autoloads reformatter-autoloads shrink-path-autoloads f-autoloads shut-up-autoloads skewer-mode-autoloads js2-mode-autoloads simple-httpd-autoloads slim-mode-autoloads smartparens-autoloads smeargle-autoloads sml-mode-autoloads solarized-theme-autoloads sphinx-doc-autoloads spinner-autoloads sql-indent-autoloads sqlup-mode-autoloads string-edit-at-point-autoloads string-inflection-autoloads swiper-autoloads ivy-autoloads symbol-overlay-autoloads tagedit-autoloads term-cursor-autoloads terminal-here-autoloads toc-org-autoloads toml-mode-autoloads treemacs-all-the-icons-autoloads all-the-icons-autoloads treemacs-evil-autoloads evil-autoloads goto-chg-autoloads treemacs-icons-dired-autoloads treemacs-magit-autoloads magit-autoloads pcase with-editor-autoloads transient-autoloads magit-section-autoloads llama-autoloads cond-let-autoloads treemacs-persp-autoloads persp-mode-autoloads treemacs-projectile-autoloads treemacs-autoloads cfrs-autoloads ht-autoloads hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads s-autoloads projectile-autoloads treepy-autoloads tuareg-autoloads rx typescript-mode-autoloads undo-fu-autoloads undo-fu-session-autoloads unfill-autoloads unicode-fonts-autoloads ucs-utils-autoloads font-utils-autoloads persistent-soft-autoloads list-utils-autoloads pcache-autoloads urgrep-autoloads uuidgen-autoloads valign-autoloads vba-mode-autoloads verb-autoloads vi-tilde-fringe-autoloads vmd-mode-autoloads volatile-highlights-autoloads vterm-autoloads web-beautify-autoloads web-completion-data-autoloads web-mode-autoloads web-server-autoloads websocket-autoloads wfnames-autoloads wgrep-autoloads which-key-posframe-autoloads posframe-autoloads window-purpose-autoloads imenu-list-autoloads winum-autoloads dash-autoloads info writeroom-mode-autoloads visual-fill-column-autoloads ws-butler-autoloads xterm-color-autoloads yaml-autoloads yasnippet-snippets-autoloads yasnippet-autoloads zenburn-theme-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs regexp-opt faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo x-toolkit xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 1726423 221677) (symbols 48 65787 3) (strings 32 312747 22177) (string-bytes 1 10157161) (vectors 16 141108) (vector-slots 8 2469669 144475) (floats 8 920 568) (intervals 56 65230 7046) (buffers 992 256))
Spencer Baugh <sbaugh@HIDDEN>:azeng@HIDDEN, juri@HIDDEN, bug-gnu-emacs@HIDDEN.
Full text available.azeng@HIDDEN, juri@HIDDEN, bug-gnu-emacs@HIDDEN:bug#79761; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.