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:
		
							
								
								
									
										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