aboutsummaryrefslogtreecommitdiffstats
path: root/etc.c
diff options
context:
space:
mode:
authorAmbrose Li <ambrose.li@gmail.com>2020-08-25 03:48:09 +0000
committerAmbrose Li <ambrose.li@gmail.com>2020-08-25 03:48:09 +0000
commit48c9ec565d0a8e147adb61eb79777812688bfbaa (patch)
treed249686b321e535348c1426eddfa10b610ef5858 /etc.c
parentUpdate ChangeLog (diff)
downloadw3m-48c9ec565d0a8e147adb61eb79777812688bfbaa.tar.gz
w3m-48c9ec565d0a8e147adb61eb79777812688bfbaa.zip
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.
Diffstat (limited to '')
-rw-r--r--etc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/etc.c b/etc.c
index 37c4f15..16d1295 100644
--- a/etc.c
+++ b/etc.c
@@ -727,6 +727,11 @@ next_status(char c, int *status)
case '>':
*status = R_ST_NORMAL;
break;
+ case 'D':
+ case 'd':
+ /* could be a !doctype */
+ *status = R_ST_TAG;
+ break;
default:
*status = R_ST_IRRTAG;
}