}
-int readParToken(Buffer const & buf, Paragraph & par, LyXLex & lex,
- string const & token)
+void readParToken(Buffer const & buf, Paragraph & par, LyXLex & lex,
+ string const & token, LyXFont & font)
{
- static LyXFont font;
static Change change;
BufferParams const & bp = buf.params();
bool hasLayout = tclass.hasLayout(layoutname);
if (!hasLayout) {
- lyxerr << "Layout '" << layoutname << "' does not"
- << " exist in textclass '" << tclass.name()
- << "'." << endl;
- lyxerr << "Trying to use default layout instead."
- << endl;
+ buf.error(ErrorItem(_("Unknown layout"),
+ bformat(_("Layout '%1$s' does not exists in textclass '%2$s'\nTrying to use the default instead.\n"),
+ layoutname, tclass.name()), par.id(), 0, par.size()));
layoutname = tclass.defaultLayoutName();
}
string line = lex.getString();
buf.error(ErrorItem(_("Unknown Inset"), line,
par.id(), 0, par.size()));
- return 1;
}
} else if (token == "\\family") {
lex.next();
par.cleanChanges();
change = Change(Change::UNCHANGED);
} else if (token == "\\change_inserted") {
- lex.nextToken();
+ lex.eatLine();
std::istringstream is(lex.getString());
int aid;
lyx::time_type ct;
is >> aid >> ct;
change = Change(Change::INSERTED, bp.author_map[aid], ct);
} else if (token == "\\change_deleted") {
- lex.nextToken();
+ lex.eatLine();
std::istringstream is(lex.getString());
int aid;
lyx::time_type ct;
buf.error(ErrorItem(_("Unknown token"),
bformat(_("Unknown token: %1$s %2$s\n"), token, lex.getString()),
par.id(), 0, par.size()));
- return 1;
}
- return 0;
}
-int readParagraph(Buffer const & buf, Paragraph & par, LyXLex & lex)
+void readParagraph(Buffer const & buf, Paragraph & par, LyXLex & lex)
{
- int unknown = 0;
-
lex.nextToken();
string token = lex.getString();
+ LyXFont font;
while (lex.isOK()) {
- unknown += readParToken(buf, par, lex, token);
+ readParToken(buf, par, lex, token, font);
lex.nextToken();
token = lex.getString();
break;
}
}
-
- return unknown;
}
int LyXText::singleWidth(Paragraph const & par,
pos_type pos, char c, LyXFont const & font) const
{
- if (pos >= par.size()) {
- lyxerr << "in singleWidth(), pos: " << pos << endl;
- BOOST_ASSERT(false);
- return 0;
- }
+ BOOST_ASSERT(pos < par.size());
// The most common case is handled first (Asger)
if (IsPrintable(c)) {
- if (!font.language()->RightToLeft()) {
+ if (font.language()->RightToLeft()) {
if ((lyxrc.font_norm_type == LyXRC::ISO_8859_6_8 ||
lyxrc.font_norm_type == LyXRC::ISO_10646_1)
&& font.language()->lang() == "arabic") {
else
c = par.transformChar(c, pos);
} else if (font.language()->lang() == "hebrew" &&
- Encodings::IsComposeChar_hebrew(c))
+ Encodings::IsComposeChar_hebrew(c))
return 0;
}
return font_metrics::width(c, font);
&& !isFirstInSequence(pit, pars_)))
&& align == LYX_ALIGN_BLOCK
&& !par.params().noindent()
- // in tabulars and ert paragraphs are never indented!
+ // in charstyles, tabulars and ert paragraphs are never indented!
&& (par.ownerCode() != InsetBase::TEXT_CODE
- && par.ownerCode() != InsetBase::ERT_CODE)
+ && par.ownerCode() != InsetBase::ERT_CODE
+ && par.ownerCode() != InsetBase::CHARSTYLE_CODE)
&& (par.layout() != tclass.defaultLayout()
|| bv()->buffer()->params().paragraph_separation ==
BufferParams::PARSEP_INDENT))
int LyXText::rightMargin(Paragraph const & par) const
{
- LyXTextClass const & tclass = bv()->buffer()->params().getLyXTextClass();
-
// We do not want rightmargins on inner texts.
if (bv()->text() != this)
return 0;
+ LyXTextClass const & tclass = bv()->buffer()->params().getLyXTextClass();
int const r_margin =
::rightMargin()
+ font_metrics::signedWidth(tclass.rightmargin(),
* 4 / (par.getDepth() + 4);
return r_margin;
-
}
&& (pars_[cpit].layout() == pars_[tmppit].layout()
|| pars_[tmppit].layout() == tclass.defaultLayout())
&& pars_[cpit].getAlign() == pars_[tmppit].getAlign()) {
- mergeParagraph(bufparams, buf.paragraphs(), cpit);
+ mergeParagraph(bufparams, pars_, cpit);
if (cur.pos() != 0 && pars_[cpit].isSeparator(cur.pos() - 1))
--cur.pos();
break;
}
+ if (token == "\\end_body") {
+ continue;
+ }
+
+ if (token == "\\begin_body") {
+ continue;
+ }
+
if (token == "\\end_document") {
return false;
}
- // FIXME: ugly.
- int unknown = 0;
-
if (token == "\\begin_layout") {
lex.pushToken(token);
--depth;
}
} else {
- ++unknown;
+ lyxerr << "Handling unknown body token: `"
+ << token << '\'' << endl;
}
-
}
return true;
}
else if (y > yo_ + descent())
yy = y - yo_ - descent();
+ lyxerr << " xo_=" << xo_ << " yo_=" << yo_
+ << " width_=" << width_ << " ascent=" << ascent()
+ << " descent=" << descent()
+ << " dist=" << xx+yy <<endl;
return xx + yy;
}