From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?=C5=81ukasz?= Stelmach Newsgroups: gmane.emacs.bugs Subject: bug#45355: 26.1; shr-tag-base doesn't handle properly Date: Mon, 21 Dec 2020 21:35:57 +0100 Message-ID: <87zh26ucb6.fsf%steelman@post.pl> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29891"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) To: 45355@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Dec 21 21:37:35 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1krRvy-0007h1-Ox for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 21 Dec 2020 21:37:34 +0100 Original-Received: from localhost ([::1]:46328 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1krRvx-0001Y4-Nm for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 21 Dec 2020 15:37:33 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48842) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krRvT-0001G4-5M for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 15:37:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36837) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1krRvS-0004Cq-PP for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 15:37:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1krRvS-00043U-NH for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 15:37:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: =?UTF-8?Q?=C5=81ukasz?= Stelmach Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 21 Dec 2020 20:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 45355 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.160858298115520 (code B ref -1); Mon, 21 Dec 2020 20:37:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 21 Dec 2020 20:36:21 +0000 Original-Received: from localhost ([127.0.0.1]:48383 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krRum-00042F-Rk for submit@debbugs.gnu.org; Mon, 21 Dec 2020 15:36:21 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:36266) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krRuk-000427-CP for submit@debbugs.gnu.org; Mon, 21 Dec 2020 15:36:18 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48680) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krRuj-0008Es-W4 for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 15:36:18 -0500 Original-Received: from mx.post.pl ([89.161.251.167]:48362 helo=post.home.pl) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krRui-0003ri-Be for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 15:36:17 -0500 Original-Received: from localhost (tor-exit-1.zbau.f3netze.de [185.220.100.252]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail02.home.net.pl (Postfix) with ESMTPSA id 4FCCA22058 for ; Mon, 21 Dec 2020 21:36:10 +0100 (CET) X-Hashcash: 1:24:201221:bug-gnu-emacs@gnu.org::j1A8ZB2TowyBybRc:VaG X-VADE-SPAMSTATE: spam:medium X-VADE-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedujedrvddtvddgudegfecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfjqffogffrnfdpggftiffpkfenuceurghilhhouhhtmecuudehtdenucgoufhprghmkfhpucdlfedttddmnecujfgurhephffvufffkfgfgggtsehmtderredtreejnecuhfhrohhmpefnuhhkrghsiigpufhtvghlmhgrtghhuceoshhtvggvlhhmrghnsehpohhsthdrphhlqeenucggtffrrghtthgvrhhnpeeuieeigefhkeefleevgfeitedujedvledtleegtedvueeluddvtdeggfetgfeghfenucfkphepudekhedrvddvtddruddttddrvdehvdenucfuphgrmhfkphepudekhedrvddvtddruddttddrvdehvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpedukeehrddvvddtrddutddtrddvhedvpdhhvghloheplhhotggrlhhhohhsthdpmhgrihhlfhhrohhmpeeprehuthhfqdekrefsreepveehpeekudhukhgrshiipgfuthgvlhhmrggthherpecuoehsthgvvghlmhgrnhesphhoshhtrdhplheqpdhrtghpthhtohepsghughdqghhnuhdqvghmrggtshesghhnuhdrohhrgh X-DCC--Metrics: mail02.home.net.pl 1024; Body=1 Fuz1=1 Fuz2=1 Received-SPF: pass client-ip=89.161.251.167; envelope-from=steelman@post.pl; helo=post.home.pl X-Spam_score_int: -5 X-Spam_score: -0.6 X-Spam_bar: / X-Spam_report: (-0.6 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_BL_SPAMCOP_NET=1.347, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:196551 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable For what it's worth, W3C HTML Validator claims that a document with an empty string in the href attribute of a base tag is valid. I found such document recently in my INBOX and Gnus was unable to display it correctly because the second string-match in shr-parse-base breaks when local is nil. My solution is not to call shr-parse-base not only when href is not present but also when href is an empty string. The patch has been crated on the current master branch. --=20 Kind regards, =C5=81ukasz Stelmach --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Handle-gracefully-href-in-base-tags.patch >From f92e8b8ab5b6f0970611c91cf80e418712ed2b58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Stelmach?= Date: Mon, 21 Dec 2020 21:07:28 +0100 Subject: [PATCH] Handle gracefully href="" in base tags * net/shr.el (shr-tag-base): shr-parse-base can't handle empty strings gracefully. Don't call it unless href is a non-empty string. --- lisp/net/shr.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lisp/net/shr.el b/lisp/net/shr.el index 2e5dd5ffa5..150ad88d4c 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -1516,8 +1516,9 @@ ones, in case fg and bg are nil." plist))) (defun shr-tag-base (dom) - (when-let* ((base (dom-attr dom 'href))) - (setq shr-base (shr-parse-base base))) + (let* ((base (dom-attr dom 'href))) + (when (> (length base) 0) + (setq shr-base (shr-parse-base base)))) (shr-generic dom)) (defun shr-tag-a (dom) -- 2.20.1 --=-=-=--