aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Bavier <bavier@posteo.net>2020-02-03 23:06:09 -0600
committerTobias Geerinckx-Rice <me@tobias.gr>2020-02-04 12:30:32 +0100
commitf1452776ac65bd03454b1e715c44f7eded237ea0 (patch)
tree0c811ffd2929c499156706776a9ed523a5563f27
parent52e7bcfd8959a1e2b66a6b313d2c82ce7779da63 (diff)
downloadguix-f1452776ac65bd03454b1e715c44f7eded237ea0.tar.gz
guix-f1452776ac65bd03454b1e715c44f7eded237ea0.zip
gnu: netsurf: Fix entity parsing.
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. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
-rw-r--r--gnu/packages/web.scm11
1 files 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 <rekado@elephly.net>
;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
@@ -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)))