# HG changeset patch # User Franz Glasner # Date 1777050070 -7200 # Node ID bbef0ac6cfcf406020297ff832c88b806e7a19cd # Parent 193ee1eb5013ca1322497983e9f5a10a69bddc44 FIX: Proper string parsing: explicitely error out when single-line strings contain a linefeed diff -r 193ee1eb5013 -r bbef0ac6cfcf pygments_lexer_pseudocode2/bases.py --- a/pygments_lexer_pseudocode2/bases.py Fri Apr 24 18:22:23 2026 +0200 +++ b/pygments_lexer_pseudocode2/bases.py Fri Apr 24 19:01:10 2026 +0200 @@ -9,7 +9,7 @@ from pygments.lexer import RegexLexer, combined, bygroups, include -from pygments.token import Number, String, Comment +from pygments.token import Error, Name, Number, String, Comment class LexBase(RegexLexer): @@ -56,6 +56,7 @@ # SPDX-SnippetBegin # SPDX-License-Identifier: BSD-2-Clause # SPDX-SnippetCopyrightText: Copyright 2006-2023 by the Pygments team +# SPDX-SnippetCopyrightText: Copyright 2026 by Franz Glasner # 'py-numbers': [ (r'(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)' @@ -97,12 +98,14 @@ 'py-dqs': [ (r'"', String.Double, '#pop'), (r'\\\\|\\"|\\\n', String.Escape), # included here for raw strings - include('py-strings-double') + include('py-strings-double'), + (r'\n', Error), # added by fag ], 'py-sqs': [ (r"'", String.Single, '#pop'), (r"\\\\|\\'|\\\n", String.Escape), # included here for raw strings - include('py-strings-single') + include('py-strings-single'), + (r'\n', Error), # added by fag ], 'py-tdqs': [ (r'"""', String.Double, '#pop'), diff -r 193ee1eb5013 -r bbef0ac6cfcf tests/test_pseudo.py --- a/tests/test_pseudo.py Fri Apr 24 18:22:23 2026 +0200 +++ b/tests/test_pseudo.py Fri Apr 24 19:01:10 2026 +0200 @@ -68,8 +68,7 @@ self.assertTokenStreamEqual( [("String.Single", "'"), ("String.Single", "HUHU"), - ("Text.Whitespace", "\n"), - ("Error", "H"), + ("Error", "\n"), ], pygments.lex("'HUHU\nHEHE'", self.lexer)) @@ -114,8 +113,7 @@ self.assertTokenStreamEqual( [("String.Double", '"'), ("String.Double", "HUHU"), - ("Text.Whitespace", "\n"), - ("Error", "H"), + ("Error", "\n"), ], pygments.lex('"HUHU\nHEHE"', self.lexer))