mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-30 16:28:48 +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: 282a623853
Pull-request: https://github.com/SerenityOS/serenity/pull/7768
Issue: https://github.com/SerenityOS/serenity/issues/7349
Reviewed-by: https://github.com/alimpfard
1 changed files with 8 additions and 5 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue