]> git.lyx.org Git - lyx.git/blobdiff - lib/lyx2lyx/LyX.py
* doc/cs_Tutorial.lyx: update by Pavel Sanda
[lyx.git] / lib / lyx2lyx / LyX.py
index 80b6dc48ef44b404fcbaf1b9013adf88393d768e..65ea344a83db3b39ffca99dc145302a3afbe1d7f 100644 (file)
@@ -73,7 +73,7 @@ format_relation = [("0_06",    [200], generate_minor_versions("0.6" , 4)),
                    ("1_2",     [220], generate_minor_versions("1.2" , 4)),
                    ("1_3",     [221], generate_minor_versions("1.3" , 7)),
                    ("1_4", range(222,246), generate_minor_versions("1.4" , 3)),
-                   ("1_5", range(246,249), generate_minor_versions("1.5" , 0))]
+                   ("1_5", range(246,255), generate_minor_versions("1.5" , 0))]
 
 
 def formats_list():
@@ -108,7 +108,9 @@ def trim_eol(line):
         return line[:-1]
 
 
-def get_encoding(language, inputencoding):
+def get_encoding(language, inputencoding, format):
+    if format > 248:
+        return "utf8"
     from lyx2lyx_lang import lang
     if inputencoding == "auto":        
         return lang[language][3]
@@ -124,7 +126,11 @@ def get_encoding(language, inputencoding):
 #
 class LyX_Base:
     """This class carries all the information of the LyX file."""
-    def __init__(self, end_format = 0, input = "", output = "", error = "", debug = default_debug_level, try_hard = 0):
+    
+    def __init__(self, end_format = 0, input = "", output = "", error
+                 = "", debug = default_debug_level, try_hard = 0, language = "english",
+                 encoding = "auto"):
+        
         """Arguments:
         end_format: final format that the file should be converted. (integer)
         input: the name of the input source, if empty resort to standard input.
@@ -157,6 +163,8 @@ class LyX_Base:
         self.preamble = []
         self.body = []
         self.status = 0
+        self.encoding = encoding
+        self.language = language
 
 
     def warning(self, message, debug_level= default_debug_level):
@@ -218,7 +226,7 @@ class LyX_Base:
         self.format  = self.read_format()
         self.language = get_value(self.header, "\\language", 0, default = "english")
         self.inputencoding = get_value(self.header, "\\inputencoding", 0, default = "auto")
-        self.encoding = get_encoding(self.language, self.inputencoding)
+        self.encoding = get_encoding(self.language, self.inputencoding, self.format)
         self.initial_version = self.read_version()
 
         # Second pass over header and preamble, now we know the file encoding
@@ -239,6 +247,8 @@ class LyX_Base:
         " Writes the LyX file to self.output."
         self.set_version()
         self.set_format()
+        if self.encoding == "auto":
+            self.encoding = get_encoding(self.language, self.encoding, self.format)
 
         if self.preamble:
             i = find_token(self.header, '\\textclass', 0) + 1