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 ;