commit 019a4fa124c4d42b1ec299374aeb23fa968db5ba
Author: Juergen Spitzmueller <[email protected]>
Date: Thu Apr 4 16:39:20 2019 +0200
Prevent multiplication of preamble code
Fixes rest of #8229
(cherry picked from commit f51fa38123fb7e3daf37ebfd3e7b0a9feb23b7a1)
---
src/tex2lyx/Preamble.cpp | 10 +++++++---
status.23x | 2 +-
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp
index 436c961..9d2c4c1 100644
--- a/src/tex2lyx/Preamble.cpp
+++ b/src/tex2lyx/Preamble.cpp
@@ -944,11 +944,14 @@ void Preamble::handle_package(Parser &p, string const &
name,
// perhaps in future others.
// Therefore keep the babel call as it is as
the user might have
// reasons for it.
- h_preamble << "\\usepackage[" << opts <<
"]{babel}\n";
+ string const babelcall = "\\usepackage[" + opts
+ "]{babel}\n";
+ if (!contains(h_preamble.str(), babelcall))
+ h_preamble << babelcall;
}
delete_opt(options, known_languages);
} else {
- h_preamble << "\\usepackage{babel}\n";
+ if (!contains(h_preamble.str(),
"\\usepackage{babel}\n"))
+ h_preamble << "\\usepackage{babel}\n";
explicit_babel = true;
}
}
@@ -1781,7 +1784,8 @@ void Preamble::parse(Parser & p, string const &
forceclass,
ss << '*';
ss << '{' << name << '}' << opt1 << opt2
<< '{' << body << "}";
- h_preamble << ss.str();
+ if (prefixIs(t.cs(), "renew") ||
!contains(h_preamble.str(), ss.str()))
+ h_preamble << ss.str();
/*
ostream & out = in_preamble ? h_preamble : os;
out << "\\" << t.cs() << "{" << name << "}"
diff --git a/status.23x b/status.23x
index 9b0ff65..2791d67 100644
--- a/status.23x
+++ b/status.23x
@@ -73,7 +73,7 @@ What's new
* TEX2LYX
-
+- Prevent multiplication of preamble code on (re-)import (bug 8229).
* LYXHTML