X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FEncoding.h;h=52bfc95692190fc1aecb6a1be8bf3b3bc9a9fc52;hb=c6f262a5b74e7bf595efd6a02ca26a2900e5e6eb;hp=00d0106b543fc36c1925d6e61e9b04e4d4c8fb60;hpb=c6b98a504f95f128e65ecdb6718614086c642c5d;p=lyx.git diff --git a/src/Encoding.h b/src/Encoding.h index 00d0106b54..52bfc95692 100644 --- a/src/Encoding.h +++ b/src/Encoding.h @@ -52,6 +52,8 @@ enum CharInfoFlags { CharInfoMathNoTermination = 32, /// CharInfoForceSelected = 64, + /// + CharInfoDeprecated = 128 }; @@ -86,6 +88,8 @@ public: bool force() const { return flags_ & CharInfoForce ? true : false; } /// Force the LaTeX command for some encodings? bool forceselected() const { return flags_ & CharInfoForceSelected ? true : false; } + /// Disable LaTeX command => char_type conversion for this deprecated symbol? + bool deprecated() const { return flags_ & CharInfoDeprecated ? true : false; } /// TIPA shortcut std::string const tipashortcut() const { return tipashortcut_; } /// \c textcommand needs no termination (such as {} or space). @@ -126,7 +130,8 @@ public: /// Represent any of the above packages static int const any; /// - Encoding() : fixedwidth_(true), unsafe_(false), complete_(false) {} + Encoding() : fixedwidth_(true), unsafe_(false), forced_(0), + start_encodable_(0), package_(none), complete_(false) {} /// Encoding(std::string const & n, std::string const & l, std::string const & g, std::string const & i, @@ -267,20 +272,25 @@ public: /// Return the TIPA shortcut static std::string const TIPAShortcut(char_type c); /** - * Is this a known char from some language? - * If \p preamble is empty and code point \p c is known to belong - * to a supported script, true is returned and \p preamble is set - * to the corresponding entry in the unicodesymbols file. - * If \p preamble is not empty, a check is made whether code point - * \p c is a known character matching the preamble entry. + * Test, if \p c is a supported Greek or Cyrillic letter. + * Return script macro name or empty string. */ - static bool isKnownScriptChar(char_type const c, std::string & preamble); + static std::string const isKnownScriptChar(char_type const c); + /// Does \p fontenc support characters in \p script? + static bool fontencSupportsScript(std::string const & fontenc, + std::string const & script); /** * Do we have to display in italics this character when in mathmode? * This is true if the "mathalpha" flag is set. We use this for * letters and accented characters that are output as math commands. */ static bool isMathAlpha(char_type c); + /** + * Do we have to wrap in \text this character when in mathmode? + * This is true if \p c is not ascii and the "mathalpha" flag is not + * set and a mathcommand is not defined in the unicodesymbols file. + */ + static bool isUnicodeTextOnly(char_type c); /** * Register \p c as a mathmode command. */