From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eshel Yaron via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#65854: Multi-file replacement diff Date: Sun, 10 Sep 2023 19:58:10 +0200 Message-ID: References: <86sf7mgd54.fsf@mail.linkov.net> Reply-To: Eshel Yaron Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36102"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: 65854@debbugs.gnu.org To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Sep 10 19:59:24 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 1qfOiR-0009Dl-63 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 10 Sep 2023 19:59:23 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfOi3-0007WD-W8; Sun, 10 Sep 2023 13:59:00 -0400 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 1qfOi2-0007Ve-Pc for bug-gnu-emacs@gnu.org; Sun, 10 Sep 2023 13:58:58 -0400 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 1qfOi2-00025T-Fa for bug-gnu-emacs@gnu.org; Sun, 10 Sep 2023 13:58:58 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qfOi6-0005KS-0b for bug-gnu-emacs@gnu.org; Sun, 10 Sep 2023 13:59:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eshel Yaron Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Sep 2023 17:59:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65854 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 65854-submit@debbugs.gnu.org id=B65854.169436870020435 (code B ref 65854); Sun, 10 Sep 2023 17:59:01 +0000 Original-Received: (at 65854) by debbugs.gnu.org; 10 Sep 2023 17:58:20 +0000 Original-Received: from localhost ([127.0.0.1]:51280 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfOhP-0005JV-IR for submit@debbugs.gnu.org; Sun, 10 Sep 2023 13:58:19 -0400 Original-Received: from mail.eshelyaron.com ([107.175.124.16]:39852 helo=eshelyaron.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfOhN-0005JN-H8 for 65854@debbugs.gnu.org; Sun, 10 Sep 2023 13:58:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com; s=mail; t=1694368693; bh=UVzQVteQZ54OtbjyJ6Rb5WeIzPtjDLN0gbi+/8aza2E=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=h0QVT2MxNCkg+HSABc+aMkMKyiNtCNv2ICNZTdFFY6nJxZtaNtKDNQ/SVLeAFUKER rBZ9A0ig8KNdwjY1+xq9XvBj1qrB92cLs75LBcirMMlHQc5q1OKaVMzhm3eqlY1Nf3 0qlc2HkIeqGLXo8DamPS1JvppwG54HcBHzjC/zvaHB9d/jAnOSDrL/ukQ7NTw8HAhV MGL1LK6VxzpS+NU9KTERdC4G483rtAozBdfnT5ufeKITI1bQKmwN/87EY9bjunfgN6 XTXz2nRqZapyhudHfnWIV4Nb0rnuf6MdnejQ97+XeO7tHJOAis5ERzXgPz9PdjFQ8m 0OyS2IWESnwYg== In-Reply-To: <86sf7mgd54.fsf@mail.linkov.net> (Juri Linkov's message of "Sun, 10 Sep 2023 20:18:47 +0300") X-Hashcash: 1:20:230910:juri@linkov.net::QlOl8StUJWtCWuKE:Hh7 X-Hashcash: 1:20:230910:65854@debbugs.gnu.org::kFScCU71+fm8+AFo:29/L 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:269992 Archived-At: Hi there, Juri Linkov writes: > +(defun multi-file-replace-as-diff (files-or-buffers from-string replacements regexp-flag delimited-flag) > + (require 'diff) > + (let ((inhibit-message t) > + (diff-buffer (get-buffer-create "*replace-diff*"))) > + (with-current-buffer diff-buffer > + (buffer-disable-undo (current-buffer)) > + (let ((inhibit-read-only t)) > + (erase-buffer)) > + (diff-mode)) > + (dolist (file-or-buffer files-or-buffers) > + (let ((file-name (if (bufferp file-or-buffer) buffer-file-name file-or-buffer))) > + (when file-name > + (with-temp-buffer > + (if (bufferp file-or-buffer) > + (insert-buffer-substring file-or-buffer) > + (insert-file-contents file-or-buffer)) I wonder what happens if I call `multi-file-replace-regexp-as-diff` and select a file `foo.txt`, that I already have open and modified in a buffer. IIUC, this will generate the diff based on the contents of the file on disk, not the buffer, so it might not match when I subsequently try to apply the diff to the buffer. WDYT? Eshel