]> git.lyx.org Git - lyx.git/blobdiff - lib/lyx2lyx/LyX.py
Pass parameters by reference (performance)
[lyx.git] / lib / lyx2lyx / LyX.py
index 7e0276199b07d9f3c5b60fb27927942b076d0c1d..fdfa34d0a1171b1a65038bdc34a6fd5ee7f58482 100644 (file)
@@ -33,7 +33,7 @@ try:
     import lyx2lyx_version
     version__ = lyx2lyx_version.version
 except: # we are running from build directory so assume the last version
-    version__ = '2.1'
+    version__ = '2.2'
 
 default_debug__ = 2
 
@@ -64,6 +64,7 @@ def minor_versions(major, last_minor_version):
 format_re = re.compile(r"(\d)[\.,]?(\d\d)")
 fileformat = re.compile(r"\\lyxformat\s*(\S*)")
 original_version = re.compile(r".*?LyX ([\d.]*)")
+original_tex2lyx_version = re.compile(r".*?tex2lyx ([\d.]*)")
 
 ##
 # file format information:
@@ -82,8 +83,9 @@ format_relation = [("0_06",    [200], minor_versions("0.6" , 4)),
                    ("1_4", range(222,246), minor_versions("1.4" , 5)),
                    ("1_5", range(246,277), minor_versions("1.5" , 7)),
                    ("1_6", range(277,346), minor_versions("1.6" , 10)),
-                   ("2_0", range(347,414), minor_versions("2.0", 0)),
-                   ("2_1",     [], minor_versions("2.1", 0))
+                   ("2_0", range(346,414), minor_versions("2.0", 8)),
+                   ("2_1", range(414,475), minor_versions("2.1", 0)),
+                   ("2_2", range(475,483), minor_versions("2.2", 0))
                   ]
 
 ####################################################################
@@ -145,6 +147,9 @@ def get_backend(textclass):
 
 def trim_eol(line):
     " Remove end of line char(s)."
+    if line[-1] != '\n' and line[-1] != '\r':
+        # May happen for the last line of a document
+        return line
     if line[-2:-1] == '\r':
         return line[:-2]
     else:
@@ -412,12 +417,16 @@ class LyX_base:
                 return None
 
             line = line.replace("fix",".")
-            result = original_version.match(line)
+            # need to test original_tex2lyx_version first because tex2lyx
+            # writes "#LyX file created by tex2lyx 2.2"
+            result = original_tex2lyx_version.match(line)
+            if not result:
+                result = original_version.match(line)
+                if result:
+                    # Special know cases: reLyX and KLyX
+                    if line.find("reLyX") != -1 or line.find("KLyX") != -1:
+                        return "0.12"
             if result:
-                # Special know cases: reLyX and KLyX
-                if line.find("reLyX") != -1 or line.find("KLyX") != -1:
-                    return "0.12"
-
                 res = result.group(1)
                 if not res:
                     self.warning(line)
@@ -711,6 +720,7 @@ class File(LyX_base):
         self.read()
 
 
+# FIXME: header settings are completely outdated, don't use like this
 #class NewFile(LyX_base):
 #    " This class is to create new LyX files."
 #    def set_header(self, **params):
@@ -739,6 +749,7 @@ class File(LyX_base):
 #            "\\use_amsmath 1",
 #            "\\cite_engine basic",
 #            "\\use_bibtopic false",
+#            "\\use_indices false",
 #            "\\paperorientation portrait",
 #            "\\secnumdepth 3",
 #            "\\tocdepth 3",