From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#34720: 26.1; Reverting a GPG buffer moves all markers to the end of the file Date: Tue, 27 Aug 2019 10:37:40 +0200 Message-ID: <87blwb2ecr.fsf@gnus.org> References: <87a7ic9due.fsf@gnu.org> <87muhnrwvs.fsf@mouse.gnus.org> <875zmk5r5u.fsf@gnus.org> <83sgpofjc9.fsf@gnu.org> <87k1b04a3x.fsf@gnus.org> <83pnksfel0.fsf@gnu.org> <87v9uj2i7l.fsf@gnus.org> <83mufvdomu.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="232051"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: 34720@debbugs.gnu.org, dunni@gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Aug 27 10:38:15 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i2WzV-000yDy-Bd for geb-bug-gnu-emacs@m.gmane.org; Tue, 27 Aug 2019 10:38:13 +0200 Original-Received: from localhost ([::1]:48188 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i2WzU-0007uw-5G for geb-bug-gnu-emacs@m.gmane.org; Tue, 27 Aug 2019 04:38:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:38617) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i2WzL-0007up-VZ for bug-gnu-emacs@gnu.org; Tue, 27 Aug 2019 04:38:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i2WzK-0006zY-IK for bug-gnu-emacs@gnu.org; Tue, 27 Aug 2019 04:38:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:38842) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i2WzK-0006zH-F3 for bug-gnu-emacs@gnu.org; Tue, 27 Aug 2019 04:38:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1i2WzK-0008G5-Ac for bug-gnu-emacs@gnu.org; Tue, 27 Aug 2019 04:38:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 27 Aug 2019 08:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 34720 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: confirmed Original-Received: via spool by 34720-submit@debbugs.gnu.org id=B34720.156689506731724 (code B ref 34720); Tue, 27 Aug 2019 08:38:02 +0000 Original-Received: (at 34720) by debbugs.gnu.org; 27 Aug 2019 08:37:47 +0000 Original-Received: from localhost ([127.0.0.1]:47663 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i2Wz5-0008Fc-JY for submit@debbugs.gnu.org; Tue, 27 Aug 2019 04:37:47 -0400 Original-Received: from quimby.gnus.org ([80.91.231.51]:38862) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i2Wz4-0008FT-1b for 34720@debbugs.gnu.org; Tue, 27 Aug 2019 04:37:46 -0400 Original-Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=marnie) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i2Wyz-00078O-7T; Tue, 27 Aug 2019 10:37:43 +0200 In-Reply-To: <83mufvdomu.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 27 Aug 2019 11:00:09 +0300") 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: 209.51.188.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:165947 Archived-At: Continuing to read the code in the massive Finsert_file_contents, even with a way to get and restore the markers, replicating all that it does seems like a rather hair-raising task. For instance: /* If requested, replace the accessible part of the buffer with the file contents. Avoid replacing text at the beginning or end of the buffer that matches the file contents; that preserves markers pointing to the unchanged parts. Here we implement this feature in an optimized way for the case where code conversion is NOT needed. The following if-statement handles the case of conversion in a less optimal way. If the code conversion is "automatic" then we try using this method and hope for the best. But if we discover the need for conversion, we give up on this method and let the following if-statement handle the replace job. */ Oh: /* FIXME: insert-file-contents should be split with the top-level moved to Elisp and only the core kept in C. */ Right. Hm... Now what's this? /* If the file name has special constructs in it, call the corresponding file name handler. */ handler = Ffind_file_name_handler (filename, Qinsert_file_contents); if (!NILP (handler)) { val = call6 (handler, Qinsert_file_contents, filename, visit, beg, end, replace); if (CONSP (val) && CONSP (XCDR (val)) && RANGED_FIXNUMP (0, XCAR (XCDR (val)), ZV - PT)) inserted = XFIXNUM (XCAR (XCDR (val))); goto handled; } That's the code that calls out to `epa-file-insert-file-contents', isn't it? Hm, yes it is. And handled: will restore the markers if inserted is larger than zero. But it seems to be larger than zero, so I think I need to do more debugging. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no