remove NO_COMPABILITY stuff

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5052 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 2002-08-21 07:30:57 +00:00
parent ecdec65223
commit 998c773a16
7 changed files with 17 additions and 323 deletions

View File

@ -1,3 +1,8 @@
2002-08-21 Lars Gullik Bjønnes <larsbj@gullik.net>
* tabular.C:
* buffer.[Ch]: remove NO_COMPABILITY stuff
2002-08-20 Lars Gullik Bjønnes <larsbj@gullik.net>
* boost.C (throw_exception): new file, with helper function for

View File

@ -314,7 +314,7 @@ void expandDocuments(Menu & tomenu)
LFUN_NOACTION));
return;
}
int ii = 1;
Strings::const_iterator docit = names.begin();
Strings::const_iterator end = names.end();
@ -335,12 +335,12 @@ void expandFormats(MenuItem::Kind kind, Menu & tomenu, Buffer const * buf)
tomenu.add(MenuItem(MenuItem::Command,
_("No Documents Open!"), LFUN_NOACTION));
return;
}
}
typedef vector<Format const *> Formats;
Formats formats;
kb_action action;
switch (kind) {
case MenuItem::ImportFormats:
formats = Importer::GetImportableFormats();
@ -507,7 +507,7 @@ void MenuBackend::expand(Menu const & frommenu, Menu & tomenu,
for (Menu::const_iterator cit = frommenu.begin();
cit != frommenu.end() ; ++cit) {
switch (cit->kind()) {
case MenuItem::Lastfiles:
case MenuItem::Lastfiles:
expandLastfiles(tomenu);
break;
@ -542,7 +542,7 @@ void MenuBackend::expand(Menu const & frommenu, Menu & tomenu,
tomenu.add(item);
}
break;
default:
tomenu.add(*cit);
}

View File

@ -282,22 +282,6 @@ namespace {
string last_inset_read;
#ifndef NO_COMPABILITY
struct ErtComp
{
ErtComp() : active(false), fromlayout(false), in_tabular(false) {
}
string contents;
bool active;
bool fromlayout;
bool in_tabular;
LyXFont font;
};
std::stack<ErtComp> ert_stack;
ErtComp ert_comp;
#endif
#ifdef WITH_WARNINGS
#warning And _why_ is this here? (Lgb)
#endif
@ -319,12 +303,7 @@ bool Buffer::readLyXformat2(LyXLex & lex, Paragraph * par)
{
unknown_layouts = 0;
unknown_tokens = 0;
#ifndef NO_COMPABILITY
ert_comp.contents.erase();
ert_comp.active = false;
ert_comp.fromlayout = false;
ert_comp.in_tabular = false;
#endif
int pos = 0;
Paragraph::depth_type depth = 0;
bool the_end_read = false;
@ -406,65 +385,6 @@ bool Buffer::readLyXformat2(LyXLex & lex, Paragraph * par)
}
#ifndef NO_COMPABILITY
Inset * Buffer::isErtInset(Paragraph * par, int pos) const
{
Inset * inset;
if ((par->getChar(pos) == Paragraph::META_INSET) &&
(inset = par->getInset(pos)) &&
(inset->lyxCode() == Inset::ERT_CODE))
{
return inset;
}
return 0;
}
void Buffer::insertErtContents(Paragraph * par, int & pos, bool set_inactive)
{
if (ert_comp.contents.find_first_not_of(' ') != string::npos) {
// we only skip completely empty ERT (only spaces) otherwise
// we have to insert it as is.
string str(ert_comp.contents);
lyxerr[Debug::INSETS] << "ERT contents:\n'"
<< str << "'" << endl;
// check if we have already an ert inset a position earlier
// if this is the case then we should insert the contents
// inside the other ertinset as it is stupid to have various
// ert in a row.
Inset * inset;
if ((pos > 0) && (inset=isErtInset(par, pos-1))) {
// get the last paragraph from the inset before
Paragraph * last = inset->firstParagraph();
while(last->next())
last = last->next();
// create the new paragraph after the last one
Paragraph * par = new Paragraph(last);
par->layout(params.getLyXTextClass().defaultLayoutName());
par->setInsetOwner(last->inInset());
// set the contents
LyXFont font(LyXFont::ALL_INHERIT, params.language);
string::const_iterator cit = str.begin();
string::const_iterator end = str.end();
pos_type pos = 0;
for (; cit != end; ++cit) {
par->insertChar(pos++, *cit, font);
}
} else {
Inset * inset =
new InsetERT(params, params.language, str, true);
par->insertInset(pos++, inset, ert_comp.font);
}
}
ert_comp.contents.erase();
ert_comp.fromlayout = false;
if (set_inactive) {
ert_comp.active = false;
}
}
#endif
bool
Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
Paragraph *& first_par,
@ -481,36 +401,12 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
// on large documents like UserGuide to a reduction of a
// factor 5! (JMarc)
if (token[0] != '\\') {
#ifndef NO_COMPABILITY
if (ert_comp.active) {
ert_comp.contents += token;
} else {
#endif
for (string::const_iterator cit = token.begin();
cit != token.end(); ++cit) {
par->insertChar(pos, (*cit), font);
++pos;
}
#ifndef NO_COMPABILITY
}
#endif
} else if (token == "\\layout") {
#ifndef NO_COMPABILITY
bool old_fromlayout = ert_comp.fromlayout;
bool create_new_par = true;
ert_comp.in_tabular = false;
// Do the insetert.
if (!par->size() && par->previous() &&
(par->previous()->size() == 1) &&
isErtInset(par->previous(), par->previous()->size()-1))
{
int p = par->previous()->size();
insertErtContents(par->previous(), p);
create_new_par = false;
} else {
insertErtContents(par, pos);
}
#endif
// reset the font as we start a new layout and if the font is
// not ALL_INHERIT,document_language then it will be set to the
// right values after this tag (Jug 20020420)
@ -529,15 +425,6 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
if (layoutname.empty()) {
layoutname = tclass.defaultLayoutName();
}
#ifndef NO_COMPABILITY
if (compare_ascii_no_case(layoutname, "latex") == 0) {
ert_comp.active = true;
ert_comp.fromlayout = true;
ert_comp.font = font;
if (old_fromlayout)
create_new_par = false;
}
#endif
bool hasLayout = tclass.hasLayout(layoutname);
if (!hasLayout) {
lyxerr << "Layout '" << layoutname << "' does not"
@ -600,9 +487,6 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
par->InsertInset(pos, inset, font);
++pos;
} else {
#endif
#ifndef NO_COMPABILITY
if (create_new_par) {
#endif
if (!first_par)
first_par = par;
@ -617,19 +501,6 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
if (!layout->obsoleted_by().empty())
par->layout(params.getLyXTextClass()[layout->obsoleted_by()]);
par->params().depth(depth);
#ifndef NO_COMPABILITY
} else {
// we duplicate code here because it's easier to remove
// the code then of NO_COMPATIBILITY
par->layout(layoutname);
// Test whether the layout is obsolete.
LyXLayout_ptr const & layout =
params.getLyXTextClass()[par->layout()];
if (!layout->obsoleted_by().empty())
par->layout(layout->obsoleted_by());
par->params().depth(depth);
}
#endif
#if USE_CAPTION
}
#endif
@ -643,17 +514,7 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
// But insets should read it, it is a part of
// the inset isn't it? Lgb.
} else if (token == "\\begin_inset") {
#ifndef NO_COMPABILITY
insertErtContents(par, pos, false);
ert_stack.push(ert_comp);
ert_comp = ErtComp();
#endif
readInset(lex, par, pos, font);
#ifndef NO_COMPABILITY
ert_comp = ert_stack.top();
ert_stack.pop();
insertErtContents(par, pos);
#endif
} else if (token == "\\family") {
lex.next();
font.setLyXFamily(lex.getString());
@ -666,24 +527,6 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
} else if (token == "\\size") {
lex.next();
font.setLyXSize(lex.getString());
#ifndef NO_COMPABILITY
} else if (token == "\\latex") {
lex.next();
string const tok = lex.getString();
if (tok == "no_latex") {
// Do the insetert.
insertErtContents(par, pos);
} else if (tok == "latex") {
ert_comp.active = true;
ert_comp.font = font;
} else if (tok == "default") {
// Do the insetert.
insertErtContents(par, pos);
} else {
lex.printError("Unknown LaTeX font flag "
"`$$Token'");
}
#endif
} else if (token == "\\lang") {
lex.next();
string const tok = lex.getString();
@ -751,107 +594,8 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
par->insertInset(pos, inset, font);
++pos;
} else if (token == "\\backslash") {
#ifndef NO_COMPABILITY
if (ert_comp.active) {
ert_comp.contents += "\\";
} else {
#endif
par->insertChar(pos, '\\', font);
++pos;
#ifndef NO_COMPABILITY
}
#endif
#ifndef NO_COMPABILITY
} else if (token == "\\begin_float") {
insertErtContents(par, pos);
//insertErtContents(par, pos, false);
//ert_stack.push(ert_comp);
//ert_comp = ErtComp();
// This is the compability reader. It can be removed in
// LyX version 1.3.0. (Lgb)
lex.next();
string const tmptok = lex.getString();
//lyxerr << "old float: " << tmptok << endl;
Inset * inset = 0;
stringstream old_float;
if (tmptok == "footnote") {
inset = new InsetFoot(params);
old_float << "collapsed true\n";
} else if (tmptok == "margin") {
inset = new InsetMarginal(params);
old_float << "collapsed true\n";
} else if (tmptok == "fig") {
inset = new InsetFloat(params, "figure");
old_float << "wide false\n"
<< "collapsed false\n";
} else if (tmptok == "tab") {
inset = new InsetFloat(params, "table");
old_float << "wide false\n"
<< "collapsed false\n";
} else if (tmptok == "alg") {
inset = new InsetFloat(params, "algorithm");
old_float << "wide false\n"
<< "collapsed false\n";
} else if (tmptok == "wide-fig") {
inset = new InsetFloat(params, "figure");
//InsetFloat * tmp = new InsetFloat("figure");
//tmp->wide(true);
//inset = tmp;
old_float << "wide true\n"
<< "collapsed false\n";
} else if (tmptok == "wide-tab") {
inset = new InsetFloat(params, "table");
//InsetFloat * tmp = new InsetFloat("table");
//tmp->wide(true);
//inset = tmp;
old_float << "wide true\n"
<< "collapsed false\n";
}
if (!inset) {
return false; // no end read yet
}
// Here we need to check for \end_deeper and handle that
// before we do the footnote parsing.
// This _is_ a hack! (Lgb)
while (true) {
lex.next();
string const tmp = lex.getString();
if (tmp == "\\end_deeper") {
//lyxerr << "\\end_deeper caught!" << endl;
if (!depth) {
lex.printError("\\end_deeper: "
"depth is already null");
} else
--depth;
} else {
old_float << tmp << ' ';
break;
}
}
old_float << lex.getLongString("\\end_float")
<< "\n\\end_inset\n";
//lyxerr << "Float Body:\n" << old_float.str() << endl;
// That this does not work seems like a bug
// in stringstream. (Lgb)
istringstream istr(old_float.str());
LyXLex nylex(0, 0);
nylex.setStream(istr);
inset->read(this, nylex);
par->insertInset(pos, inset, font);
++pos;
insertErtContents(par, pos);
// we have to reset the font as in the old format after a float
// the font was automatically reset!
font = LyXFont(LyXFont::ALL_INHERIT, params.language);
#endif
} else if (token == "\\begin_deeper") {
++depth;
} else if (token == "\\end_deeper") {
@ -932,13 +676,6 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
} else if (token == "\\defskip") {
lex.nextToken();
params.defskip = VSpace(lex.getString());
#ifndef NO_COMPABILITY
} else if (token == "\\epsfig") { // obsolete
// Indeed it is obsolete, but we HAVE to be backwards
// compatible until 0.14, because otherwise all figures
// in existing documents are irretrivably lost. (Asger)
params.readGraphicsDriver(lex);
#endif
} else if (token == "\\quotes_language") {
int tmpret = lex.findToken(string_quotes_language);
if (tmpret == -1)
@ -1174,26 +911,9 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
par->params().labelWidthString(lex.getString());
// do not delete this token, it is still needed!
} else if (token == "\\newline") {
#ifndef NO_COMPABILITY
if (!ert_comp.in_tabular && ert_comp.active) {
ert_comp.contents += char(Paragraph::META_NEWLINE);
} else {
// Since we cannot know it this is only a regular
// newline or a tabular cell delimter we have to
// handle the ERT here.
insertErtContents(par, pos, false);
par->insertChar(pos, Paragraph::META_NEWLINE, font);
++pos;
}
#else
par->insertChar(pos, Paragraph::META_NEWLINE, font);
++pos;
#endif
} else if (token == "\\LyXTable") {
#ifndef NO_COMPABILITY
ert_comp.in_tabular = true;
#endif
Inset * inset = new InsetTabular(*this);
inset->read(this, lex);
par->insertInset(pos, inset, font);
@ -1221,18 +941,8 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
}
par->bibkey->read(this, lex);
} else if (token == "\\the_end") {
#ifndef NO_COMPABILITY
// If we still have some ert active here we have to insert
// it so we don't loose it. (Lgb)
insertErtContents(par, pos);
#endif
the_end_read = true;
} else {
#ifndef NO_COMPABILITY
if (ert_comp.active) {
ert_comp.contents += token;
} else {
#endif
// This should be insurance for the future: (Asger)
++unknown_tokens;
lex.eatLine();
@ -1244,9 +954,6 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
par->insertInset(pos, new_inset, LyXFont(LyXFont::ALL_INHERIT,
params.language));
#ifndef NO_COMPABILITY
}
#endif
}
return the_end_read;

View File

@ -38,7 +38,6 @@ class LaTeXFeatures;
class Language;
class ParIterator;
#define NO_COMPABILITY 1
///
struct DEPCLEAN {
@ -128,13 +127,6 @@ public:
///
void insertStringAsLines(Paragraph *&, lyx::pos_type &,
LyXFont const &, string const &) const;
#ifndef NO_COMPABILITY
///
Inset * isErtInset(Paragraph * par, int pos) const;
///
void insertErtContents(Paragraph * par, int & pos,
bool set_inactive = true);
#endif
///
Paragraph * getParFromID(int id) const;
private:

View File

@ -1,3 +1,7 @@
2002-08-21 Lars Gullik Bjønnes <larsbj@gullik.net>
* insettext.C: remove NO_COMPABILITY stuff
2002-08-15 Lars Gullik Bjønnes <larsbj@gullik.net>
* insettext.C (edit): use ParagraphList iterators

View File

@ -260,9 +260,6 @@ void InsetText::read(Buffer const * buf, LyXLex & lex)
if (token.empty())
continue;
if (token == "\\end_inset") {
#ifndef NO_COMPABILITY
const_cast<Buffer*>(buf)->insertErtContents(par, pos, false);
#endif
break;
}
@ -1117,7 +1114,7 @@ bool InsetText::lfunMouseRelease(FuncRequest const & cmd)
Inset * inset = bv->checkInsetHit(getLyXText(bv), tmp_x, tmp_y);
bool ret = false;
if (inset) {
if (isHighlyEditableInset(inset))
if (isHighlyEditableInset(inset))
ret = inset->localDispatch(cmd1);
else {
inset_x = cix(bv) - top_x + drawTextXOffset;

View File

@ -1468,19 +1468,8 @@ void LyXTabular::OldFormatRead(BufferParams const & bp,
|| token == "\\end_deeper")
{
lex.pushToken(token);
#ifndef NO_COMPABILITY
// Here we need to insert the inset_ert_contents into the last
// cell of the tabular.
owner_->bufferOwner()->insertErtContents(par, pos);
#endif
break;
}
#ifndef NO_COMPABILITY
if (token == "\\newline")
// Here we need to insert the inset_ert_contents into the last
// cell of the tabular.
owner_->bufferOwner()->insertErtContents(par, pos, false);
#endif
if (owner_->bufferOwner()->parseSingleLyXformat2Token(lex, par,
return_par,
token, pos,