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#29734: 27.0.50; shr-insert-document modify point of buffer in corner case Date: Sat, 16 Dec 2017 16:12:26 +0200 Message-ID: <83h8sqsqwl.fsf@gnu.org> References: <87shca7sc4.fsf@mail.parknet.co.jp> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1513433594 22902 195.159.176.226 (16 Dec 2017 14:13:14 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 16 Dec 2017 14:13:14 +0000 (UTC) Cc: 29734@debbugs.gnu.org To: OGAWA Hirofumi Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Dec 16 15:13:09 2017 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 1eQDD9-0005OE-Md for geb-bug-gnu-emacs@m.gmane.org; Sat, 16 Dec 2017 15:13:07 +0100 Original-Received: from localhost ([::1]:50885 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQDDG-0001Lh-TW for geb-bug-gnu-emacs@m.gmane.org; Sat, 16 Dec 2017 09:13:14 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55578) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQDD9-0001Lc-SO for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2017 09:13:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQDD4-0002Cb-UO for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2017 09:13:07 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:56072) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eQDD4-0002CR-Qd for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2017 09:13:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eQDD4-0008I7-K9 for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2017 09:13:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Dec 2017 14:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 29734 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 29734-submit@debbugs.gnu.org id=B29734.151343355831840 (code B ref 29734); Sat, 16 Dec 2017 14:13:02 +0000 Original-Received: (at 29734) by debbugs.gnu.org; 16 Dec 2017 14:12:38 +0000 Original-Received: from localhost ([127.0.0.1]:36520 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQDCe-0008HR-JR for submit@debbugs.gnu.org; Sat, 16 Dec 2017 09:12:38 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:36243) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQDCd-0008HF-0R for 29734@debbugs.gnu.org; Sat, 16 Dec 2017 09:12:35 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQDCT-0001pj-1H for 29734@debbugs.gnu.org; Sat, 16 Dec 2017 09:12:29 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33867) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQDCS-0001pf-Tb; Sat, 16 Dec 2017 09:12:24 -0500 Original-Received: from [176.228.60.248] (port=3444 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eQDCS-0005Mo-A3; Sat, 16 Dec 2017 09:12:24 -0500 In-reply-to: <87shca7sc4.fsf@mail.parknet.co.jp> (message from OGAWA Hirofumi on Sat, 16 Dec 2017 21:47:07 +0900) 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:141155 Archived-At: > From: OGAWA Hirofumi > Date: Sat, 16 Dec 2017 21:47:07 +0900 > > (let ((buf (get-buffer-create "test-case"))) > (display-buffer buf) > (with-current-buffer buf > (erase-buffer) > (insert "1\n") > (shr-insert-document > '(html nil (body nil (a ((href . "http://example.org")) "example")))) > (insert "\n") > (insert "2\n"))) > > and expected result is > > 1 > example > 2 > > But actual result is > > example > 2 > 1 > > Like above example, `shr-insert-document' modify the point > of "test-case" buffer. (display-buffer is important to > reproduce. If commented out display-buffer line, the issue > disappear.) > > With some debugging I noticed, the usage of `with-temp-buffer' of > `shr-string-pixel-width' modify the point. Simplified version of > `shr-string-pixel-width' to reproduce the issue is the following, > > (with-temp-buffer > (save-window-excursion > (set-window-buffer nil (current-buffer)))) > > In this conbination, `with-temp-buffer' seems to fail to restore > the point. > > So the patch seems to save and restore the point correctly. Thanks. I think save-excursion is too heavy in this case, so I installed a change to only preserve point. Please try the recent emacs-26 branch, it should now be fixed there.