X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fscripts%2Fprefs2prefs_prefs.py;h=68b4d837dc2bdd01e6702999c3d6cd4c4e0c5a9c;hb=933a7dee00aed0401c7b0a6f4adf222f6b46ab86;hp=8d02f711e37317731057df1ab9acc4f830a396a1;hpb=abbc07026bb5b6747095113f5b06340eae785dcd;p=lyx.git diff --git a/lib/scripts/prefs2prefs_prefs.py b/lib/scripts/prefs2prefs_prefs.py index 8d02f711e3..68b4d837dc 100644 --- a/lib/scripts/prefs2prefs_prefs.py +++ b/lib/scripts/prefs2prefs_prefs.py @@ -1,7 +1,6 @@ -#! /usr/bin/env python # -*- coding: utf-8 -*- -# file prefs2prefs-lfuns.py +# file prefs2prefs-prefs.py # This file is part of LyX, the document processor. # Licence details can be found in the file COPYING. @@ -41,6 +40,62 @@ # Incremented to format 8, 288c1e0f by rgh # Add "nice" flag for converters +# No conversion necessary. + +# Incremented to format 9, a18af620 by spitz +# Remove default_language rc. + +# Incremented to format 10, 4985015 by tommaso +# Add close_buffer_with_last_view in preferences. +# No conversion necessary. + +# Incremented to format 11, by gb +# Split pdf format into pdf and pdf6 + +# Incremented to format 12, by vfr +# Add option to use the system's theme icons +# No conversion necessary. + +# Incremented to format 13, by bh +# Rename mac_like_word_movement to mac_like_cursor_movement + +# Incremented to format 14, by spitz +# New RC default_otf_view_format +# No conversion necessary. + +# Incremented to format 15, by prannoy +# Add fullscreen_statusbar +# No conversion necessary. + +# Incremented to format 16, by lasgouttes +# Remove force_paint_single_char rc. + +# Incremented to format 17, by lasgouttes +# Remove rtl_support rc. + +# Incremented to format 18, by ef +# Add option to allow saving the document directory +# No conversion necessary. + +# Incremented to format 19, by rgh +# remove print support + +# Incremented to format 20, by tommaso +# Add options to forbid/ignore 'needauth' option +# No conversion necessary. + +# Incremented to format 21, by spitz +# Add jbibtex_alternatives, allow "automatic" value +# of bibtex_command and jbibtex_command (actually the +# default now) +# No conversion necessary. + +# Incremented to format 22, by ef +# Add pygmentize_command for the python pygments syntax highlighter +# No conversion necessary. + +# NOTE: The format should also be updated in LYXRC.cpp and +# in configure.py. import re @@ -66,7 +121,7 @@ def get_format(line): return entries elif not line[i].isspace(): beg = i - while not line[i].isspace(): + while i < len(line) and not line[i].isspace(): i = i + 1 end = i entries.append(line[beg:end]) @@ -83,21 +138,22 @@ def simple_renaming(line, old, new): no_match = (False, []) -######################## -### Format 1 conversions +###################################### +### Format 1 conversions (for LyX 2.0) 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", - "\\use_spell_lib") + "\\plaintext_roff_command", "\\use_alt_language", + "\\use_escape_chars", "\\use_input_encoding", + "\\use_personal_dictionary", "\\use_pspell", + "\\use_spell_lib") line = line.lower().lstrip() for tag in tags: if line.lower().startswith(tag): return (True, "") return no_match + def language_use_babel(line): if not line.lower().startswith("\language_use_babel"): return no_match @@ -110,9 +166,11 @@ 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"', re.IGNORECASE) def latex_flavor(line): if not line.lower().startswith("\\converter"): @@ -137,6 +195,7 @@ def latex_flavor(line): return (True, "\\converter \"%s\" \"%s\" \"%s\" \"latex=%s\"" % (conv, fmat, args, flavor)) + emre = re.compile(r'^\\format\s+(.*)\s+"(document[^"]*?)"', re.IGNORECASE) def export_menu(line): if not line.lower().startswith("\\format"): @@ -149,6 +208,11 @@ def export_menu(line): return (True, "\\Format %s \"%s,menu=export\"" % (fmat, opts)) +# End format 1 conversions (for LyX 2.0) +######################################## + +################################# +# Conversions from LyX 2.0 to 2.1 zipre = re.compile(r'^\\format\s+("?dia"?\s+.*)\s+"([^"]*?)"', re.IGNORECASE) def zipped_native(line): if not line.lower().startswith("\\format"): @@ -219,12 +283,89 @@ def add_mime_types(line): converted = converted + ' ""' return (True, converted) +re_converter = re.compile(r'^\\converter\s+', re.IGNORECASE) + +def split_pdf_format(line): + # strictly speaking, a new format would not require to bump the + # version number, but the old pdf format was hardcoded at several + # places in the C++ code, so an update seemed like a good idea. + if line.lower().startswith("\\format"): + entries = get_format(line) + if entries[1] == 'pdf': + if len(entries) < 6: + viewer = '' + else: + viewer = entries[5] + converted = line.replace('application/pdf', '') + ''' +\Format pdf6 pdf "PDF (graphics)" "" "''' + viewer + '" "" "vector" "application/pdf"' + return (True, converted) + elif line.lower().startswith("\\viewer_alternatives") or \ + line.lower().startswith("\\editor_alternatives"): + entries = get_format(line) + if entries[1] == 'pdf': + converted = line + "\n" + entries[0] + ' pdf6 "' + entries[2] + '"' + return (True, converted) + elif re_converter.match(line): + entries = get_format(line) + # The only converter from pdf that is touched is pdf->eps: + # All other converters are likely meant for further processing on export. + # The only converter to pdf that stays untouched is dvi->pdf: + # All other converters are likely meant for graphics. + if len(entries) > 2 and \ + ((entries[1] == 'pdf' and entries[2] == 'eps') or \ + (entries[1] != 'ps' and entries[2] == 'pdf')): + if entries[1] == 'pdf': + converted = entries[0] + ' pdf6 ' + entries[2] + else: + converted = entries[0] + ' ' + entries[1] + ' pdf6' + i = 3 + while i < len(entries): + converted = converted + ' "' + entries[i] + '"' + i = i + 1 + return (True, converted) + return no_match + +def remove_default_language(line): + if not line.lower().startswith("\\default_language"): + return no_match + return (True, "") + +def mac_cursor_movement(line): + return simple_renaming(line, "\\mac_like_word_movement", "\\mac_like_cursor_movement") + +# End conversions for LyX 2.0 to 2.1 +#################################### + -######################## +################################# +# Conversions from LyX 2.1 to 2.2 + +def remove_force_paint_single_char(line): + if not line.lower().startswith("\\force_paint_single_char"): + return no_match + return (True, "") + +def remove_rtl(line): + if not line.lower().startswith("\\rtl "): + return no_match + return (True, "") + +def remove_print_support(line): + tags = ("\\printer", "\\print_adapt_output", "\\print_command", + "\\print_evenpage_flag", "\\print_oddpage_flag", "\\print_pagerange_flag", + "\\print_copies_flag", "\\print_collcopies_flag", "\\print_reverse_flag", + "\\print_to_printer", "\\print_to_file", "\\print_file_extension") + line = line.lower().lstrip() + for tag in tags: + if line.lower().startswith(tag): + return (True, "") + return no_match +# End conversions for LyX 2.1 to 2.2 +#################################### conversions = [ - [ 1, [ # this will be a long list of conversions to format 1 + [ 1, [ # there were several conversions for format 1 export_menu, latex_flavor, remove_obsolete, @@ -237,5 +378,19 @@ conversions = [ [ 5, []], [ 6, []], [ 7, [add_mime_types]], - [ 8, []] + [ 8, []], + [ 9, [ remove_default_language ]], + [ 10, []], + [ 11, [split_pdf_format]], + [ 12, []], + [ 13, [mac_cursor_movement]], + [ 14, []], + [ 15, []], + [ 16, [remove_force_paint_single_char]], + [ 17, [remove_rtl]], + [ 18, []], + [ 19, [remove_print_support]], + [ 20, []], + [ 21, []], + [ 22, []] ]