]> git.lyx.org Git - lyx.git/blobdiff - lib/lyx2lyx/lyx_1_6.py
Don't use widest label for numerical citations.
[lyx.git] / lib / lyx2lyx / lyx_1_6.py
index 8a33eaace795b63508bd4aea6a506df195dc17d2..2d0964c3afeab7f80a4da853715b9c4feea507ea 100644 (file)
@@ -14,7 +14,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 """ Convert files to the file format generated by lyx 1.6"""
 
@@ -22,11 +22,27 @@ import re
 import unicodedata
 import sys, os
 
-from parser_tools import find_token, find_end_of, find_tokens, get_value, get_value_string
+from parser_tools import find_token, find_end_of, find_tokens, get_value
 
 ####################################################################
 # Private helper functions
 
+
+def get_value_string(lines, token, start, end = 0, trim = False, default = ""):
+    """ get_value_string(lines, token, start[[, end], trim, default]) -> string
+
+    Return tokens after token as string, in lines, where
+    token is the first element. When trim is used, the first and last character
+    of the string is trimmed."""
+
+    val = get_value(lines, token, start, end, "")
+    if not val:
+      return default
+    if trim:
+      return val[1:-1]
+    return val
+
+
 def find_end_of_inset(lines, i):
     " Find end of inset, where lines[i] is included."
     return find_end_of(lines, i, "\\begin_inset", "\\end_inset")
@@ -35,7 +51,7 @@ def find_end_of_inset(lines, i):
 # DO NOT do this:
 #   document.body[i] = wrap_insert_ert(...)
 # wrap_into_ert may returns a multiline string, which should NOT appear
-# in document.body. Insetad, do something like this:
+# in document.body. Instead, do something like this:
 #   subst = wrap_inset_ert(...)
 #   subst = subst.split('\n')
 #   document.body[i:i+1] = subst
@@ -422,6 +438,7 @@ def convert_ltcaption(document):
         j = find_end_of_inset(document.body, i + 1)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of tabular.")
+            i += 1
             continue
 
         nrows = int(document.body[i+1].split('"')[3])
@@ -513,6 +530,7 @@ def convert_tablines(document):
         j = find_end_of_inset(document.body, i + 1)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of tabular.")
+            i += 1
             continue
 
         m = i + 1
@@ -572,9 +590,10 @@ def revert_tablines(document):
         i = find_token(document.body, "\\begin_inset Tabular", i)
         if i == -1:
             return
-        j = find_end_of_inset(document.body, i + 1)
+        j = find_end_of_inset(document.body, i)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of tabular.")
+            i += 1
             continue
 
         m = i + 1
@@ -651,6 +670,7 @@ def fix_wrong_tables(document):
         j = find_end_of_inset(document.body, i + 1)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of tabular.")
+            i += 1
             continue
 
         m = i + 1
@@ -773,7 +793,7 @@ def convert_flex(document):
         document.body[i] = document.body[i].replace('\\begin_inset CharStyle', '\\begin_inset Flex')
 
 def revert_flex(document):
-    "Convert Flex to CharStyle"
+    "Revert Flex to CharStyle"
     i = 0
     while True:
         i = find_token(document.body, "\\begin_inset Flex", i)
@@ -953,6 +973,8 @@ def remove_inzip_options(document):
         if j == -1:
             # should not happen
             document.warning("Malformed LyX document: Could not find end of graphics inset.")
+            i += 1
+            continue
         # If there's a inzip param, just remove that
         k = find_token(document.body, "\tinzipName", i + 1, j)
         if k != -1:
@@ -1241,6 +1263,8 @@ def revert_inset_info(document):
         if j == -1:
             # should not happen
             document.warning("Malformed LyX document: Could not find end of Info inset.")
+            i += 1
+            continue
         type = 'unknown'
         arg = ''
         for k in range(i, j+1):
@@ -1576,7 +1600,7 @@ def convert_macro_global(document):
     "Remove TeX code command \global when it is in front of a macro"
     # math macros are nowadays already defined \global, so that an additional
     # \global would make the document uncompilable, see
-    # http://bugzilla.lyx.org/show_bug.cgi?id=5371
+    # http://www.lyx.org/trac/ticket/5371
     # We're looking for something like this:
     # \begin_inset ERT
     # status collapsed
@@ -1760,7 +1784,7 @@ def revert_module_names(document):
     return
   newmodlist = []
   for mod in modlist:
-    if modulemap.has_key(mod):
+    if mod in modulemap:
       newmodlist.append(modulemap[mod])
     else:
       document.warning("Can't find module %s in the module map!" % mod)
@@ -1798,19 +1822,24 @@ def revert_framed_notes(document):
         if j == -1:
             # should not happen
             document.warning("Malformed LyX document: Could not find end of Box inset.")
+            i += 1
+            continue
         k = find_token(document.body, "status", i + 1, j)
         if k == -1:
             document.warning("Malformed LyX document: Missing `status' tag in Box inset.")
