commit d325f79f5c782edcfa32e87579fb102763d8d29b
Author: Juergen Spitzmueller <sp...@lyx.org>
Date:   Sat Mar 10 15:40:51 2018 +0100

    tex2lyx: add support for lstinputlisting
---
 src/tex2lyx/text.cpp |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp
index e12e4ee..2ef3a9f 100644
--- a/src/tex2lyx/text.cpp
+++ b/src/tex2lyx/text.cpp
@@ -4632,12 +4632,23 @@ void parse_text(Parser & p, ostream & os, unsigned 
flags, bool outer,
                }
 
                if (t.cs() == "input" || t.cs() == "include"
-                   || t.cs() == "verbatiminput") {
+                   || t.cs() == "verbatiminput"
+                   || t.cs() == "lstinputlisting") {
                        string name = t.cs();
-                       if (t.cs() == "verbatiminput"
+                       if (name == "verbatiminput"
                            && p.next_token().asInput() == "*")
                                name += p.get_token().asInput();
                        context.check_layout(os);
+                       string lstparams;
+                       bool literal = false;
+                       if (name == "lstinputlisting" && p.hasOpt()) {
+                               lstparams = p.getArg('[', ']');
+                               pair<bool, string> oa = 
convert_latexed_command_inset_arg(lstparams);
+                               literal = !oa.first;
+                               if (literal)
+                                       lstparams = subst(lstparams, "\n", " ");
+                       }
+                       string lit = literal ? "\"true\"" : "\"false\"";
                        string filename(normalize_filename(p.getArg('{', '}')));
                        string const path = getMasterFilePath(true);
                        // We want to preserve relative / absolute filenames,
@@ -4745,6 +4756,9 @@ void parse_text(Parser & p, ostream & os, unsigned flags, 
bool outer,
                                outname = subst(outname, "\"", "\\\"");
                                os << "preview false\n"
                                      "filename \"" << outname << "\"\n";
+                               if (!lstparams.empty())
+                                       os << "lstparams \"" << lstparams << 
"\"\n";
+                               os << "literal " << lit << "\n";
                                if (t.cs() == "verbatiminput")
                                        
preamble.registerAutomaticallyLoadedPackage("verbatim");
                        }

Reply via email to