[LyX/master] lyxpreview_tools.py: fix a regular expression

Scott Kostyshak skostysh at lyx.org
Sun Feb 16 02:40:46 UTC 2020

commit 562917dc1c37d84b538f4d7da1ef3f7ed48116f7
Author: Scott Kostyshak <skostysh at lyx.org>
Date:   Sat Feb 15 13:27:45 2020 -0500

    lyxpreview_tools.py: fix a regular expression
    Three backslashes are needed before a LaTeX command, not one. Before
    this commit, the code gave the following error with Python >= 3.6:
      re.error: bad escape \g at position 29
    This error was introduced with Python 3.6, as documented [1] by the
    following line of documentation:
      Changed in version 3.6: Unknown escapes in pattern consisting of
      '\' and an ASCII letter now are errors.
    Although previous Python versions did not give an error, the regular
    expression was not working as intended: for example, the "\\n" in
    "\\newcommandx" would be interpreted as a new line.
    [1] https://docs.python.org/3.6/library/re.html#re.sub
 lib/scripts/lyxpreview_tools.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lib/scripts/lyxpreview_tools.py b/lib/scripts/lyxpreview_tools.py
index 05c5aad..9396408 100644
--- a/lib/scripts/lyxpreview_tools.py
+++ b/lib/scripts/lyxpreview_tools.py
@@ -219,7 +219,7 @@ def write_metrics_info(metrics_info, metrics_file):
 # Reads a .tex files and create an identical file but only with
 # pages whose index is in pages_to_keep
 def filter_pages(source_path, destination_path, pages_to_keep):
-    def_re = re.compile(b"(\\newcommandx|\\renewcommandx|\\global\\long\\def)(\\[a-zA-Z]+)(.+)")
+    def_re = re.compile(b"(\\\\newcommandx|\\\\renewcommandx|\\\\global\\\\long\\\\def)(\\[a-zA-Z]+)(.+)")
     source_file = open(source_path, "rb")
     destination_file = open(destination_path, "wb")

More information about the lyx-cvs mailing list