]> git.lyx.org Git - features.git/commitdiff
Do not convert dashes/hyphens in Code insets (logical markup).
authorGünter Milde <milde@lyx.org>
Mon, 8 Jan 2018 21:47:09 +0000 (22:47 +0100)
committerGünter Milde <milde@lyx.org>
Wed, 10 Jan 2018 11:07:36 +0000 (12:07 +0100)
Code is by default rendered as typewriter and should be treated
similar:
In text marked up as code, -- or --- is typically part of a
command (e.g. "lyx --help" or "x--") and not a transliteration
for en dash, see #10961.
This is already handled so for text in typewriter font
(see Text.cpp:500).

lib/lyx2lyx/lyx_2_2.py
lib/lyx2lyx/lyx_2_3.py

index 2f4ef3ac2a9c3a03b6958308d6603f02b82d6da7..12ccd4a0031ab2c7b100d9b210fac5eab97c3cfd 100644 (file)
@@ -618,12 +618,15 @@ def convert_dashes(document):
     i = 0
     while i < len(document.body):
         words = document.body[i].split()
-        if len(words) > 1 and words[0] == "\\begin_inset" and \
-           words[1] in ["CommandInset", "ERT", "External", "Formula", "FormulaMacro", "Graphics", "IPA", "listings"]:
+        if (len(words) > 1 and words[0] == "\\begin_inset"
+            and (words[1] in ["CommandInset", "ERT", "External", "Formula",
+                              "FormulaMacro", "Graphics", "IPA", "listings"]
+                 or ' '.join(words[1:]) == "Flex Code")):
             # must not replace anything in insets that store LaTeX contents in .lyx files
-            # (math and command insets withut overridden read() and write() methods
+            # (math and command insets without overridden read() and write() methods
             # filtering out IPA makes Text::readParToken() more simple
             # skip ERT as well since it is not needed there
+            # Flex Code is logical markup, typically rendered as typewriter
             j = find_end_of_inset(document.body, i)
             if j == -1:
                 document.warning("Malformed LyX document: Can't find end of " + words[1] + " inset at line " + str(i))
index f2689fbf45581cb7ef96d6af5abf004ccd0c20a1..9cda3d7be8023223c0cd809b8feeb4197befcf1d 100644 (file)
@@ -1862,9 +1862,10 @@ def convert_dashligatures(document):
             if (i < j) or line.startswith("\\labelwidthstring"):
                 continue
             words = line.split()
-            if len(words) > 1 and words[0] == "\\begin_inset" and \
-            words[1] in ["CommandInset", "ERT", "External", "Formula",
-                         "FormulaMacro", "Graphics", "IPA", "listings"]:
+            if (len(words) > 1 and words[0] == "\\begin_inset"
+                and (words[1] in ["CommandInset", "ERT", "External", "Formula",
+                                 "FormulaMacro", "Graphics", "IPA", "listings"]
+                     or ' '.join(words[1:]) == "Flex Code")):
                 j = find_end_of_inset(document.body, i)
                 if j == -1:
                     document.warning("Malformed LyX document: "
@@ -1903,10 +1904,6 @@ def revert_dashligatures(document):
         return
     use_dash_ligatures = get_bool_value(document.header, "\\use_dash_ligatures", i)
     del document.header[i]
-    use_non_tex_fonts = False
-    i = find_token(document.header, "\\use_non_tex_fonts", 0)
-    if i != -1:
-        use_non_tex_fonts = get_bool_value(document.header, "\\use_non_tex_fonts", i)
     if not use_dash_ligatures or document.backend != "latex":
         return
 
@@ -1918,9 +1915,10 @@ def revert_dashligatures(document):
             new_body.append(line)
             continue
         words = line.split()
-        if len(words) > 1 and words[0] == "\\begin_inset" and \
-           words[1] in ["CommandInset", "ERT", "External", "Formula",
-                        "FormulaMacro", "Graphics", "IPA", "listings"]:
+        if (len(words) > 1 and words[0] == "\\begin_inset"
+            and (words[1] in ["CommandInset", "ERT", "External", "Formula",
+                              "FormulaMacro", "Graphics", "IPA", "listings"]
+                 or ' '.join(words[1:]) == "Flex Code")):
             j = find_end_of_inset(document.body, i)
             if j == -1:
                 document.warning("Malformed LyX document: Can't find end of "