In HTML5 anchors should not be closed when encountering divs, for example, but should be closed when encountering buttons, for example. Many sites that use HTML5-style anchors end up having links displayed with zero-length link texts. The proposed patch correct this behaviour by detecting whether the document is HTML5, then suppressing the close-anchor action in CLOSE_A if it's an HTML5 document. A new macro handles the HTML5-specific cases where anchors are not already always closed.
This also fixes a bug in the tokenizing FSM in etc.c that prevented the !doctype element from being recognized; the fix is necessary because HTML5 detection depends on checking the !doctype element.
This commit is contained in:
2
tests/a1.expected
Normal file
2
tests/a1.expected
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
test
|
1
tests/a1.html
Normal file
1
tests/a1.html
Normal file
@@ -0,0 +1 @@
|
||||
<a href="example"><div>test</div></a>
|
1
tests/a2.expected
Normal file
1
tests/a2.expected
Normal file
@@ -0,0 +1 @@
|
||||
test
|
3
tests/a2.html
Normal file
3
tests/a2.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<a href="example"><div>test</div></a>
|
31
tests/run_tests
Normal file
31
tests/run_tests
Normal file
@@ -0,0 +1,31 @@
|
||||
total=0
|
||||
pass=0
|
||||
fail=0
|
||||
w3m="../w3m
|
||||
-config
|
||||
/dev/null
|
||||
-o
|
||||
ignore_null_img_alt=false"
|
||||
for i in *.html; do
|
||||
cmd="$w3m
|
||||
-I
|
||||
utf-8
|
||||
-O
|
||||
utf-8
|
||||
-T
|
||||
text/html"
|
||||
opts="`basename "$i" .html`.opts"
|
||||
test -f "$opts" && cmd="$cmd
|
||||
`grep -v '^#' $opts`"
|
||||
if (set -x;IFS='
|
||||
';$cmd) < "$i" | diff -u - "`basename "$i" .html`.expected"; then
|
||||
pass="`expr 1 + "$pass"`"
|
||||
else
|
||||
fail="`expr 1 + "$fail"`"
|
||||
fi
|
||||
total="`expr 1 + "$total"`"
|
||||
done
|
||||
echo "TOTAL: $total test(s)"
|
||||
echo "PASS : $pass"
|
||||
echo "FAIL : $fail"
|
||||
test 0 -eq "$fail"
|
Reference in New Issue
Block a user