From 6dac68d5935233c484c1ddd97c7e8b401fd41835 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sun, 30 Nov 2014 09:33:39 -0600 Subject: [PATCH] html.parser: Strip trailing slashes / in html tags. Add unit test. Fixes #1233. --- extra/html/parser/parser-tests.factor | 31 +++++++++++++++++++++++++++ extra/html/parser/parser.factor | 6 ++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/extra/html/parser/parser-tests.factor b/extra/html/parser/parser-tests.factor index 2876d03b16..9607712bab 100644 --- a/extra/html/parser/parser-tests.factor +++ b/extra/html/parser/parser-tests.factor @@ -96,3 +96,34 @@ V{ ] [ "" parse-html ] unit-test + +! Issue #1233, trailing / in tags +{ + V{ + T{ tag + { name "img" } + { attributes H{ { "src" "http://factorcode.org" } } } + } + } +} +[ "" parse-html ] unit-test + +{ + V{ + T{ tag + { name "img" } + { attributes H{ { "src" "http://factorcode.org" } } } + } + } +} +[ "" parse-html ] unit-test + +{ + V{ + T{ tag + { name "img" } + { attributes H{ { "src" "http://factorcode.org" } } } + } + } +} +[ "" parse-html ] unit-test diff --git a/extra/html/parser/parser.factor b/extra/html/parser/parser.factor index f31aaba698..3b42e1b092 100644 --- a/extra/html/parser/parser.factor +++ b/extra/html/parser/parser.factor @@ -75,8 +75,10 @@ SYMBOL: tagstack [ advance advance read-comment ] [ read-dtd ] if ; : read-tag ( sequence-parser -- string ) - [ [ current "><" member? ] take-until ] - [ dup current CHAR: < = [ advance ] unless drop ] bi ; + [ + [ current "><" member? ] take-until + [ CHAR: / = ] trim-tail + ] [ dup current CHAR: < = [ advance ] unless drop ] bi ; : read-until-< ( sequence-parser -- string ) [ current CHAR: < = ] take-until ;