From 48c9ec565d0a8e147adb61eb79777812688bfbaa Mon Sep 17 00:00:00 2001 From: Ambrose Li Date: Mon, 24 Aug 2020 23:48:09 -0400 Subject: 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. --- fm.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'fm.h') diff --git a/fm.h b/fm.h index 4a17ecc..330fd09 100644 --- a/fm.h +++ b/fm.h @@ -661,6 +661,7 @@ struct readbuffer { #endif /* FORMAT_NICE */ #define RB_DEL 0x100000 #define RB_S 0x200000 +#define RB_HTML5 0x400000 #define RB_GET_ALIGN(obuf) ((obuf)->flag&RB_ALIGN) #define RB_SET_ALIGN(obuf,align) {(obuf)->flag &= ~RB_ALIGN; (obuf)->flag |= (align); } @@ -673,7 +674,7 @@ struct readbuffer { RB_SET_ALIGN(obuf,(obuf)->flag_stack[--(obuf)->flag_sp]); \ } -/* status flags */ +/* state of token scanning finite state machine */ #define R_ST_NORMAL 0 /* normal */ #define R_ST_TAG0 1 /* within tag, just after < */ #define R_ST_TAG 2 /* within tag */ -- cgit v1.2.3