]> git.lyx.org Git - features.git/commitdiff
Fix bug #9162: Missing \use_indices
authorGeorg Baum <baum@lyx.org>
Wed, 9 Jul 2014 18:58:44 +0000 (20:58 +0200)
committerGeorg Baum <baum@lyx.org>
Wed, 9 Jul 2014 18:58:44 +0000 (20:58 +0200)
The lyx2lyx conversion for format 352 was incomplete: It should have been
added the \use_indices setting, but it relied on the fact that the default in
LyX for missing \use_indices is the same as the old format without that
setting used. However, the default might change in the future, and later
lyx2lyx conversions rely on that setting as well.

lib/lyx2lyx/LyX.py
lib/lyx2lyx/lyx_2_0.py
lib/lyx2lyx/lyx_2_1.py
status.21x

index 5d8a052494ff4f823fc8ff0f65565dd48957920f..e3a57b7bd4d653284c0ee3ca050d0e0ddcec2e6d 100644 (file)
@@ -714,6 +714,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):
@@ -742,6 +743,7 @@ class File(LyX_base):
 #            "\\use_amsmath 1",
 #            "\\cite_engine basic",
 #            "\\use_bibtopic false",
+#            "\\use_indices false",
 #            "\\paperorientation portrait",
 #            "\\secnumdepth 3",
 #            "\\tocdepth 3",
index 2756418f88d09afb0671878977800b6a8f525584..7914cc499542c9f1359fd52dd9767b7414677dfe 100644 (file)
@@ -317,11 +317,33 @@ def revert_backgroundcolor(document):
         '\\pagecolor{page_backgroundcolor}'])
 
 
-def revert_splitindex(document):
-    " Reverts splitindex-aware documents "
+def add_use_indices(document):
+    " Add \\use_indices if it is missing "
     i = find_token(document.header, '\\use_indices', 0)
+    if i != -1:
+        return i
+    i = find_token(document.header, '\\use_bibtopic', 0)
+    if i == -1:
+        i = find_token(document.header, '\\cite_engine', 0)
+    if i == -1:
+        i = find_token(document.header, '\\use_mathdots', 0)
+    if i == -1:
+        i = find_token(document.header, '\\use_mhchem', 0)
+    if i == -1:
+        i = find_token(document.header, '\\use_esint', 0)
+    if i == -1:
+        i = find_token(document.header, '\\use_amsmath', 0)
     if i == -1:
         document.warning("Malformed LyX document: Missing \\use_indices.")
+        return -1
+    document.header.insert(i + 1, '\\use_indices 0')
+    return i + 1
+
+
+def revert_splitindex(document):
+    " Reverts splitindex-aware documents "
+    i = add_use_indices(document)
+    if i == -1:
         return
     useindices = str2bool(get_value(document.header, "\\use_indices", i))
     del document.header[i]
@@ -398,6 +420,7 @@ def revert_splitindex(document):
 
 def convert_splitindex(document):
     " Converts index and printindex insets to splitindex-aware format "
+    add_use_indices(document)
     i = 0
     while True:
         i = find_token(document.body, "\\begin_inset Index", i)
@@ -422,9 +445,8 @@ def convert_splitindex(document):
 
 def revert_subindex(document):
     " Reverts \\printsubindex CommandInset types "
-    i = find_token(document.header, '\\use_indices', 0)
+    i = add_use_indices(document)
     if i == -1:
-        document.warning("Malformed LyX document: Missing \\use_indices.")
         return
     useindices = str2bool(get_value(document.header, "\\use_indices", i))
     i = 0
@@ -448,9 +470,8 @@ def revert_subindex(document):
 
 def revert_printindexall(document):
     " Reverts \\print[sub]index* CommandInset types "
-    i = find_token(document.header, '\\use_indices', 0)
+    i = add_use_indices(document)
     if i == -1:
-        document.warning("Malformed LyX document: Missing \\use_indices.")
         return
     useindices = str2bool(get_value(document.header, "\\use_indices", i))
     i = 0
index ae95841fa5d35cbf7a44e19a5f5520120467b397..f9b1e32b63cf865ed309d1bb5adbdc986687b6fd 100644 (file)
@@ -409,9 +409,15 @@ def revert_japanese_encodings(document):
 
 def convert_justification(document):
     " Add the \\justification buffer param"
-    i = find_token(document.header, "\\use_indices" , 0)
+    i = find_token(document.header, "\\suppress_date" , 0)
     if i == -1:
-        document.warning("Malformed LyX document: Missing \\use_indices.")
+        i = find_token(document.header, "\\paperorientation" , 0)
+    if i == -1:
+        i = find_token(document.header, "\\use_indices" , 0)
+    if i == -1:
+        i = find_token(document.header, "\\use_bibtopic" , 0)
+    if i == -1:
+        document.warning("Malformed LyX document: Missing \\suppress_date.")
         return
     document.header.insert(i + 1, "\\justification true")
 
index 11f13d99696707fbb14c9f5ffc5ca78304aa9f71..05220090166d732df45d441b56a94e89a27975a3 100644 (file)
@@ -55,6 +55,8 @@ What's new
 
 * LYX2LYX
 
+- Fix warning "Missing \use_indices" when converting from 1.6.x format or older
+
 
 
 * USER INTERFACE