X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayout.cpp;h=ec6e2dc5a5dfe760f5c931acea611e93f1635ddf;hb=8ea66efe16ad109a5c107716185fb82bbebca8c8;hp=a57a28e813a317f2aa0ca9a5d178124379ac7ab5;hpb=07b2898afe28f64f4f6f16e16351d90408927ec5;p=lyx.git diff --git a/src/Layout.cpp b/src/Layout.cpp index a57a28e813..ec6e2dc5a5 100644 --- a/src/Layout.cpp +++ b/src/Layout.cpp @@ -24,7 +24,6 @@ #include "support/lassert.h" #include "support/lstrings.h" #include "support/Messages.h" -#include "support/regex.h" #include "support/textutils.h" @@ -859,72 +858,6 @@ void Layout::readSpacing(Lexer & lex) } -namespace { - -docstring const i18npreamble(Language const * lang, Encoding const & enc, - docstring const & templ, bool const polyglossia) -{ - if (templ.empty()) - return templ; - - string preamble = polyglossia ? - subst(to_utf8(templ), "$$lang", lang->polyglossia()) : - subst(to_utf8(templ), "$$lang", lang->babel()); - -#ifdef TEX2LYX - // tex2lyx does not have getMessages() - LASSERT(false, /**/); - (void)enc; -#else - string const langenc = lang->encoding()->iconvName(); - string const texenc = lang->encoding()->latexName(); - string const bufenc = enc.iconvName(); - // First and second character of plane 15 (Private Use Area) - string const s1 = "\xf3\xb0\x80\x80"; // U+F0000 - string const s2 = "\xf3\xb0\x80\x81"; // U+F0001 - // FIXME UNICODE - // lyx::regex is not unicode-safe. - // Should use QRegExp or (boost::u32regex, but that requires ICU) - static regex const reg("_\\(([^\\)]+)\\)"); - smatch sub; - while (regex_search(preamble, sub, reg)) { - string const key = sub.str(1); - docstring const name = lang->translateLayout(key); - // Check whether name can be encoded in the buffer encoding - bool encodable = true; - for (size_t i = 0; i < name.size(); ++i) { - if (enc.latexChar(name[i], true)[0] != name[i]) { - encodable = false; - break; - } - } - string const translated = encodable ? to_utf8(name) - : "\\inputencoding{" + texenc + "}" - + s1 + langenc + s2 + to_utf8(name) - + s1 + bufenc + s2; - preamble = subst(preamble, sub.str(), translated); - } -#endif - return from_utf8(preamble); -} - -} - - -docstring const Layout::langpreamble(Language const * lang, - Encoding const & enc, bool const polyglossia) const -{ - return i18npreamble(lang, enc, langpreamble_, polyglossia); -} - - -docstring const Layout::babelpreamble(Language const * lang, - Encoding const & enc, bool const polyglossia) const -{ - return i18npreamble(lang, enc, babelpreamble_, polyglossia); -} - - string const & Layout::htmltag() const { if (htmltag_.empty())