-            return
+            i = j
+            continue
         status = document.body[k]
         l = find_default_layout(document, i + 1, j)
         if l == -1:
             document.warning("Malformed LyX document: Missing `\\begin_layout' in Box inset.")
-            return
+            i = j
+            continue
         m = find_token(document.body, "\\end_layout", i + 1, j)
         if m == -1:
             document.warning("Malformed LyX document: Missing `\\end_layout' in Box inset.")
-            return
+            i = j
+            continue
         ibox = find_token(document.body, "has_inner_box 1", i + 1, k)
         pbox = find_token(document.body, "use_parbox 1", i + 1, k)
         if ibox == -1 and pbox == -1:
@@ -1873,7 +1902,8 @@ def revert_nobreakdash(document):
             j = find_token(document.header, "\\use_amsmath", 0)
             if j == -1:
                 document.warning("Malformed LyX document: Missing '\\use_amsmath'.")
-                return
+                i += 1
+                continue
             document.header[j] = "\\use_amsmath 2"
         else:
             i = i + 1
@@ -2047,7 +2077,8 @@ def revert_rotfloat(document):
         l = find_default_layout(document, i + 1, j)
         if l == -1:
             document.warning("Malformed LyX document: Missing `\\begin_layout' in Float inset.")
-            return
+            i = j
+            continue
         subst = ['\\begin_layout Standard',
                   '\\begin_inset ERT',
                   'status collapsed', '',
@@ -2109,7 +2140,8 @@ def revert_widesideways(document):
         l = find_default_layout(document, i + 1, j)
         if l == -1:
             document.warning("Malformed LyX document: Missing `\\begin_layout' in Float inset.")
-            return
+            i = j
+            continue
         subst = ['\\begin_layout Standard', '\\begin_inset ERT',
                   'status collapsed', '',
                   '\\begin_layout Standard', '', '', '\\backslash',
@@ -2268,7 +2300,7 @@ def revert_subfig(document):
                 if opt != -1:
                     optend = find_end_of_inset(document.body, opt)
                     if optend == -1:
-                        document.warning("Malformed lyx document: Missing '\\end_inset' (OptArg).")
+                        document.warning("Malformed LyX document: Missing '\\end_inset' (OptArg).")
                         return
                     optc = find_default_layout(document, opt, optend)
                     if optc == -1:
@@ -2378,6 +2410,7 @@ def revert_spaceinset(document):
         j = find_end_of_inset(document.body, i)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of space inset.")
+            i += 1
             continue
         document.body[i] = document.body[i].replace('\\begin_inset Space', '\\InsetSpace')
         del document.body[j]
@@ -2480,6 +2513,7 @@ def revert_protected_hfill(document):
         j = find_end_of_inset(document.body, i)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of space inset.")
+            i += 1
             continue
         del document.body[j]
         subst = document.body[i].replace('\\begin_inset Space \\hspace*{\\fill}', \
@@ -2501,6 +2535,7 @@ def revert_leftarrowfill(document):
         j = find_end_of_inset(document.body, i)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of space inset.")
+            i += 1
             continue
         del document.body[j]
         subst = document.body[i].replace('\\begin_inset Space \\leftarrowfill{}', \
@@ -2522,6 +2557,7 @@ def revert_rightarrowfill(document):
         j = find_end_of_inset(document.body, i)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of space inset.")
+            i += 1
             continue
         del document.body[j]
         subst = document.body[i].replace('\\begin_inset Space \\rightarrowfill{}', \
@@ -2543,6 +2579,7 @@ def revert_upbracefill(document):
         j = find_end_of_inset(document.body, i)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of space inset.")
+            i += 1
             continue
         del document.body[j]
         subst = document.body[i].replace('\\begin_inset Space \\upbracefill{}', \
@@ -2564,6 +2601,7 @@ def revert_downbracefill(document):
         j = find_end_of_inset(document.body, i)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of space inset.")
+            i += 1
             continue
         del document.body[j]
         subst = document.body[i].replace('\\begin_inset Space \\downbracefill{}', \
@@ -2631,6 +2669,7 @@ def revert_pagebreaks(document):
         j = find_end_of_inset(document.body, i)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of Newpage inset.")
+            i += 1
             continue
         del document.body[j]
         document.body[i] = document.body[i].replace('\\begin_inset Newpage newpage', '\\newpage')
@@ -2667,6 +2706,7 @@ def revert_linebreaks(document):
         j = find_end_of_inset(document.body, i)
         if j == -1:
             document.warning("Malformed LyX document: Could not find end of Newline inset.")
+            i += 1
             continue
         del document.body[j]
         document.body[i] = document.body[i].replace('\\begin_inset Newline newline', '\\newline')
@@ -2839,7 +2879,7 @@ def update_apa_styles(document):
 
 def convert_paper_sizes(document):
     ' exchange size options legalpaper and executivepaper to correct order '
-    # routine is needed to fix http://bugzilla.lyx.org/show_bug.cgi?id=4868
+    # routine is needed to fix http://www.lyx.org/trac/ticket/4868
     i = 0
     j = 0
     i = find_token(document.header, "\\papersize executivepaper", 0)