Georg Brandl avatar Georg Brandl committed c3e8340

Fixed a forever-backtracking regex in the BashLexer (#462).

Comments (0)

Files changed (3)

 * Removed a backwards incompatibility in the LaTeX formatter that caused
   Sphinx to produce invalid commands when writing LaTeX output (#463).
 
+* Fixed a forever-backtracking regex in the BashLexer (#462).
+
 
 Version 1.2.1
 -------------

pygments/lexers/other.py

             (r'&&|\|\|', Operator),
         ],
         'data': [
-            (r'\$?"(\\\\|\\[0-7]+|\\.|[^"])*"', String.Double),
-            (r"\$?'(\\\\|\\[0-7]+|\\.|[^'])*'", String.Single),
+            (r'\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double),
+            (r"\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
             (r';', Text),
             (r'\s+', Text),
             (r'[^=\s\n\[\]{}()$"\'`\\<]+', Text),

pygments/lexers/text.py

             (r'([a-zA-Z0-9_${}.-]+)(\s*)([!?:+]?=)([ \t]*)((?:.*\\\n|.*\n)+)',
              bygroups(Name.Variable, Text, Operator, Text, using(BashLexer))),
             # strings
-            (r'"(\\\\|\\"|[^"])*"', String.Double),
-            (r"'(\\\\|\\'|[^'])*'", String.Single),
+            (r'"(\\\\|\\.|[^"\\])*"', String.Double),
+            (r"'(\\\\|\\.|[^'\\])*'", String.Single),
             # targets
             (r'([^\n:]+)(:+)([ \t]*)', bygroups(Name.Function, Operator, Text),
              'block-header'),
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.