Commit 4aea320a9e4c6988e4079884c974230bbc5193d0

Martin Mitas 2024-01-09T02:25:05

md_is_html_comment: Reflect updated spec.txt. * Accept "<!-->" and "<!--->" as valid HTML comments. * HTML comment now can contain "--"

diff --git a/src/md4c.c b/src/md4c.c
index 511773c..00736cd 100644
--- a/src/md4c.c
+++ b/src/md4c.c
@@ -1233,26 +1233,13 @@ md_is_html_comment(MD_CTX* ctx, const MD_LINE* lines, MD_SIZE n_lines, OFF beg, 
         return FALSE;
     if(CH(off+1) != _T('!')  ||  CH(off+2) != _T('-')  ||  CH(off+3) != _T('-'))
         return FALSE;
-    off += 4;
 
-    /* ">" and "->" must not follow the opening. */
-    if(off < lines[0].end  &&  CH(off) == _T('>'))
-        return FALSE;
-    if(off+1 < lines[0].end  &&  CH(off) == _T('-')  &&  CH(off+1) == _T('>'))
-        return FALSE;
-
-    /* HTML comment must not contain "--", so we scan just for "--" instead
-     * of "-->" and verify manually that '>' follows. */
-    if(md_scan_for_html_closer(ctx, _T("--"), 2,
-                lines, n_lines, off, max_end, p_end, &ctx->html_comment_horizon))
-    {
-        if(*p_end < max_end  &&  CH(*p_end) == _T('>')) {
-            *p_end = *p_end + 1;
-            return TRUE;
-        }
-    }
+    /* Skip only "<!" so that we accept also "<!-->" or "<!--->" */
+    off += 2;
 
-    return FALSE;
+    /* Scan for ordinary comment closer "-->". */
+    return md_scan_for_html_closer(ctx, _T("-->"), 3,
+                lines, n_lines, off, max_end, p_end, &ctx->html_comment_horizon);
 }
 
 static int