X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayout.cpp;h=7dc41e4810894989e73a50dd96cf23b97418f240;hb=bd3d6369c294ce2980953e7702981d0daee53cea;hp=7f4925a8c3798d55518d18e7da37eabd4f942973;hpb=01ec30ca8626323ef8888018a0150204915029f9;p=lyx.git diff --git a/src/Layout.cpp b/src/Layout.cpp index 7f4925a8c3..7dc41e4810 100644 --- a/src/Layout.cpp +++ b/src/Layout.cpp @@ -23,8 +23,9 @@ #include "support/lassert.h" #include "support/lstrings.h" #include "support/Messages.h" - #include "support/regex.h" +#include "support/textutils.h" + using namespace std; using namespace lyx::support; @@ -183,7 +184,7 @@ bool Layout::read(Lexer & lex, TextClass const & tclass) { "htmllabel", LT_HTMLLABEL }, { "htmllabelattr", LT_HTMLLABELATTR }, { "htmllabelfirst", LT_HTMLLABELFIRST }, - { "htmlpremable", LT_HTMLPREAMBLE }, + { "htmlpreamble", LT_HTMLPREAMBLE }, { "htmlstyle", LT_HTMLSTYLE }, { "htmltag", LT_HTMLTAG }, { "htmltitle", LT_HTMLTITLE }, @@ -576,8 +577,8 @@ bool Layout::read(Lexer & lex, TextClass const & tclass) } lex.popTable(); // make sure we only have inpreamble = true for commands - if (inpreamble && latextype != LATEX_COMMAND) { - LYXERR0("InPreamble not permitted except with Command-type layouts."); + if (inpreamble && latextype != LATEX_COMMAND && latextype != LATEX_PARAGRAPH) { + LYXERR0("InPreamble not permitted except with command and paragraph layouts."); LYXERR0("Layout name: " << name()); inpreamble = false; } @@ -876,12 +877,14 @@ void Layout::readSpacing(Lexer & lex) namespace { -docstring const i18npreamble(Language const * lang, docstring const & templ) +docstring const i18npreamble(Language const * lang, docstring const & templ, bool const polyglossia) { if (templ.empty()) return templ; - string preamble = subst(to_utf8(templ), "$$lang", lang->babel()); + string preamble = polyglossia ? + subst(to_utf8(templ), "$$lang", lang->polyglossia()) : + subst(to_utf8(templ), "$$lang", lang->babel()); #ifdef TEX2LYX // tex2lyx does not have getMessages() @@ -911,15 +914,15 @@ docstring const i18npreamble(Language const * lang, docstring const & templ) } -docstring const Layout::langpreamble(Language const * lang) const +docstring const Layout::langpreamble(Language const * lang, bool const polyglossia) const { - return i18npreamble(lang, langpreamble_); + return i18npreamble(lang, langpreamble_, polyglossia); } -docstring const Layout::babelpreamble(Language const * lang) const +docstring const Layout::babelpreamble(Language const * lang, bool const polyglossia) const { - return i18npreamble(lang, babelpreamble_); + return i18npreamble(lang, babelpreamble_, polyglossia); } @@ -997,7 +1000,7 @@ string Layout::defaultCSSClass() const docstring::const_iterator en = name().end(); for (; it != en; ++it) { char_type const c = *it; - if (c >= 0x80 || !isalnum(c)) { + if (!isAlphaASCII(c)) { if (d.empty()) // make sure we don't start with an underscore, // as that sometimes causes problems.