* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-2000 The LyX Team.
+ * Copyright 1995-2001 The LyX Team.
*
* ======================================================
*/
#include "gettext.h"
#include "support/LAssert.h"
#include "support/lyxfunctional.h"
+#include "support/lstrings.h"
using std::pair;
using std::make_pair;
//LT_FIRST_COUNTER,
LT_FONT,
LT_FREE_SPACING,
+ LT_PASS_THRU,
//LT_HEADINGS,
LT_ITEMSEP,
LT_KEEPEMPTY,
fill_bottom = false;
newline_allowed = true;
free_spacing = false;
+ pass_thru = false;
}
{ "parindent", LT_PARINDENT },
{ "parsep", LT_PARSEP },
{ "parskip", LT_PARSKIP },
+ { "passthru", LT_PASS_THRU },
{ "preamble", LT_PREAMBLE },
{ "rightmargin", LT_RIGHTMARGIN },
{ "spacing", LT_SPACING },
bool finished = false;
lexrc.pushTable(layoutTags, LT_INTITLE);
// parse style section
- while (!finished && lexrc.IsOK() && !error) {
+ while (!finished && lexrc.isOK() && !error) {
int le = lexrc.lex();
// See comment in lyxrc.C.
switch (le) {
case LT_COPYSTYLE: // initialize with a known style
if (lexrc.next()) {
- if (tclass.hasLayout(lexrc.GetString())) {
- string tmpname = name_;
- this->operator= (tclass.GetLayout(lexrc.GetString()));
+ if (tclass.hasLayout(lexrc.getString())) {
+ string const tmpname = name_;
+ this->operator= (tclass.GetLayout(lexrc.getString()));
name_ = tmpname;
} else {
lexrc.printError("Cannot copy known "
case LT_OBSOLETEDBY: // replace with a known style
if (lexrc.next()) {
- if (tclass.hasLayout(lexrc.GetString())) {
- string tmpname = name_;
- this->operator= (tclass.GetLayout(lexrc.GetString()));
+ if (tclass.hasLayout(lexrc.getString())) {
+ string const tmpname = name_;
+ this->operator= (tclass.GetLayout(lexrc.getString()));
name_ = tmpname;
if (obsoleted_by().empty())
- obsoleted_by_ = lexrc.GetString();
+ obsoleted_by_ = lexrc.getString();
} else {
lexrc.printError("Cannot replace with"
" unknown style "
break;
case LT_INTITLE:
- intitle = lexrc.next() && lexrc.GetInteger();
+ intitle = lexrc.next() && lexrc.getInteger();
break;
case LT_NEED_PROTECT:
- needprotect = lexrc.next() && lexrc.GetInteger();
+ needprotect = lexrc.next() && lexrc.getInteger();
break;
case LT_KEEPEMPTY:
- keepempty = lexrc.next() && lexrc.GetInteger();
+ keepempty = lexrc.next() && lexrc.getInteger();
break;
case LT_FONT:
break;
case LT_NEXTNOINDENT: // Indent next paragraph?
- if (lexrc.next() && lexrc.GetInteger())
+ if (lexrc.next() && lexrc.getInteger())
nextnoindent = true;
else
nextnoindent = false;
case LT_LATEXNAME:
if (lexrc.next())
- latexname_ = lexrc.GetString();
+ latexname_ = lexrc.getString();
break;
case LT_LATEXPARAM:
if (lexrc.next())
- latexparam_ = lexrc.GetString();
+ latexparam_ = lexrc.getString();
break;
case LT_PREAMBLE:
case LT_LEFTMARGIN: // left margin type
if (lexrc.next())
- leftmargin = lexrc.GetString();
+ leftmargin = lexrc.getString();
break;
case LT_RIGHTMARGIN: // right margin type
if (lexrc.next())
- rightmargin = lexrc.GetString();
+ rightmargin = lexrc.getString();
break;
case LT_LABELINDENT: // label indenting flag
if (lexrc.next())
- labelindent = lexrc.GetString();
+ labelindent = lexrc.getString();
break;
case LT_PARINDENT: // paragraph indent. flag
if (lexrc.next())
- parindent = lexrc.GetString();
+ parindent = lexrc.getString();
break;
case LT_PARSKIP: // paragraph skip size
if (lexrc.next())
- parskip = lexrc.GetFloat();
+ parskip = lexrc.getFloat();
break;
case LT_ITEMSEP: // item separation size
if (lexrc.next())
- itemsep = lexrc.GetFloat();
+ itemsep = lexrc.getFloat();
break;
case LT_TOPSEP: // top separation size
if (lexrc.next())
- topsep = lexrc.GetFloat();
+ topsep = lexrc.getFloat();
break;
case LT_BOTTOMSEP: // bottom separation size
if (lexrc.next())
- bottomsep = lexrc.GetFloat();
+ bottomsep = lexrc.getFloat();
break;
case LT_LABEL_BOTTOMSEP: // label bottom separation size
if (lexrc.next())
- labelbottomsep = lexrc.GetFloat();
+ labelbottomsep = lexrc.getFloat();
break;
case LT_LABELSEP: // label separator
if (lexrc.next()) {
- labelsep = subst(lexrc.GetString(), 'x', ' ');
+ labelsep = subst(lexrc.getString(), 'x', ' ');
}
break;
case LT_PARSEP: // par. separation size
if (lexrc.next())
- parsep = lexrc.GetFloat();
+ parsep = lexrc.getFloat();
break;
case LT_FILL_TOP: // fill top flag
if (lexrc.next())
- fill_top = lexrc.GetInteger();
+ fill_top = lexrc.getInteger();
break;
case LT_FILL_BOTTOM: // fill bottom flag
if (lexrc.next())
- fill_bottom = lexrc.GetInteger();
+ fill_bottom = lexrc.getInteger();
break;
case LT_NEWLINE: // newlines allowed?
if (lexrc.next())
- newline_allowed = lexrc.GetInteger();
+ newline_allowed = lexrc.getInteger();
break;
case LT_ALIGN: // paragraph align
case LT_LABELSTRING: // label string definition
if (lexrc.next())
- labelstring_ = lexrc.GetString();
+ labelstring_ = lexrc.getString();
break;
case LT_ENDLABELSTRING: // endlabel string definition
if (lexrc.next())
- endlabelstring_ = lexrc.GetString();
+ endlabelstring_ = lexrc.getString();
break;
case LT_LABELSTRING_APPENDIX: // label string appendix definition
if (lexrc.next())
- labelstring_appendix_ = lexrc.GetString();
+ labelstring_appendix_ = lexrc.getString();
break;
case LT_FREE_SPACING: // Allow for free spacing.
if (lexrc.next())
- free_spacing = lexrc.GetInteger();
+ free_spacing = lexrc.getInteger();
+ break;
+
+ case LT_PASS_THRU: // Allow for pass thru.
+ if (lexrc.next())
+ pass_thru = lexrc.getInteger();
break;
case LT_SPACING: // setspace.sty
lexrc.pushTable(alignTags, AT_LAYOUT);
alignpossible = LYX_ALIGN_NONE;
- int lineno = lexrc.GetLineNo();
+ int lineno = lexrc.getLineNo();
do {
int le = lexrc.lex();
switch (le) {
alignpossible |= LYX_ALIGN_LAYOUT;
break;
}
- } while (lineno == lexrc.GetLineNo());
+ } while (lineno == lexrc.getLineNo());
lexrc.popTable();
}
}
}
-static keyword_item endlabelTypeTags[] = {
+
+namespace {
+
+keyword_item endlabelTypeTags[] = {
{ "box", END_LABEL_BOX },
{ "filled_box", END_LABEL_FILLED_BOX },
{ "no_label", END_LABEL_NO_LABEL },
{ "static", END_LABEL_STATIC }
};
+} // namespace anon
+
+
void LyXLayout::readEndLabelType(LyXLex & lexrc)
{
pushpophelper pph(lexrc, endlabelTypeTags,
break;
case ST_OTHER:
lexrc.next();
- spacing.set(Spacing::Other, lexrc.GetFloat());
+ spacing.set(Spacing::Other, lexrc.getFloat());
break;
}
}
if (!lay.Read(lexrc, *this)) {
// Reslove fonts
lay.resfont = lay.font;
+#ifndef INHERIT_LANGUAGE
lay.resfont.realize(defaultfont());
lay.reslabelfont = lay.labelfont;
lay.reslabelfont.realize(defaultfont());
+#else
+ lay.resfont.realize(defaultfont(), default_language);
+ lay.reslabelfont = lay.labelfont;
+ lay.reslabelfont.realize(defaultfont(), default_language);
+#endif
return false; // no errors
}
lyxerr << "Error parsing style `" << lay.name() << "'" << endl;
bool error = false;
lexrc.setFile(filename);
- if (!lexrc.IsOK()) error = true;
+ if (!lexrc.isOK()) error = true;
// parsing
- while (lexrc.IsOK() && !error) {
+ while (lexrc.isOK() && !error) {
int le = lexrc.lex();
switch (le) {
case LyXLex::LEX_FEOF:
case TC_INPUT: // Include file
if (lexrc.next()) {
string tmp = LibFileSearch("layouts",
- lexrc.GetString(),
+ lexrc.getString(),
"layout");
if (Read(tmp, true)) {
case TC_STYLE:
if (lexrc.next()) {
- string name = subst(lexrc.GetString(),
+ string name = subst(lexrc.getString(),
'_', ' ');
if (hasLayout(name)) {
LyXLayout & lay = GetLayout(name);
case TC_NOSTYLE:
if (lexrc.next()) {
- string style = subst(lexrc.GetString(),
+ string const style = subst(lexrc.getString(),
'_', ' ');
if (!delete_layout(style))
lexrc.printError("Cannot delete style"
case TC_COLUMNS:
if (lexrc.next())
- columns_ = lexrc.GetInteger();
+ columns_ = lexrc.getInteger();
break;
case TC_SIDES:
if (lexrc.next()) {
- switch (lexrc.GetInteger()) {
+ switch (lexrc.getInteger()) {
case 1: sides_ = OneSide; break;
case 2: sides_ = TwoSides; break;
default:
case TC_PAGESTYLE:
lexrc.next();
- pagestyle_ = strip(lexrc.GetString());
+ pagestyle_ = strip(lexrc.getString());
break;
case TC_DEFAULTFONT:
if (!defaultfont_.resolved()) {
lexrc.printError("Warning: defaultfont should "
"be fully instantiated!");
+#ifndef INHERIT_LANGUAGE
defaultfont_.realize(LyXFont(LyXFont::ALL_SANE));
+#else
+ defaultfont_.realize(LyXFont(LyXFont::ALL_SANE),
+ default_language);
+#endif
}
break;
case TC_SECNUMDEPTH:
lexrc.next();
- secnumdepth_ = lexrc.GetInteger();
+ secnumdepth_ = lexrc.getInteger();
break;
case TC_TOCDEPTH:
lexrc.next();
- tocdepth_ = lexrc.GetInteger();
+ tocdepth_ = lexrc.getInteger();
break;
// First step to support options
break;
case TC_PROVIDESAMSMATH:
- if (lexrc.next() && lexrc.GetInteger())
+ if (lexrc.next() && lexrc.getInteger())
provides_ |= amsmath;
break;
case TC_PROVIDESMAKEIDX:
- if (lexrc.next() && lexrc.GetInteger())
+ if (lexrc.next() && lexrc.getInteger())
provides_ |= makeidx;
break;
case TC_PROVIDESURL:
- if (lexrc.next() && lexrc.GetInteger())
+ if (lexrc.next() && lexrc.getInteger())
provides_ = url;
break;
case TC_LEFTMARGIN: // left margin type
if (lexrc.next())
- leftmargin_ = lexrc.GetString();
+ leftmargin_ = lexrc.getString();
break;
case TC_RIGHTMARGIN: // right margin type
if (lexrc.next())
- rightmargin_ = lexrc.GetString();
+ rightmargin_ = lexrc.getString();
break;
}
}
lexrc.pushTable(classOptionsTags, CO_END);
bool getout = false;
- while (!getout && lexrc.IsOK()) {
+ while (!getout && lexrc.isOK()) {
int le = lexrc.lex();
switch (le) {
case LyXLex::LEX_UNDEF:
switch (static_cast<ClassOptionsTags>(le)) {
case CO_FONTSIZE:
lexrc.next();
- opt_fontsize_ = strip(lexrc.GetString());
+ opt_fontsize_ = strip(lexrc.getString());
break;
case CO_PAGESTYLE:
lexrc.next();
- opt_pagestyle_ = strip(lexrc.GetString());
+ opt_pagestyle_ = strip(lexrc.getString());
break;
case CO_OTHER:
lexrc.next();
- options_ = lexrc.GetString();
+ options_ = lexrc.getString();
break;
case CO_END:
getout = true;
bool LyXTextClass::hasLayout(string const & name) const
{
return find_if(layoutlist.begin(), layoutlist.end(),
- compare_memfun(&LyXLayout::name, name))
+ lyx::compare_memfun(&LyXLayout::name, name))
!= layoutlist.end();
}
LayoutList::const_iterator cit =
find_if(layoutlist.begin(),
layoutlist.end(),
- compare_memfun(&LyXLayout::name, name));
- Assert(cit != layoutlist.end()); // we require the name to exist
+ lyx::compare_memfun(&LyXLayout::name, name));
+ lyx::Assert(cit != layoutlist.end()); // we require the name to exist
return (*cit);
}
LayoutList::iterator it =
find_if(layoutlist.begin(),
layoutlist.end(),
- compare_memfun(&LyXLayout::name, name));
- Assert(it != layoutlist.end()); // we require the name to exist
+ lyx::compare_memfun(&LyXLayout::name, name));
+ lyx::Assert(it != layoutlist.end()); // we require the name to exist
return (*it);
}
{
LayoutList::iterator it =
remove_if(layoutlist.begin(), layoutlist.end(),
- compare_memfun(&LyXLayout::name, name));
+ lyx::compare_memfun(&LyXLayout::name, name));
LayoutList::iterator end = layoutlist.end();
bool const ret = (it != end);
layoutlist.erase(it, end);
{
ClassList::const_iterator cit =
find_if(classlist.begin(), classlist.end(),
- compare_memfun(&LyXTextClass::name, textclass));
+ lyx::compare_memfun(&LyXTextClass::name, textclass));
return cit != classlist.end() ?
make_pair(true, size_type(cit - classlist.begin())) :
make_pair(false, size_type(0));
LyXTextClassList::NameOfLayout(LyXTextClassList::size_type textclass,
LyXTextClass::size_type layout) const
{
- static string dummy("dummy");
+ static string const dummy("dummy");
classlist[textclass].load();
if (layout < classlist[textclass].numLayouts())
return classlist[textclass][layout].name();
string const &
LyXTextClassList::NameOfClass(LyXTextClassList::size_type number) const
{
- static string dummy("dummy");
+ static string const dummy("dummy");
if (classlist.size() == 0) {
return dummy;
}
- Assert(number < classlist.size());
+ lyx::Assert(number < classlist.size());
return classlist[number].name();
}
string const &
LyXTextClassList::LatexnameOfClass(LyXTextClassList::size_type number) const
{
- static string dummy("dummy");
+ static string const dummy("dummy");
classlist[number].load();
if (classlist.size() == 0) {
return dummy;
}
- Assert(number < classlist.size());
+ lyx::Assert(number < classlist.size());
return classlist[number].latexname();
}
string const &
LyXTextClassList::DescOfClass(LyXTextClassList::size_type number) const
{
- static string dummy("dummy");
+ static string const dummy("dummy");
if (classlist.size() == 0) {
return dummy;
}
- Assert(number < classlist.size());
+ lyx::Assert(number < classlist.size());
return classlist[number].description();
}
<< real_file << endl;
}
- if (!lex.IsOK()) {
+ if (!lex.isOK()) {
lyxerr << "LyXTextClassList::Read: unable to open "
"textclass file `" << MakeDisplayPath(real_file, 1000)
<< "'\nCheck your installation. LyX can't continue."
<< endl;
return false;
}
+
bool finished = false;
- string fname, clname, desc;
// Parse config-file
lyxerr[Debug::TCLASS] << "Starting parsing of textclass.lst" << endl;
- while (lex.IsOK() && !finished) {
+ while (lex.isOK() && !finished) {
lyxerr[Debug::TCLASS] << "\tline by line" << endl;
switch (lex.lex()) {
case LyXLex::LEX_FEOF:
finished = true;
break;
default:
- fname = lex.GetString();
+ string const fname = lex.getString();
lyxerr[Debug::TCLASS] << "Fname: " << fname << endl;
if (lex.next()) {
- clname = lex.GetString();
+ string const clname = lex.getString();
lyxerr[Debug::TCLASS]
<< "Clname: " << clname << endl;
if (lex.next()) {
- desc = lex.GetString();
+ string const desc = lex.getString();
lyxerr[Debug::TCLASS]
<< "Desc: " << desc << endl;
// This code is run when we have