From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stephen Berman Newsgroups: gmane.emacs.bugs Subject: bug#23057: 25.0.92; shr wrongly adds two newlines to div element Date: Fri, 18 Mar 2016 23:18:29 +0100 Message-ID: <87a8lvig5m.fsf@gmx.net> References: <87lh5fijaq.fsf@gmx.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1458339564 24396 80.91.229.3 (18 Mar 2016 22:19:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 18 Mar 2016 22:19:24 +0000 (UTC) To: 23057@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Mar 18 23:19:09 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ah2jd-0000Bc-6G for geb-bug-gnu-emacs@m.gmane.org; Fri, 18 Mar 2016 23:19:09 +0100 Original-Received: from localhost ([::1]:46600 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ah2jc-0007rT-Ca for geb-bug-gnu-emacs@m.gmane.org; Fri, 18 Mar 2016 18:19:08 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42660) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ah2jZ-0007rM-3t for bug-gnu-emacs@gnu.org; Fri, 18 Mar 2016 18:19:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ah2jV-0002Ub-UZ for bug-gnu-emacs@gnu.org; Fri, 18 Mar 2016 18:19:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:55913) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ah2jV-0002UV-RA for bug-gnu-emacs@gnu.org; Fri, 18 Mar 2016 18:19:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ah2jV-0005Kj-I6 for bug-gnu-emacs@gnu.org; Fri, 18 Mar 2016 18:19:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stephen Berman Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 18 Mar 2016 22:19:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23057 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 23057-submit@debbugs.gnu.org id=B23057.145833952020474 (code B ref 23057); Fri, 18 Mar 2016 22:19:01 +0000 Original-Received: (at 23057) by debbugs.gnu.org; 18 Mar 2016 22:18:40 +0000 Original-Received: from localhost ([127.0.0.1]:53040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ah2jA-0005KA-03 for submit@debbugs.gnu.org; Fri, 18 Mar 2016 18:18:40 -0400 Original-Received: from mout.gmx.net ([212.227.15.19]:56155) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ah2j7-0005Jv-T5 for 23057@debbugs.gnu.org; Fri, 18 Mar 2016 18:18:38 -0400 Original-Received: from rosalinde ([89.245.111.176]) by mail.gmx.com (mrgmx003) with ESMTPSA (Nemesis) id 0MILxX-1aeYQ51743-0049hD for <23057@debbugs.gnu.org>; Fri, 18 Mar 2016 23:18:30 +0100 In-Reply-To: <87lh5fijaq.fsf@gmx.net> (Stephen Berman's message of "Fri, 18 Mar 2016 22:10:37 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.92 (gnu/linux) X-Provags-ID: V03:K0:O3dFSVeuNhyeBlMJJ0AhITJ9adXD3sS00UrPy+2uwImtvvq1Z+D MyMfMoZGATpcHfkuAwwKvc7X3XLrKg1KMW46TW77SgXf49Fl/koc7kl2pQ6NFh6oQqWZ+Yi XhToSBVjMwGwKAnAYFwPN/JBWzpDV/wK+qhtpdAoPFPbA3EbXM+jSGeOOvnpEeCUk1MqYnX ops/pG3AwwCd+G2HVHRIA== X-UI-Out-Filterresults: notjunk:1;V01:K0:AGwlX2GiXiY=:Gu4KKaKytLqt2W0cJJQOiL 7QkyrRbLzUPAClRRBOCc2EBzZUFtuOVtHZFZUE/eXLdcyRpjwOnm5+SiWEAXjFTUUerUz6uGL ZsW5bKJwXSduH6fw4lTDDUFhFsz5oJNruHnv10gCjOAYItmOTfh78zTixj7vCtXAzJX8T3sgs dx9bIEN4KgLBb/rZiWjtq6uXQmcY9WzM8Wtp+W+RBYER/w2UDQXrX6+WLlyxwCYBHkRjadoTA 0VAaGtF0ueQVqBRAnzWjDSie6zO8Xrh40pelREyOl2xhy4qvH1kuczD1ZRJVXBtMomObGZQkw DYoSqoptZgbPu1Qozg1nHkZ6bVxPhmJC60W9UZhQViqv/HG+6KOkWc9TkeP8kQ34hSqW399pS WJaokF3x6z9p7MmFAozXuKu7ATP4JsV58twtq1f25EwouNPoC9T7ySL37+UPjGfqy2osl/66w 7WXAYpDWjR3GJUylcv34oV90QP5+ALosmJ+P8Ahq+vouiOy31/luwhZm8hEORDPVUe6fKQOC2 ifkhfXuDoe4RcnT3y71sih2ImgPCKlI6BvzrvkedEeHhPk5GYfT2NxriUd/ZheyHJCkbQPMJJ YkYINDiMUy0FMC6YRw4R8MsZDBvsYGz+vIT2iKhpaVg5RGKivYX5sXnWGC1hTMlxRhcIC8fXk fscrBvyW4ZfEkfC/aO+Lfr8+rsK592sOB//Le0Jj1nmxJgfE3rUeI44hsIdckzmcnT/wPyWMY 8NyUXjevb2iv1ur4LDPTLquCV4J2Iic8MhgumuVA2+dFYKSdMR8EF15byRvH17T+sT8EOMUp 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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:115062 Archived-At: On Fri, 18 Mar 2016 22:10:37 +0100 Stephen Berman wrote: > The following patch fixes this display problem for me, but I'm not > familiar enough either with shr or with all the details of HTML block > elements to be sure this is a sufficient or even correct fix. > > diff --git a/lisp/net/shr.el b/lisp/net/shr.el > index e943132..d9dcda3 100644 > --- a/lisp/net/shr.el > +++ b/lisp/net/shr.el > @@ -812,6 +812,9 @@ shr-ensure-paragraph > (line-end-position)) > (line-end-position))))) > (delete-region (match-beginning 0) (match-end 0))) > + ((eq (dom-tag dom) 'div) > + ;;
contains no block element; do nothing. > + ) > (t > (insert "\n\n")))))) Oops, I overlooked that `dom' is unbound here; it's dynamically bound when called from shr-tag-div, but that may be a problem elsewhere. Here's a cleaner alternative, but it's probably too ad hoc for a real fix: diff --git a/lisp/net/shr.el b/lisp/net/shr.el index e943132..6350dfb 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -786,7 +786,7 @@ shr-ensure-newline (unless (zerop (current-column)) (insert "\n"))) -(defun shr-ensure-paragraph () +(defun shr-ensure-paragraph (&optional dom) (unless (bobp) (let ((prefix (get-text-property (line-beginning-position) 'shr-prefix-length))) @@ -812,6 +812,10 @@ shr-ensure-paragraph (line-end-position)) (line-end-position))))) (delete-region (match-beginning 0) (match-end 0))) + ((and dom + (eq (dom-tag dom) 'div)) + ;;
contains no block element; do nothing. + ) (t (insert "\n\n")))))) @@ -1206,7 +1210,7 @@ shr-tag-p (shr-ensure-paragraph)) (defun shr-tag-div (dom) - (shr-ensure-paragraph) + (shr-ensure-paragraph dom) (shr-generic dom) (shr-ensure-newline))