X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftex2lyx%2Ftext.cpp;h=ce330a2b9ffe97a21a1c0da1ac0093632469fdd6;hb=37d30288af89e760f642e823fe8c7e9d78e5045d;hp=0e593ceca540515bb20d04ac25720e50fa34d814;hpb=d5ed835225d8ec27225cd7bb415e1ac7db41a512;p=lyx.git diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index 0e593ceca5..ce330a2b9f 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -521,8 +521,8 @@ docstring convert_unicodesymbols(docstring s) bool termination; docstring rem; set req; - docstring parsed = encodings.fromLaTeXCommand(s, - Encodings::TEXT_CMD, termination, rem, &req); + docstring parsed = normalize_c(encodings.fromLaTeXCommand(s, + Encodings::TEXT_CMD, termination, rem, &req)); set::const_iterator it = req.begin(); set::const_iterator en = req.end(); for (; it != en; ++it) @@ -580,6 +580,16 @@ void output_ert_inset(ostream & os, string const & s, Context & context) } +void output_comment(Parser & p, ostream & os, string const & s, + Context & context) +{ + if (p.next_token().cat() == catNewline) + output_ert_inset(os, '%' + s, context); + else + output_ert_inset(os, '%' + s + '\n', context); +} + + Layout const * findLayout(TextClass const & textclass, string const & name, bool command) { Layout const * layout = findLayoutWithoutModule(textclass, name, command); @@ -1189,13 +1199,13 @@ void parse_box(Parser & p, ostream & os, unsigned outer_flags, // LyX puts a % after the end of the minipage if (p.next_token().cat() == catNewline && p.next_token().cs().size() > 1) { // new paragraph - //output_ert_inset(os, "%dummy", parent_context); + //output_comment(p, os, "dummy", parent_context); p.get_token(); p.skip_spaces(); parent_context.new_paragraph(os); } else if (p.next_token().cat() == catSpace || p.next_token().cat() == catNewline) { - //output_ert_inset(os, "%dummy", parent_context); + //output_comment(p, os, "dummy", parent_context); p.get_token(); p.skip_spaces(); // We add a protected space if something real follows @@ -1545,15 +1555,17 @@ void parse_environment(Parser & p, ostream & os, bool outer, preamble.registerAutomaticallyLoadedPackage("verbatim"); } - else if (name == "verbatim") { + else if (unstarred_name == "verbatim") { // FIXME: this should go in the generic code that // handles environments defined in layout file that // have "PassThru 1". However, the code over there is // already too complicated for my taste. + string const ascii_name = + (name == "verbatim*") ? "Verbatim*" : "Verbatim"; parent_context.new_paragraph(os); Context context(true, parent_context.textclass, - &parent_context.textclass[from_ascii("Verbatim")]); - string s = p.verbatimEnvironment("verbatim"); + &parent_context.textclass[from_ascii(ascii_name)]); + string s = p.verbatimEnvironment(name); output_ert(os, s, context); p.skip_spaces(); } @@ -1880,7 +1892,7 @@ void parse_comment(Parser & p, ostream & os, Token const & t, Context & context) LASSERT(t.cat() == catComment, return); if (!t.cs().empty()) { context.check_layout(os); - output_ert_inset(os, '%' + t.cs(), context); + output_comment(p, os, t.cs(), context); if (p.next_token().cat() == catNewline) { // A newline after a comment line starts a new // paragraph @@ -2826,8 +2838,8 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, context.check_layout(os); // FIXME: This is a hack to prevent paragraph // deletion if it is empty. Handle this better! - output_ert_inset(os, - "%dummy comment inserted by tex2lyx to " + output_comment(p, os, + "dummy comment inserted by tex2lyx to " "ensure that this paragraph is not empty", context); // Both measures above may generate an additional @@ -4812,8 +4824,8 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, bool termination; docstring rem; set req; - docstring s = encodings.fromLaTeXCommand(from_utf8(name), - Encodings::TEXT_CMD, termination, rem, &req); + docstring s = normalize_c(encodings.fromLaTeXCommand(from_utf8(name), + Encodings::TEXT_CMD, termination, rem, &req)); if (!s.empty()) { context.check_layout(os); os << to_utf8(s);