mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
LibWeb: Change a few source end positions in HTMLTokenizer
This patch aims to fix wrong highlighting for some cases in HTML's syntax highlighter. The values were somewhat experimentally determined are are subject to change. Regardless, it should be more correct with this patch than without it. :^)
This commit is contained in:
parent
44c438d0ca
commit
282a623853
Notes:
sideshowbarker
2024-07-18 16:52:52 +09:00
Author: https://github.com/MaxWipfli Commit: https://github.com/SerenityOS/serenity/commit/282a623853f Pull-request: https://github.com/SerenityOS/serenity/pull/7768 Issue: https://github.com/SerenityOS/serenity/issues/7349 Reviewed-by: https://github.com/alimpfard
|
@ -276,6 +276,7 @@ _StartOfFunction:
|
|||
{
|
||||
log_parse_error();
|
||||
create_new_token(HTMLToken::Type::Comment);
|
||||
m_current_token.m_start_position = nth_last_position(2);
|
||||
RECONSUME_IN(BogusComment);
|
||||
}
|
||||
ON_EOF
|
||||
|
@ -301,7 +302,7 @@ _StartOfFunction:
|
|||
}
|
||||
ON('/')
|
||||
{
|
||||
m_current_token.m_end_position = nth_last_position(1);
|
||||
m_current_token.m_end_position = nth_last_position(0);
|
||||
SWITCH_TO(SelfClosingStartTag);
|
||||
}
|
||||
ON('>')
|
||||
|
@ -325,7 +326,7 @@ _StartOfFunction:
|
|||
ON_EOF
|
||||
{
|
||||
log_parse_error();
|
||||
m_current_token.m_end_position = nth_last_position(1);
|
||||
m_current_token.m_end_position = nth_last_position(0);
|
||||
EMIT_EOF;
|
||||
}
|
||||
ANYTHING_ELSE
|
||||
|
@ -370,6 +371,7 @@ _StartOfFunction:
|
|||
DONT_CONSUME_NEXT_INPUT_CHARACTER;
|
||||
if (consume_next_if_match("--")) {
|
||||
create_new_token(HTMLToken::Type::Comment);
|
||||
m_current_token.m_start_position = nth_last_position(4);
|
||||
SWITCH_TO(CommentStart);
|
||||
}
|
||||
if (consume_next_if_match("DOCTYPE", CaseSensitivity::CaseInsensitive)) {
|
||||
|
@ -1053,6 +1055,7 @@ _StartOfFunction:
|
|||
}
|
||||
ON('=')
|
||||
{
|
||||
m_current_token.m_tag.attributes.last().name_end_position = nth_last_position(1);
|
||||
SWITCH_TO(BeforeAttributeValue);
|
||||
}
|
||||
ON_ASCII_UPPER_ALPHA
|
||||
|
@ -1214,7 +1217,7 @@ _StartOfFunction:
|
|||
{
|
||||
ON_WHITESPACE
|
||||
{
|
||||
m_current_token.m_tag.attributes.last().value_end_position = nth_last_position(2);
|
||||
m_current_token.m_tag.attributes.last().value_end_position = nth_last_position(1);
|
||||
SWITCH_TO(BeforeAttributeName);
|
||||
}
|
||||
ON('&')
|
||||
|
@ -1224,7 +1227,7 @@ _StartOfFunction:
|
|||
}
|
||||
ON('>')
|
||||
{
|
||||
m_current_token.m_tag.attributes.last().value_end_position = nth_last_position(2);
|
||||
m_current_token.m_tag.attributes.last().value_end_position = nth_last_position(1);
|
||||
SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data);
|
||||
}
|
||||
ON(0)
|
||||
|
@ -1274,7 +1277,7 @@ _StartOfFunction:
|
|||
|
||||
BEGIN_STATE(AfterAttributeValueQuoted)
|
||||
{
|
||||
m_current_token.m_tag.attributes.last().value_end_position = nth_last_position(2);
|
||||
m_current_token.m_tag.attributes.last().value_end_position = nth_last_position(1);
|
||||
ON_WHITESPACE
|
||||
{
|
||||
SWITCH_TO(BeforeAttributeName);
|
||||
|
|
Loading…
Reference in a new issue