X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fscripts%2Fprefs2prefs_prefs.py;h=5ce10511bce434564cb85dde500db2c19ccb39e9;hb=c0bbc020a56e0e55fe4a07230ab6d9851fef0c24;hp=936b95711f5807c8444a62503bc59ce1311d93fe;hpb=bc176dc904dbce62615949e70cbb562ea79c6a58;p=lyx.git diff --git a/lib/scripts/prefs2prefs_prefs.py b/lib/scripts/prefs2prefs_prefs.py index 936b95711f..5ce10511bc 100644 --- a/lib/scripts/prefs2prefs_prefs.py +++ b/lib/scripts/prefs2prefs_prefs.py @@ -16,13 +16,41 @@ # where the Bool says if we've modified anything and the NewLine is # the new line, if so, which will be used to replace the old line. +# Incremented to format 2, r39670 by jrioux +# Support for multiple file extensions per format. +# No conversion necessary. + +# Incremented to format 3, r39705 by tommaso +# Support for file formats that are natively (g)zipped. +# We must add the flag zipped=native to formats that +# were previously hardcoded in the C++ source: dia. + +# Incremented to format 4, r40028 by vfr +# Remove support for default paper size. + +# Incremented to format 5, r40030 by vfr +# Add a default length unit. +# No conversion necessary. + + +import re + ########################################################### # # Conversion chain +def simple_renaming(line, old, new): + if line.find(old) == -1: + return no_match + line = line.replace(old, new) + return (True, line) + no_match = (False, []) +######################## +### Format 1 conversions + def remove_obsolete(line): tags = ("\\use_tempdir", "\\spell_command", "\\personal_dictionary", "\\plaintext_roff_command", "\\use_alt_language", @@ -38,7 +66,7 @@ def remove_obsolete(line): def language_use_babel(line): if not line.startswith("\language_use_babel"): return no_match - re_lub = re.compile(r'^\\language_use_babel\s+(true|false)') + re_lub = re.compile(r'^\\language_use_babel\s+"?(true|false)') m = re_lub.match(line) val = m.group(1) newval = '0' @@ -47,9 +75,76 @@ def language_use_babel(line): newline = "\\language_package_selection " + newval return (True, newline) +def language_package(line): + return simple_renaming(line, "\\language_package", "\\language_custom_package") + +lfre = re.compile(r'^\\converter\s+"?(\w+)"?\s+"?(\w+)"?\s+"([^"]*?)"\s+"latex"') +def latex_flavor(line): + if not line.startswith("\\converter"): + return no_match + m = lfre.match(line) + if not m: + return no_match + conv = m.group(1) + fmat = m.group(2) + args = m.group(3) + conv2fl = { + "luatex": "lualatex", + "pplatex": "latex", + "xetex": "xelatex", + } + if conv in conv2fl.keys(): + flavor = conv2fl[conv] + else: + flavor = conv + if flavor == "latex": + return no_match + return (True, + "\\converter \"%s\" \"%s\" \"%s\" \"latex=%s\"" % (conv, fmat, args, flavor)) + +emre = re.compile(r'^\\[Ff]ormat\s+(.*)\s+"(document[^"]*?)"') +def export_menu(line): + if not line.lower().startswith("\\format"): + return no_match + m = emre.match(line) + if not m: + return no_match + fmat = m.group(1) + opts = m.group(2) + return (True, + "\\Format %s \"%s,menu=export\"" % (fmat, opts)) + +zipre = re.compile(r'^\\[Ff]ormat\s+("?dia"?\s+.*)\s+"([^"]*?)"') +def zipped_native(line): + if not line.lower().startswith("\\format"): + return no_match + m = zipre.match(line) + if not m: + return no_match + fmat = m.group(1) + opts = m.group(2) + return (True, + "\\Format %s \"%s,zipped=native\"" % (fmat, opts)) + +def remove_default_papersize(line): + if not line.startswith("\\default_papersize"): + return no_match + return (True, "") + + +######################## + + conversions = [ - [ # this will be a long list of conversions for format 0 + [ 1, [ # this will be a long list of conversions to format 1 + export_menu, + latex_flavor, remove_obsolete, - language_use_babel - ] # end conversions for format 0 + language_use_babel, + language_package + ]], + [ 2, []], + [ 3, [ zipped_native ]], + [ 4, [ remove_default_papersize ]], + [ 5, []], ]