From unknown Sat Sep 13 12:47:41 2025 X-Loop: help-debbugs@gnu.org Subject: bug#29734: 27.0.50; shr-insert-document modify point of buffer in corner case Resent-From: OGAWA Hirofumi Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Dec 2017 12:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 29734 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 29734@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.151342844724413 (code B ref -1); Sat, 16 Dec 2017 12:48:02 +0000 Received: (at submit) by debbugs.gnu.org; 16 Dec 2017 12:47:27 +0000 Received: from localhost ([127.0.0.1]:36489 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQBsE-0006Lh-Sl for submit@debbugs.gnu.org; Sat, 16 Dec 2017 07:47:27 -0500 Received: from eggs.gnu.org ([208.118.235.92]:48292) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQBsD-0006LU-Ar for submit@debbugs.gnu.org; Sat, 16 Dec 2017 07:47:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQBs6-0001t2-QL for submit@debbugs.gnu.org; Sat, 16 Dec 2017 07:47:20 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:60715) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eQBs6-0001sn-NU for submit@debbugs.gnu.org; Sat, 16 Dec 2017 07:47:18 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39261) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQBs5-0003fK-Ed for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2017 07:47:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQBs0-0001pW-Fw for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2017 07:47:17 -0500 Received: from mail.parknet.co.jp ([210.171.160.6]:35267) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQBrz-0001p1-Ts for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2017 07:47:12 -0500 Received: from ibmpc.myhome.or.jp (server.parknet.ne.jp [210.171.168.39]) by mail.parknet.co.jp (Postfix) with ESMTP id 81FBC1E0018 for ; Sat, 16 Dec 2017 21:47:09 +0900 (JST) Received: from devron.myhome.or.jp (root@devron.myhome.or.jp [192.168.0.3]) by ibmpc.myhome.or.jp (8.15.2/8.15.2/Debian-9) with ESMTPS id vBGCl8Ap012687 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Sat, 16 Dec 2017 21:47:09 +0900 Received: from devron.myhome.or.jp (hirofumi@localhost [127.0.0.1]) by devron.myhome.or.jp (8.15.2/8.15.2/Debian-9) with ESMTPS id vBGCl8OB022557 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Sat, 16 Dec 2017 21:47:08 +0900 Received: (from hirofumi@localhost) by devron.myhome.or.jp (8.15.2/8.15.2/Submit) id vBGCl79D022556; Sat, 16 Dec 2017 21:47:07 +0900 From: OGAWA Hirofumi Date: Sat, 16 Dec 2017 21:47:07 +0900 Message-ID: <87shca7sc4.fsf@mail.parknet.co.jp> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Hi, The following is the reproduce code of issue, (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. --- lisp/net/shr.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff -puN lisp/net/shr.el~shr-fix-point-modification lisp/net/shr.el --- emacs/lisp/net/shr.el~shr-fix-point-modification 2017-12-16 07:32:47.777230050 +0900 +++ emacs-hirofumi/lisp/net/shr.el 2017-12-16 07:35:48.083847035 +0900 @@ -591,9 +591,10 @@ size, and full-buffer size." (defun shr-string-pixel-width (string) (if (not shr-use-fonts) (length string) - (with-temp-buffer - (insert string) - (shr-pixel-column)))) + (save-excursion + (with-temp-buffer + (insert string) + (shr-pixel-column))))) (defsubst shr--translate-insertion-chars () ;; Remove soft hyphens. _ In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.24) of 2017-12-12 built on devron Repository revision: 786907238bcb86ab9e0e2e9ebcc91c52a6eb024c Windowing system distributor 'The X.Org Foundation', version 11.0.11905000 System Description: Debian GNU/Linux testing (buster) Configured using: 'configure --libexecdir=/usr/local/lib --with-x --with-x-toolkit=gtk3 --without-xim --with-xpm --with-jpeg --with-tiff --with-gif --with-png --with-rsvg --with-dbus --with-wide-int --with-modules' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES JSON LCMS2 Important settings: value of $LANG: ja_JP.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix -- OGAWA Hirofumi From unknown Sat Sep 13 12:47:41 2025 X-Loop: help-debbugs@gnu.org Subject: bug#29734: 27.0.50; shr-insert-document modify point of buffer in corner case 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: To: OGAWA Hirofumi Cc: 29734@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 29734-submit@debbugs.gnu.org id=B29734.151343355831840 (code B ref 29734); Sat, 16 Dec 2017 14:13:02 +0000 Received: (at 29734) by debbugs.gnu.org; 16 Dec 2017 14:12:38 +0000 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 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 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 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 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 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 Date: Sat, 16 Dec 2017 16:12:26 +0200 Message-Id: <83h8sqsqwl.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <87shca7sc4.fsf@mail.parknet.co.jp> (message from OGAWA Hirofumi on Sat, 16 Dec 2017 21:47:07 +0900) References: <87shca7sc4.fsf@mail.parknet.co.jp> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > 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. From unknown Sat Sep 13 12:47:41 2025 X-Loop: help-debbugs@gnu.org Subject: bug#29734: 27.0.50; shr-insert-document modify point of buffer in corner case Resent-From: OGAWA Hirofumi Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Dec 2017 17:00: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: To: Eli Zaretskii Cc: 29734@debbugs.gnu.org Received: via spool by 29734-submit@debbugs.gnu.org id=B29734.151344359922541 (code B ref 29734); Sat, 16 Dec 2017 17:00:02 +0000 Received: (at 29734) by debbugs.gnu.org; 16 Dec 2017 16:59:59 +0000 Received: from localhost ([127.0.0.1]:37567 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQFod-0005rV-2L for submit@debbugs.gnu.org; Sat, 16 Dec 2017 11:59:59 -0500 Received: from mail.parknet.co.jp ([210.171.160.6]:59274) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQFoa-0005rK-Px for 29734@debbugs.gnu.org; Sat, 16 Dec 2017 11:59:57 -0500 Received: from ibmpc.myhome.or.jp (server.parknet.ne.jp [210.171.168.39]) by mail.parknet.co.jp (Postfix) with ESMTP id B07B01E0018; Sun, 17 Dec 2017 01:59:52 +0900 (JST) Received: from devron.myhome.or.jp (root@devron.myhome.or.jp [192.168.0.3]) by ibmpc.myhome.or.jp (8.15.2/8.15.2/Debian-9) with ESMTPS id vBGGxp2I014644 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 17 Dec 2017 01:59:52 +0900 Received: from devron.myhome.or.jp (hirofumi@localhost [127.0.0.1]) by devron.myhome.or.jp (8.15.2/8.15.2/Debian-9) with ESMTPS id vBGGxp73002335 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 17 Dec 2017 01:59:51 +0900 Received: (from hirofumi@localhost) by devron.myhome.or.jp (8.15.2/8.15.2/Submit) id vBGGxoGH001956; Sun, 17 Dec 2017 01:59:50 +0900 From: OGAWA Hirofumi References: <87shca7sc4.fsf@mail.parknet.co.jp> <83h8sqsqwl.fsf@gnu.org> Date: Sun, 17 Dec 2017 01:59:50 +0900 In-Reply-To: <83h8sqsqwl.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 16 Dec 2017 16:12:26 +0200") Message-ID: <87k1xm7gmx.fsf@mail.parknet.co.jp> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: > 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. Thanks. It works for me. -- OGAWA Hirofumi From unknown Sat Sep 13 12:47:41 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: OGAWA Hirofumi Subject: bug#29734: closed (Re: bug#29734: 27.0.50; shr-insert-document modify point of buffer in corner case) Message-ID: References: <83zi6ir3pj.fsf@gnu.org> <87shca7sc4.fsf@mail.parknet.co.jp> X-Gnu-PR-Message: they-closed 29734 X-Gnu-PR-Package: emacs Reply-To: 29734@debbugs.gnu.org Date: Sat, 16 Dec 2017 17:20:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1513444803-24357-1" This is a multi-part message in MIME format... ------------=_1513444803-24357-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #29734: 27.0.50; shr-insert-document modify point of buffer in corner case which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 29734@debbugs.gnu.org. --=20 29734: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D29734 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1513444803-24357-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 29734-done) by debbugs.gnu.org; 16 Dec 2017 17:19:04 +0000 Received: from localhost ([127.0.0.1]:37577 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQG75-0006JK-US for submit@debbugs.gnu.org; Sat, 16 Dec 2017 12:19:04 -0500 Received: from eggs.gnu.org ([208.118.235.92]:49782) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQG74-0006Ir-QM for 29734-done@debbugs.gnu.org; Sat, 16 Dec 2017 12:19:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQG6w-0008Ai-AA for 29734-done@debbugs.gnu.org; Sat, 16 Dec 2017 12:18:57 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:36412) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQG6w-0008AV-61; Sat, 16 Dec 2017 12:18:54 -0500 Received: from [176.228.60.248] (port=3569 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eQG6u-0006q6-F2; Sat, 16 Dec 2017 12:18:53 -0500 Date: Sat, 16 Dec 2017 19:18:48 +0200 Message-Id: <83zi6ir3pj.fsf@gnu.org> From: Eli Zaretskii To: OGAWA Hirofumi In-reply-to: <87k1xm7gmx.fsf@mail.parknet.co.jp> (message from OGAWA Hirofumi on Sun, 17 Dec 2017 01:59:50 +0900) Subject: Re: bug#29734: 27.0.50; shr-insert-document modify point of buffer in corner case References: <87shca7sc4.fsf@mail.parknet.co.jp> <83h8sqsqwl.fsf@gnu.org> <87k1xm7gmx.fsf@mail.parknet.co.jp> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 29734-done Cc: 29734-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: OGAWA Hirofumi > Cc: 29734@debbugs.gnu.org > Date: Sun, 17 Dec 2017 01:59:50 +0900 > > Eli Zaretskii writes: > > > 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. > > Thanks. It works for me. Thanks for testing, closing. ------------=_1513444803-24357-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 16 Dec 2017 12:47:27 +0000 Received: from localhost ([127.0.0.1]:36489 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQBsE-0006Lh-Sl for submit@debbugs.gnu.org; Sat, 16 Dec 2017 07:47:27 -0500 Received: from eggs.gnu.org ([208.118.235.92]:48292) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQBsD-0006LU-Ar for submit@debbugs.gnu.org; Sat, 16 Dec 2017 07:47:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQBs6-0001t2-QL for submit@debbugs.gnu.org; Sat, 16 Dec 2017 07:47:20 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:60715) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eQBs6-0001sn-NU for submit@debbugs.gnu.org; Sat, 16 Dec 2017 07:47:18 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39261) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQBs5-0003fK-Ed for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2017 07:47:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQBs0-0001pW-Fw for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2017 07:47:17 -0500 Received: from mail.parknet.co.jp ([210.171.160.6]:35267) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQBrz-0001p1-Ts for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2017 07:47:12 -0500 Received: from ibmpc.myhome.or.jp (server.parknet.ne.jp [210.171.168.39]) by mail.parknet.co.jp (Postfix) with ESMTP id 81FBC1E0018 for ; Sat, 16 Dec 2017 21:47:09 +0900 (JST) Received: from devron.myhome.or.jp (root@devron.myhome.or.jp [192.168.0.3]) by ibmpc.myhome.or.jp (8.15.2/8.15.2/Debian-9) with ESMTPS id vBGCl8Ap012687 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Sat, 16 Dec 2017 21:47:09 +0900 Received: from devron.myhome.or.jp (hirofumi@localhost [127.0.0.1]) by devron.myhome.or.jp (8.15.2/8.15.2/Debian-9) with ESMTPS id vBGCl8OB022557 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Sat, 16 Dec 2017 21:47:08 +0900 Received: (from hirofumi@localhost) by devron.myhome.or.jp (8.15.2/8.15.2/Submit) id vBGCl79D022556; Sat, 16 Dec 2017 21:47:07 +0900 From: OGAWA Hirofumi To: bug-gnu-emacs@gnu.org Subject: 27.0.50; shr-insert-document modify point of buffer in corner case Date: Sat, 16 Dec 2017 21:47:07 +0900 Message-ID: <87shca7sc4.fsf@mail.parknet.co.jp> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Hi, The following is the reproduce code of issue, (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. --- lisp/net/shr.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff -puN lisp/net/shr.el~shr-fix-point-modification lisp/net/shr.el --- emacs/lisp/net/shr.el~shr-fix-point-modification 2017-12-16 07:32:47.777230050 +0900 +++ emacs-hirofumi/lisp/net/shr.el 2017-12-16 07:35:48.083847035 +0900 @@ -591,9 +591,10 @@ size, and full-buffer size." (defun shr-string-pixel-width (string) (if (not shr-use-fonts) (length string) - (with-temp-buffer - (insert string) - (shr-pixel-column)))) + (save-excursion + (with-temp-buffer + (insert string) + (shr-pixel-column))))) (defsubst shr--translate-insertion-chars () ;; Remove soft hyphens. _ In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.24) of 2017-12-12 built on devron Repository revision: 786907238bcb86ab9e0e2e9ebcc91c52a6eb024c Windowing system distributor 'The X.Org Foundation', version 11.0.11905000 System Description: Debian GNU/Linux testing (buster) Configured using: 'configure --libexecdir=/usr/local/lib --with-x --with-x-toolkit=gtk3 --without-xim --with-xpm --with-jpeg --with-tiff --with-gif --with-png --with-rsvg --with-dbus --with-wide-int --with-modules' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES JSON LCMS2 Important settings: value of $LANG: ja_JP.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix -- OGAWA Hirofumi ------------=_1513444803-24357-1-- From unknown Sat Sep 13 12:47:41 2025 X-Loop: help-debbugs@gnu.org Subject: bug#29734: 27.0.50; shr-insert-document modify point of buffer in corner case In-Reply-To: <87shca7sc4.fsf@mail.parknet.co.jp> Resent-From: Katsumi Yamaoka Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 18 Dec 2017 02:55: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: To: eliz@gnu.org Cc: 29734@debbugs.gnu.org, hirofumi@mail.parknet.co.jp Received: via spool by 29734-submit@debbugs.gnu.org id=B29734.151356565122171 (code B ref 29734); Mon, 18 Dec 2017 02:55:02 +0000 Received: (at 29734) by debbugs.gnu.org; 18 Dec 2017 02:54:11 +0000 Received: from localhost ([127.0.0.1]:39515 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQlZB-0005lW-R4 for submit@debbugs.gnu.org; Sun, 17 Dec 2017 21:54:11 -0500 Received: from mail-hampton.hostforweb.net ([205.234.186.191]:38874 helo=hampton.hostforweb.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eQlZ9-0005lI-SK for 29734@debbugs.gnu.org; Sun, 17 Dec 2017 21:54:08 -0500 Received: from s70.gtokyofl21.vectant.ne.jp ([202.215.75.70]:60000 helo=localhost) by hampton.hostforweb.net with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.89) (envelope-from ) id 1eQlZ1-002ruT-Dc; Sun, 17 Dec 2017 20:54:00 -0600 Date: Mon, 18 Dec 2017 11:53:57 +0900 Message-ID: From: Katsumi Yamaoka References: <87shca7sc4.fsf@mail.parknet.co.jp> <83h8sqsqwl.fsf@gnu.org> <87k1xm7gmx.fsf@mail.parknet.co.jp> <83zi6ir3pj.fsf@gnu.org> Organization: Emacsen advocacy group X-Face: #kKnN,xUnmKia.'[pp`; Omh}odZK)?7wQSl"4o04=EixTF+V[""w~iNbM9ZL+.b*_CxUmFk B#Fu[*?MZZH@IkN:!"\w%I_zt>[$nm7nQosZ<3eu; B:$Q_:p!',P.c0-_Cy[dz4oIpw0ESA^D*1Lw= L&i*6&( User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (i686-pc-cygwin) Cancel-Lock: sha1:zZn8R1ea4+ohCRsl0nQyW6Y5noA= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-OutGoing-Spam-Status: No, score=-1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hampton.hostforweb.net X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - jpl.org X-Get-Message-Sender-Via: hampton.hostforweb.net: authenticated_id: yamaoka/from_h X-Authenticated-Sender: hampton.hostforweb.net: yamaoka@jpl.org X-Source: X-Source-Args: X-Source-Dir: X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Sat, 16 Dec 2017 19:18:48 +0200, Eli Zaretskii wrote: > Thanks for testing, closing. The function `shr-string-pixel-width' should return pixel-width, not a position. Fixed in emacs-26.