X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fscripts%2Fprefs2prefs_prefs.py;h=5ce10511bce434564cb85dde500db2c19ccb39e9;hb=c0bbc020a56e0e55fe4a07230ab6d9851fef0c24;hp=8eb3d2e65a336de20731861002b61d24a493ef61;hpb=f97bc9b9e754367c325f04448975993aafb152e7;p=lyx.git diff --git a/lib/scripts/prefs2prefs_prefs.py b/lib/scripts/prefs2prefs_prefs.py index 8eb3d2e65a..5ce10511bc 100644 --- a/lib/scripts/prefs2prefs_prefs.py +++ b/lib/scripts/prefs2prefs_prefs.py @@ -16,29 +16,135 @@ # 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 -current_format = 1 ########################################################### # # 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", - "\\use_escape_chars", "\\use_input_encoding", - "\\use_personal_dictionary", "\\use_pspell") - line = line.lstrip() - for tag in tags: - if line.startswith(tag): - return (True, "") - return no_match + tags = ("\\use_tempdir", "\\spell_command", "\\personal_dictionary", + "\\plaintext_roff_command", "\\use_alt_language", + "\\use_escape_chars", "\\use_input_encoding", + "\\use_personal_dictionary", "\\use_pspell", + "\\use_spell_lib") + line = line.lstrip() + for tag in tags: + if line.startswith(tag): + return (True, "") + return no_match + +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)') + m = re_lub.match(line) + val = m.group(1) + newval = '0' + if val == 'false': + newval = '3' + 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 - remove_obsolete - ] # end 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, + language_package + ]], + [ 2, []], + [ 3, [ zipped_native ]], + [ 4, [ remove_default_papersize ]], + [ 5, []], ]