make python string compliant with python 2 and 3

python 2 does not allow to declare a string as raw byte so we double
the backslashes and remove the r preffix

python 3 accepts rb"..." meaning a byte string that is raw. In this context
raw means that the backslash does not has any special meaning and thus it
is not escaped. This is usefull together with regular expressions where the
backslashes are special.

In the worst possible case, like this one, we must use 4 backslashes to represent
one in the regular expression...
This commit is contained in:
José Matos 2017-05-09 16:53:32 +01:00
parent e51ccbf70d
commit 6495cd135f

View File

@ -161,7 +161,9 @@ def extract_metrics_info(dvipng_stdout):
def fix_latex_file(latex_file, pdf_output):
def_re = re.compile(rb"(\\newcommandx|\\global\\long\\def)(\\[a-zA-Z]+)")
# python 2 does not allow to declare a string as raw byte so we double
# the backslashes and remove the r preffix
def_re = re.compile(rb"(\\\\newcommandx|\\\\global\\\\long\\\\def)(\\\\[a-zA-Z]+)")
tmp = mkstemp()