size_t const phrases_nr = sizeof(special_phrases)/sizeof(special_phrase);
-
-/// Get the real encoding of a character with font \p font.
-/// doc_encoding == bparams.encoding(), but we use a precomputed variable
-/// since bparams.encoding() is expensive
-inline Encoding const & getEncoding(BufferParams const & bparams,
- Encoding const & doc_encoding, LyXFont const & font)
-{
- if (bparams.inputenc == "auto" || bparams.inputenc == "default")
- return *(font.language()->encoding());
- return doc_encoding;
-}
-
} // namespace anon
}
-bool Paragraph::Pimpl::simpleTeXBlanks(BufferParams const & bparams,
- Encoding const & doc_encoding,
+bool Paragraph::Pimpl::simpleTeXBlanks(Encoding const & encoding,
odocstream & os, TexRow & texrow,
pos_type & i,
unsigned int & column,
char_type next = getChar(i + 1);
if (Encodings::isCombiningChar(next)) {
// This space has an accent, so we must always output it.
- Encoding const & encoding = getEncoding(bparams, doc_encoding, font);
column += latexSurrogatePair(os, ' ', next, encoding) - 1;
++i;
return true;
void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const & buf,
BufferParams const & bparams,
- Encoding const & doc_encoding,
odocstream & os,
TexRow & texrow,
OutputParams const & runparams,
- LyXFont & font,
LyXFont & running_font,
LyXFont & basefont,
LyXFont const & outerfont,
} else {
if (open_font) {
column += running_font.latexWriteEndChanges(
- os, basefont, basefont, bparams);
+ os, basefont, basefont);
open_font = false;
}
- basefont = owner_->getLayoutFont(bparams, outerfont);
- running_font = basefont;
- if (font.family() == LyXFont::TYPEWRITER_FAMILY)
+ if (running_font.family() == LyXFont::TYPEWRITER_FAMILY)
os << '~';
+ basefont = owner_->getLayoutFont(bparams, outerfont);
+ running_font = basefont;
+
if (runparams.moving_arg)
os << "\\protect ";
// some insets cannot be inside a font change command
if (open_font && inset->noFontChange()) {
column += running_font.latexWriteEndChanges(
- os, basefont, basefont, bparams);
+ os, basefont, basefont);
open_font = false;
basefont = owner_->getLayoutFont(bparams, outerfont);
running_font = basefont;
break;
}
// Typewriter font also has them
- if (font.family() == LyXFont::TYPEWRITER_FAMILY) {
+ if (running_font.family() == LyXFont::TYPEWRITER_FAMILY) {
os.put(c);
break;
}
break;
case '-': // "--" in Typewriter mode -> "-{}-"
- if (i <= size() - 2
- && getChar(i + 1) == '-'
- && font.family() == LyXFont::TYPEWRITER_FAMILY) {
+ if (i <= size() - 2 &&
+ getChar(i + 1) == '-' &&
+ running_font.family() == LyXFont::TYPEWRITER_FAMILY) {
os << "-{}";
column += 2;
} else {
// I assume this is hack treating typewriter as verbatim
// FIXME UNICODE: This can fail if c cannot be encoded
// in the current encoding.
- if (font.family() == LyXFont::TYPEWRITER_FAMILY) {
+ if (running_font.family() == LyXFont::TYPEWRITER_FAMILY) {
if (c != '\0') {
os.put(c);
}
}
if (pnr == phrases_nr && c != '\0') {
- Encoding const & encoding = getEncoding(bparams, doc_encoding, font);
+ Encoding const & encoding = *(runparams.encoding);
if (i < size() - 1) {
char_type next = getChar(i + 1);
if (Encodings::isCombiningChar(next)) {
FontList::const_iterator fend = fontlist.end();
for (; fcit != fend; ++fcit) {
if (fcit->font().noun() == LyXFont::ON) {
- lyxerr[Debug::LATEX] << "font.noun: "
+ LYXERR(Debug::LATEX) << "font.noun: "
<< fcit->font().noun()
<< endl;
features.require("noun");
- lyxerr[Debug::LATEX] << "Noun enabled. Font: "
+ LYXERR(Debug::LATEX) << "Noun enabled. Font: "
<< to_utf8(fcit->font().stateText(0))
<< endl;
}
break;
default:
features.require("color");
- lyxerr[Debug::LATEX] << "Color enabled. Font: "
+ LYXERR(Debug::LATEX) << "Color enabled. Font: "
<< to_utf8(fcit->font().stateText(0))
<< endl;
}
language != latex_language)
{
features.useLanguage(language);
- lyxerr[Debug::LATEX] << "Found language "
+ LYXERR(Debug::LATEX) << "Found language "
<< language->babel() << endl;
}
}
}
// then the contents
- Encoding const & doc_encoding = bparams.encoding();
for (pos_type i = 0; i < size() ; ++i) {
for (size_t pnr = 0; pnr < phrases_nr; ++pnr) {
if (!special_phrases[pnr].builtin
break;
}
}
- // We do not need the completely realized font, since we are
- // only interested in the language, and that is never inherited.
- // Therefore we can use getFontSettings instead of getFont.
- LyXFont const & font = owner_->getFontSettings(bparams, i);
- Encoding const & encoding = getEncoding(bparams, doc_encoding, font);
- encoding.validate(getChar(i), features);
+ Encodings::validate(getChar(i), features);
}
}