Subject: [PATCH] gnu: netsurf: Fix entity parsing.
From: Eric Bavier <[email-masked]>
To: [email-masked]
Cc: Eric Bavier <[email-masked]>
Date: Mon, 3 Feb 2020 23:06:09 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

From: Eric Bavier <[email-masked]>

From: Eric Bavier <[email-masked]>

Follow-up to commit 31afa654c58cd7aa8bd11a771fa6eabcd766d443.

* gnu/packages/web.scm (netsurf)[arguments]: In 'adjust-welcome' phase, ensure
html entities are parsed and find their way back to the output.
---
 gnu/packages/web.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index f6ae958ae3..60fd5cfd0f 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2018 Raoul Jean Pierre Bonnal <[email-masked]>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <[email-masked]>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Eric Bavier <[email-masked]>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <[email-masked]>
 ;;; Copyright © 2015 Eric Dvorsak <[email-masked]>
 ;;; Copyright © 2016 Sou Bunnbu <[email-masked]>
 ;;; Copyright © 2016 Jelle Licht <[email-masked]>
@@ -5075,12 +5075,19 @@ w3c webidl files and a binding configuration file.")
                  ;; Leave the DOCTYPE header as is.
                  (display (read-line in 'concat) out)
                  (sxml->xml
-                  (let rec ((sxml (xml->sxml in)))
+                  (let rec ((sxml (xml->sxml in
+					     #:default-entity-handler
+					     (lambda (port name)
+					       (string-append "<ENTITY>"
+							      (symbol->string name)
+							      "</ENTITY>")))))
                     ;; We'd like to use sxml-match here, but it can't
                     ;; match against generic tag symbols...
                     (match sxml
                       (`(div (@ (class "links")) . ,rest)
                        '())
+		      (`(ENTITY ,ent)
+		       `(*ENTITY* ,ent))
                       ((x ...)
                        (map rec x))
                       (x x)))
-- 
2.25.0