]> git.lyx.org Git - features.git/commitdiff
These commands should just take some lines.
authorRichard Heck <rgheck@comcast.net>
Fri, 5 Nov 2010 17:35:53 +0000 (17:35 +0000)
committerRichard Heck <rgheck@comcast.net>
Fri, 5 Nov 2010 17:35:53 +0000 (17:35 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36131 a592a061-630c-0410-9148-cb99ea01b6c8

lib/lyx2lyx/lyx2lyx_tools.py
lib/lyx2lyx/lyx_2_0.py

index 626e500c394552615ebabdc790a70baf7f587716..35da97f643ab0b4b171f02a90898829c8346d66b 100644 (file)
@@ -283,104 +283,105 @@ def latex_length(slen):
     return (percent, slen)
 
 
-def revert_flex_inset(document, name, LaTeXname, position):
+def revert_flex_inset(lines, name, LaTeXname):
   " Convert flex insets to TeX code "
-  i = position
+  i = 0
   while True:
-    i = find_token(document.body, '\\begin_inset Flex ' + name, i)
+    i = find_token(lines, '\\begin_inset Flex ' + name, i)
     if i == -1:
       return
-    z = find_end_of_inset(document.body, i)
+    z = find_end_of_inset(lines, i)
     if z == -1:
-      document.warning("Malformed LyX document: Can't find end of Flex " + name + " inset.")
-      return
+      document.warning("Can't find end of Flex " + name + " inset.")
+      i += 1
+      continue
     # remove the \end_inset
-    document.body[z - 2:z + 1] = put_cmd_in_ert("}")
+    lines[z - 2:z + 1] = put_cmd_in_ert("}")
     # we need to reset character layouts if necessary
-    j = find_token(document.body, '\\emph on', i, z)
-    k = find_token(document.body, '\\noun on', i, z)
-    l = find_token(document.body, '\\series', i, z)
-    m = find_token(document.body, '\\family', i, z)
-    n = find_token(document.body, '\\shape', i, z)
-    o = find_token(document.body, '\\color', i, z)
-    p = find_token(document.body, '\\size', i, z)
-    q = find_token(document.body, '\\bar under', i, z)
-    r = find_token(document.body, '\\uuline on', i, z)
-    s = find_token(document.body, '\\uwave on', i, z)
-    t = find_token(document.body, '\\strikeout on', i, z)
+    j = find_token(lines, '\\emph on', i, z)
+    k = find_token(lines, '\\noun on', i, z)
+    l = find_token(lines, '\\series', i, z)
+    m = find_token(lines, '\\family', i, z)
+    n = find_token(lines, '\\shape', i, z)
+    o = find_token(lines, '\\color', i, z)
+    p = find_token(lines, '\\size', i, z)
+    q = find_token(lines, '\\bar under', i, z)
+    r = find_token(lines, '\\uuline on', i, z)
+    s = find_token(lines, '\\uwave on', i, z)
+    t = find_token(lines, '\\strikeout on', i, z)
     if j != -1:
-      document.body.insert(z - 2, "\\emph default")
+      lines.insert(z - 2, "\\emph default")
     if k != -1:
-      document.body.insert(z - 2, "\\noun default")
+      lines.insert(z - 2, "\\noun default")
     if l != -1:
-      document.body.insert(z - 2, "\\series default")
+      lines.insert(z - 2, "\\series default")
     if m != -1:
-      document.body.insert(z - 2, "\\family default")
+      lines.insert(z - 2, "\\family default")
     if n != -1:
-      document.body.insert(z - 2, "\\shape default")
+      lines.insert(z - 2, "\\shape default")
     if o != -1:
-      document.body.insert(z - 2, "\\color inherit")
+      lines.insert(z - 2, "\\color inherit")
     if p != -1:
-      document.body.insert(z - 2, "\\size default")
+      lines.insert(z - 2, "\\size default")
     if q != -1:
-      document.body.insert(z - 2, "\\bar default")
+      lines.insert(z - 2, "\\bar default")
     if r != -1:
-      document.body.insert(z - 2, "\\uuline default")
+      lines.insert(z - 2, "\\uuline default")
     if s != -1:
-      document.body.insert(z - 2, "\\uwave default")
+      lines.insert(z - 2, "\\uwave default")
     if t != -1:
-      document.body.insert(z - 2, "\\strikeout default")
-    document.body[i:i + 4] = put_cmd_in_ert(LaTeXname + "{")
+      lines.insert(z - 2, "\\strikeout default")
+    lines[i:i + 4] = put_cmd_in_ert(LaTeXname + "{")
     i += 1
 
 
-def revert_font_attrs(document, name, LaTeXname):
+def revert_font_attrs(lines, name, LaTeXname):
   " Reverts font changes to TeX code "
   i = 0
   changed = False
   while True:
-    i = find_token(document.body, name + ' on', i)
+    i = find_token(lines, name + ' on', i)
     if i == -1:
       return changed
-    j = find_token(document.body, name + ' default', i)
-    k = find_token(document.body, name + ' on', i + 1)
+    j = find_token(lines, name + ' default', i)
+    k = find_token(lines, name + ' on', i + 1)
     # if there is no default set, the style ends with the layout
     # assure hereby that we found the correct layout end
     if j != -1 and (j < k or k == -1):
-      document.body[j:j + 1] = put_cmd_in_ert("}")
+      lines[j:j + 1] = put_cmd_in_ert("}")
     else:
-      j = find_token(document.body, '\\end_layout', i)
-      document.body[j:j] = put_cmd_in_ert("}")
-    document.body[i:i + 1] = put_cmd_in_ert(LaTeXname + "{")
+      j = find_token(lines, '\\end_layout', i)
+      lines[j:j] = put_cmd_in_ert("}")
+    lines[i:i + 1] = put_cmd_in_ert(LaTeXname + "{")
     changed = True
     i += 1
 
 
-def revert_layout_command(document, name, LaTeXname, position):
+def revert_layout_command(lines, name, LaTeXname):
   " Reverts a command from a layout to TeX code "
-  i = position
+  i = 0
   while True:
-    i = find_token(document.body, '\\begin_layout ' + name, i)
+    i = find_token(lines, '\\begin_layout ' + name, i)
     if i == -1:
       return
     k = -1
     # find the next layout
     j = i + 1
     while k == -1:
-      j = find_token(document.body, '\\begin_layout', j)
-      l = len(document.body)
+      j = find_token(lines, '\\begin_layout', j)
+      l = len(lines)
       # if nothing was found it was the last layout of the document
       if j == -1:
-        document.body[l - 4:l - 4] = put_cmd_in_ert("}")
+        lines[l - 4:l - 4] = put_cmd_in_ert("}")
         k = 0
       # exclude plain layout because this can be TeX code or another inset
-      elif document.body[j] != '\\begin_layout Plain Layout':
-        document.body[j - 2:j - 2] = put_cmd_in_ert("}")
+      elif lines[j] != '\\begin_layout Plain Layout':
+        lines[j - 2:j - 2] = put_cmd_in_ert("}")
         k = 0
       else:
         j += 1
-    document.body[i] = '\\begin_layout Standard'
-    document.body[i + 1:i + 1] = put_cmd_in_ert(LaTeXname + "{")
+    lines[i] = '\\begin_layout Standard'
+    lines[i + 1:i + 1] = put_cmd_in_ert(LaTeXname + "{")
     i += 1
 
 
index d08d3025a8bb0f205b4f4a9552af97030ce4dcaa..38e8ebabe59b4dce05ef7f6793ac3344041eb035 100644 (file)
@@ -29,7 +29,7 @@ from parser_tools import find_token, find_end_of, find_tokens, \
   
 from lyx2lyx_tools import add_to_preamble, insert_to_preamble, \
   put_cmd_in_ert, lyx2latex, latex_length, revert_flex_inset, \
-  revert_font_attrs, revert_layout_command, hex2ratio, str2bool
+  revert_font_attrs, hex2ratio, str2bool
 
 ####################################################################
 # Private helper functions
@@ -484,9 +484,9 @@ def revert_printindexall(document):
 
 def revert_strikeout(document):
   " Reverts \\strikeout font attribute "
-  changed = revert_font_attrs(document, "\\uuline", "\\uuline")
-  changed = revert_font_attrs(document, "\\uwave", "\\uwave") or changed
-  changed = revert_font_attrs(document, "\\strikeout", "\\sout")  or changed
+  changed = revert_font_attrs(document.body, "\\uuline", "\\uuline")
+  changed = revert_font_attrs(document.body, "\\uwave", "\\uwave") or changed
+  changed = revert_font_attrs(document.body, "\\strikeout", "\\sout")  or changed
   if changed == True:
     insert_to_preamble(0, document,
         '% Commands inserted by lyx2lyx for proper underlining\n'
@@ -1496,8 +1496,8 @@ def revert_IEEEtran(document):
   " Convert IEEEtran layouts and styles to TeX code "
   if document.textclass != "IEEEtran":
     return
-  revert_flex_inset(document, "IEEE membership", "\\IEEEmembership", 0)
-  revert_flex_inset(document, "Lowercase", "\\MakeLowercase", 0)
+  revert_flex_inset(document.body, "IEEE membership", "\\IEEEmembership")
+  revert_flex_inset(document.body, "Lowercase", "\\MakeLowercase")
   layouts = ("Special Paper Notice", "After Title Text", "Publication ID",
              "Page headings", "Biography without photo")
   latexcmd = {"Special Paper Notice": "\\IEEEspecialpapernotice",