From 1efdc11296b0acf98d1180e18c0daa3e9a79bfec Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Wed, 7 Aug 2024 09:11:35 +0200 Subject: [PATCH] lyx_pot.py: Fix regex for \Format Each token could be delimited by quotation marks or not. The previous regexes only considered this for two tokens and hence produced wrong matches for cases such as \Format gnuplot "gp, gnuplot, plt" "Gnuplot" "" "" "" "vector" "text/plain" where the extension list wasn't parsed as a single token. --- po/lyx_pot.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/po/lyx_pot.py b/po/lyx_pot.py index 76111bb71e..236ac2861b 100755 --- a/po/lyx_pot.py +++ b/po/lyx_pot.py @@ -572,18 +572,15 @@ def external_l10n(input_files, output, base): def formats_l10n(input_files, output, base): '''Generate pot file from configure.py''' output = io.open(output, 'w', encoding='utf_8', newline='\n') - GuiName = re.compile(r'.*\\Format\s+\S+\s+\S+\s+"([^"]*)"\s+(\S*)\s+.*', re.IGNORECASE) - GuiName2 = re.compile(r'.*\\Format\s+\S+\s+\S+\s+([^"]\S+)\s+(\S*)\s+.*', re.IGNORECASE) + # \Format "shortname" "ext1, ext2..." "name" "shortcut" (quotation marks optional in each group) + GuiName = re.compile(r'.*\\Format\s+(""|"[^"]+"|\S+)\s+(""|"[^"]+"|\S+)\s+(""|"[^"]+"|\S+)\s+(""|"[^"]+"|\S+)\s+.*', re.IGNORECASE) input = io.open(input_files[0], encoding='utf_8') for lineno, line in enumerate(input.readlines()): label = "" labelsc = "" if GuiName.match(line): - label = GuiName.match(line).group(1) - shortcut = GuiName.match(line).group(2).replace('"', '') - elif GuiName2.match(line): - label = GuiName2.match(line).group(1) - shortcut = GuiName2.match(line).group(2).replace('"', '') + label = GuiName.match(line).group(3) + shortcut = GuiName.match(line).group(4).replace('"', '') else: continue label = label.replace('\\', '\\\\').replace('"', '')