mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-14 01:22:33 +00:00
revert. This is not doublechecked yet
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_5_X@25518 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
a229ba95df
commit
f1ceb1fec0
@ -22,8 +22,6 @@
|
|||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
#include "support/lstrings.h"
|
#include "support/lstrings.h"
|
||||||
|
|
||||||
#include <boost/regex.hpp>
|
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
@ -31,8 +29,6 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
using boost::regex;
|
|
||||||
using boost::smatch;
|
|
||||||
|
|
||||||
namespace lyx {
|
namespace lyx {
|
||||||
|
|
||||||
@ -241,8 +237,7 @@ string const scale_as_percentage(string const & scale)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void handle_package(string const & name, string const & opts,
|
void handle_package(string const & name, string const & opts)
|
||||||
bool in_lyx_preamble)
|
|
||||||
{
|
{
|
||||||
vector<string> options = split_options(opts);
|
vector<string> options = split_options(opts);
|
||||||
add_package(name, options);
|
add_package(name, options);
|
||||||
@ -383,16 +378,13 @@ void handle_package(string const & name, string const & opts,
|
|||||||
}
|
}
|
||||||
else if (name == "jurabib")
|
else if (name == "jurabib")
|
||||||
h_cite_engine = "jurabib";
|
h_cite_engine = "jurabib";
|
||||||
else if (!in_lyx_preamble) {
|
|
||||||
if (options.empty())
|
else if (options.empty())
|
||||||
h_preamble << "\\usepackage{" << name << "}\n";
|
h_preamble << "\\usepackage{" << name << "}\n";
|
||||||
else {
|
else {
|
||||||
h_preamble << "\\usepackage[" << opts << "]{"
|
h_preamble << "\\usepackage[" << opts << "]{" << name << "}\n";
|
||||||
<< name << "}\n";
|
|
||||||
options.clear();
|
options.clear();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// We need to do something with the options...
|
// We need to do something with the options...
|
||||||
if (!options.empty())
|
if (!options.empty())
|
||||||
cerr << "Ignoring options '" << join(options, ",")
|
cerr << "Ignoring options '" << join(options, ",")
|
||||||
@ -454,8 +446,6 @@ TextClass const parse_preamble(Parser & p, ostream & os, string const & forcecla
|
|||||||
// initialize fixed types
|
// initialize fixed types
|
||||||
special_columns['D'] = 3;
|
special_columns['D'] = 3;
|
||||||
bool is_full_document = false;
|
bool is_full_document = false;
|
||||||
bool is_lyx_file = false;
|
|
||||||
bool in_lyx_preamble = true;
|
|
||||||
|
|
||||||
// determine whether this is a full document or a fragment for inclusion
|
// determine whether this is a full document or a fragment for inclusion
|
||||||
while (p.good()) {
|
while (p.good()) {
|
||||||
@ -478,8 +468,7 @@ TextClass const parse_preamble(Parser & p, ostream & os, string const & forcecla
|
|||||||
//
|
//
|
||||||
// cat codes
|
// cat codes
|
||||||
//
|
//
|
||||||
if (!in_lyx_preamble &&
|
if (t.cat() == catLetter ||
|
||||||
(t.cat() == catLetter ||
|
|
||||||
t.cat() == catSuper ||
|
t.cat() == catSuper ||
|
||||||
t.cat() == catSub ||
|
t.cat() == catSub ||
|
||||||
t.cat() == catOther ||
|
t.cat() == catOther ||
|
||||||
@ -488,47 +477,26 @@ TextClass const parse_preamble(Parser & p, ostream & os, string const & forcecla
|
|||||||
t.cat() == catBegin ||
|
t.cat() == catBegin ||
|
||||||
t.cat() == catEnd ||
|
t.cat() == catEnd ||
|
||||||
t.cat() == catAlign ||
|
t.cat() == catAlign ||
|
||||||
t.cat() == catParameter))
|
t.cat() == catParameter)
|
||||||
h_preamble << t.character();
|
h_preamble << t.character();
|
||||||
|
|
||||||
else if (!in_lyx_preamble &&
|
else if (t.cat() == catSpace || t.cat() == catNewline)
|
||||||
(t.cat() == catSpace || t.cat() == catNewline))
|
|
||||||
h_preamble << t.asInput();
|
h_preamble << t.asInput();
|
||||||
|
|
||||||
else if (t.cat() == catComment) {
|
else if (t.cat() == catComment)
|
||||||
// regex to parse comments
|
|
||||||
static regex const islyxfile("%% LyX .* created this file");
|
|
||||||
static regex const usercommands("User specified LaTeX commands");
|
|
||||||
|
|
||||||
string const comment = t.asInput();
|
|
||||||
cerr << "Seen comment: " << comment << std::endl;
|
|
||||||
smatch sub;
|
|
||||||
if (regex_search(comment, sub, islyxfile))
|
|
||||||
is_lyx_file = true;
|
|
||||||
else if (is_lyx_file
|
|
||||||
&& regex_search(comment, sub, usercommands))
|
|
||||||
in_lyx_preamble = false;
|
|
||||||
else if (!in_lyx_preamble)
|
|
||||||
h_preamble << t.asInput();
|
h_preamble << t.asInput();
|
||||||
cerr << "lyx_file: " << is_lyx_file << ", lyx_preamble "
|
|
||||||
<< in_lyx_preamble << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (t.cs() == "pagestyle")
|
else if (t.cs() == "pagestyle")
|
||||||
h_paperpagestyle = p.verbatim_item();
|
h_paperpagestyle = p.verbatim_item();
|
||||||
|
|
||||||
else if (t.cs() == "makeatletter") {
|
else if (t.cs() == "makeatletter") {
|
||||||
if (!is_lyx_file || !in_lyx_preamble
|
|
||||||
|| p.getCatCode('@') != catLetter)
|
|
||||||
h_preamble << "\\makeatletter";
|
|
||||||
p.setCatCode('@', catLetter);
|
p.setCatCode('@', catLetter);
|
||||||
|
h_preamble << "\\makeatletter";
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (t.cs() == "makeatother") {
|
else if (t.cs() == "makeatother") {
|
||||||
if (!is_lyx_file || !in_lyx_preamble
|
|
||||||
|| p.getCatCode('@') != catOther)
|
|
||||||
h_preamble << "\\makeatother";
|
|
||||||
p.setCatCode('@', catOther);
|
p.setCatCode('@', catOther);
|
||||||
|
h_preamble << "\\makeatother";
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (t.cs() == "newcommand" || t.cs() == "renewcommand"
|
else if (t.cs() == "newcommand" || t.cs() == "renewcommand"
|
||||||
@ -561,7 +529,19 @@ TextClass const parse_preamble(Parser & p, ostream & os, string const & forcecla
|
|||||||
h_font_default_family = family.erase(0,1);
|
h_font_default_family = family.erase(0,1);
|
||||||
}
|
}
|
||||||
// only non-lyxspecific stuff
|
// only non-lyxspecific stuff
|
||||||
if (!in_lyx_preamble) {
|
if ( name != "\\noun"
|
||||||
|
&& name != "\\tabularnewline"
|
||||||
|
&& name != "\\LyX"
|
||||||
|
&& name != "\\lyxline"
|
||||||
|
&& name != "\\lyxaddress"
|
||||||
|
&& name != "\\lyxrightaddress"
|
||||||
|
&& name != "\\lyxdot"
|
||||||
|
&& name != "\\boldsymbol"
|
||||||
|
&& name != "\\lyxarrow"
|
||||||
|
&& name != "\\rmdefault"
|
||||||
|
&& name != "\\sfdefault"
|
||||||
|
&& name != "\\ttdefault"
|
||||||
|
&& name != "\\familydefault") {
|
||||||
ostringstream ss;
|
ostringstream ss;
|
||||||
ss << '\\' << t.cs();
|
ss << '\\' << t.cs();
|
||||||
if (star)
|
if (star)
|
||||||
@ -644,10 +624,9 @@ TextClass const parse_preamble(Parser & p, ostream & os, string const & forcecla
|
|||||||
vector<string>::const_iterator it = vecnames.begin();
|
vector<string>::const_iterator it = vecnames.begin();
|
||||||
vector<string>::const_iterator end = vecnames.end();
|
vector<string>::const_iterator end = vecnames.end();
|
||||||
for (; it != end; ++it)
|
for (; it != end; ++it)
|
||||||
handle_package(trim(*it), string(),
|
handle_package(trim(*it), string());
|
||||||
in_lyx_preamble);
|
|
||||||
} else {
|
} else {
|
||||||
handle_package(name, options, in_lyx_preamble);
|
handle_package(name, options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -659,7 +638,9 @@ TextClass const parse_preamble(Parser & p, ostream & os, string const & forcecla
|
|||||||
ss << p.getOpt();
|
ss << p.getOpt();
|
||||||
ss << '{' << p.verbatim_item() << '}';
|
ss << '{' << p.verbatim_item() << '}';
|
||||||
ss << '{' << p.verbatim_item() << '}';
|
ss << '{' << p.verbatim_item() << '}';
|
||||||
if (!in_lyx_preamble)
|
if (name != "lyxcode" && name != "lyxlist" &&
|
||||||
|
name != "lyxrightadress" &&
|
||||||
|
name != "lyxaddress" && name != "lyxgreyedout")
|
||||||
h_preamble << ss.str();
|
h_preamble << ss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -667,7 +648,6 @@ TextClass const parse_preamble(Parser & p, ostream & os, string const & forcecla
|
|||||||
string name = p.get_token().cs();
|
string name = p.get_token().cs();
|
||||||
while (p.next_token().cat() != catBegin)
|
while (p.next_token().cat() != catBegin)
|
||||||
name += p.get_token().asString();
|
name += p.get_token().asString();
|
||||||
if (!in_lyx_preamble)
|
|
||||||
h_preamble << "\\def\\" << name << '{'
|
h_preamble << "\\def\\" << name << '{'
|
||||||
<< p.verbatim_item() << "}";
|
<< p.verbatim_item() << "}";
|
||||||
}
|
}
|
||||||
@ -746,7 +726,7 @@ TextClass const parse_preamble(Parser & p, ostream & os, string const & forcecla
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (!t.cs().empty() && !in_lyx_preamble)
|
else if (!t.cs().empty())
|
||||||
h_preamble << '\\' << t.cs();
|
h_preamble << '\\' << t.cs();
|
||||||
}
|
}
|
||||||
p.skip_spaces();
|
p.skip_spaces();
|
||||||
|
Loading…
Reference in New Issue
Block a user