From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#32278: 27.0.50; replace-buffer-contents calls change functions with wrong arguments Date: Fri, 27 Jul 2018 13:06:13 +0300 Message-ID: <83in51ro16.fsf@gnu.org> References: <96205085-151d-5021-d0bc-44b22df363cf@zoho.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1532686327 17032 195.159.176.226 (27 Jul 2018 10:12:07 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 27 Jul 2018 10:12:07 +0000 (UTC) Cc: 32278@debbugs.gnu.org To: =?UTF-8?Q?Micha=C5=82?= Kondraciuk Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jul 27 12:12:02 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fizj8-0004J4-E4 for geb-bug-gnu-emacs@m.gmane.org; Fri, 27 Jul 2018 12:12:02 +0200 Original-Received: from localhost ([::1]:40162 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fizlF-0002rJ-9N for geb-bug-gnu-emacs@m.gmane.org; Fri, 27 Jul 2018 06:14:13 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60721) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fizeM-0005oZ-50 for bug-gnu-emacs@gnu.org; Fri, 27 Jul 2018 06:07:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fizeI-00015j-TD for bug-gnu-emacs@gnu.org; Fri, 27 Jul 2018 06:07:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:54574) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fizeI-00015P-Oj for bug-gnu-emacs@gnu.org; Fri, 27 Jul 2018 06:07:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fizeI-0006sD-Dk for bug-gnu-emacs@gnu.org; Fri, 27 Jul 2018 06:07:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 27 Jul 2018 10:07:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32278 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 32278-submit@debbugs.gnu.org id=B32278.153268598426375 (code B ref 32278); Fri, 27 Jul 2018 10:07:01 +0000 Original-Received: (at 32278) by debbugs.gnu.org; 27 Jul 2018 10:06:24 +0000 Original-Received: from localhost ([127.0.0.1]:59592 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fizdg-0006rL-0M for submit@debbugs.gnu.org; Fri, 27 Jul 2018 06:06:24 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:41361) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fizde-0006r9-HM for 32278@debbugs.gnu.org; Fri, 27 Jul 2018 06:06:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fizdW-0000Nw-4n for 32278@debbugs.gnu.org; Fri, 27 Jul 2018 06:06:17 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:48760) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fizdW-0000NY-1R; Fri, 27 Jul 2018 06:06:14 -0400 Original-Received: from [176.228.60.248] (port=2060 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fizdV-0000bI-54; Fri, 27 Jul 2018 06:06:13 -0400 In-reply-to: <96205085-151d-5021-d0bc-44b22df363cf@zoho.com> (message from =?UTF-8?Q?Micha=C5=82?= Kondraciuk on Wed, 25 Jul 2018 18:17:53 +0200) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:149004 Archived-At: > From: MichaƂ Kondraciuk > Date: Wed, 25 Jul 2018 18:17:53 +0200 > > When I evaluate the sexp below in emacs -Q, I get unexpected arguments > passed to change functions. > > (with-current-buffer "*scratch*" > (erase-buffer) > (insert "foo") > > (add-hook 'before-change-functions > (lambda (&rest args) (message "before %s" args)) nil t) > (add-hook 'after-change-functions > (lambda (&rest args) (message "after %s" args)) nil t) > > (with-temp-buffer > (insert "ffooo") > (let ((replacement (current-buffer))) > (with-current-buffer "*scratch*" > (replace-buffer-contents replacement))))) > > The only messages I get are: > > before (4 4) > after (4 6 0) > > I would expect something like: > > before (1 1) ;before inserting f in front > after (1 2 0) ;after inserting f in front > before (5 5) ;before inserting o at the end > after (5 6 0) ;after inserting o at the end > > Or maybe something like this: > > before (1 4) > after (1 6 3) > > Or anything else that would allow me to incrementally build a buffer > with the same contents as source buffer using just change functions. Thanks. I just threw away the attempt to be smarter about where the changes are done, and went back to the original code that announces changes in the entire region. If anyone wants to add smarter code, they should do this on master.