File indexing completed on 2024-05-05 05:54:12
0001 /* 0002 This file is part of Konsole, a terminal emulator for KDE. 0003 0004 SPDX-FileCopyrightText: 2018 Mariusz Glebocki <mglb@arccos-1.net> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 /* clang-format off */ 0010 0011 #ifndef CATEGORY_PROPERTY_VALUE 0012 #define CATEGORY_PROPERTY_VALUE(val, sym, intVal) 0013 #endif 0014 #ifndef CATEGORY_PROPERTY_GROUP 0015 #define CATEGORY_PROPERTY_GROUP(val, sym, intVal) 0016 #endif 0017 0018 CATEGORY_PROPERTY_VALUE(Lu, UppercaseLetter, 1<<0) // an uppercase letter 0019 CATEGORY_PROPERTY_VALUE(Ll, LowercaseLetter, 1<<1) // a lowercase letter 0020 CATEGORY_PROPERTY_VALUE(Lt, TitlecaseLetter, 1<<2) // a digraphic character, with first part uppercase 0021 CATEGORY_PROPERTY_GROUP(LC, CasedLetter, 1<<0|1<<1|1<<2) 0022 CATEGORY_PROPERTY_VALUE(Lm, ModifierLetter, 1<<3) // a modifier letter 0023 CATEGORY_PROPERTY_VALUE(Lo, OtherLetter, 1<<4) // other letters, including syllables and ideographs 0024 CATEGORY_PROPERTY_GROUP(L, Letter, 1<<0|1<<1|1<<2|1<<3|1<<4) 0025 CATEGORY_PROPERTY_VALUE(Mn, NonspacingMark, 1<<5) // a nonspacing combining mark (zero advance width) 0026 CATEGORY_PROPERTY_VALUE(Mc, SpacingMark, 1<<6) // a spacing combining mark (positive advance width) 0027 CATEGORY_PROPERTY_VALUE(Me, EnclosingMark, 1<<7) // an enclosing combining mark 0028 CATEGORY_PROPERTY_GROUP(M, Mark, 1<<5|1<<6|1<<7) 0029 CATEGORY_PROPERTY_VALUE(Nd, DecimalNumber, 1<<8) // a decimal digit 0030 CATEGORY_PROPERTY_VALUE(Nl, LetterNumber, 1<<9) // a letterlike numeric character 0031 CATEGORY_PROPERTY_VALUE(No, OtherNumber, 1<<10) // a numeric character of other type 0032 CATEGORY_PROPERTY_GROUP(N, Number, 1<<8|1<<9|1<<10) 0033 CATEGORY_PROPERTY_VALUE(Pc, ConnectorPunctuation, 1<<11) // a connecting punctuation mark, like a tie 0034 CATEGORY_PROPERTY_VALUE(Pd, DashPunctuation, 1<<12) // a dash or hyphen punctuation mark 0035 CATEGORY_PROPERTY_VALUE(Ps, OpenPunctuation, 1<<13) // an opening punctuation mark (of a pair) 0036 CATEGORY_PROPERTY_VALUE(Pe, ClosePunctuation, 1<<14) // a closing punctuation mark (of a pair) 0037 CATEGORY_PROPERTY_VALUE(Pi, InitialPunctuation, 1<<15) // an initial quotation mark 0038 CATEGORY_PROPERTY_VALUE(Pf, FinalPunctuation, 1<<16) // a final quotation mark 0039 CATEGORY_PROPERTY_VALUE(Po, OtherPunctuation, 1<<17) // a punctuation mark of other type 0040 CATEGORY_PROPERTY_GROUP(P, Punctuation, 1<<11|1<<12|1<<13|1<<14|1<<15|1<<16|1<<17) 0041 CATEGORY_PROPERTY_VALUE(Sm, MathSymbol, 1<<18) // a symbol of mathematical use 0042 CATEGORY_PROPERTY_VALUE(Sc, CurrencySymbol, 1<<19) // a currency sign 0043 CATEGORY_PROPERTY_VALUE(Sk, ModifierSymbol, 1<<20) // a non-letterlike modifier symbol 0044 CATEGORY_PROPERTY_VALUE(So, OtherSymbol, 1<<21) // a symbol of other type 0045 CATEGORY_PROPERTY_GROUP(S, Symbol, 1<<18|1<<19|1<<20|1<<21) 0046 CATEGORY_PROPERTY_VALUE(Zs, SpaceSeparator, 1<<22) // a space character (of various non-zero widths) 0047 CATEGORY_PROPERTY_VALUE(Zl, LineSeparator, 1<<23) // U+2028 LINE SEPARATOR only 0048 CATEGORY_PROPERTY_VALUE(Zp, ParagraphSeparator, 1<<24) // U+2029 PARAGRAPH SEPARATOR only 0049 CATEGORY_PROPERTY_GROUP(Z, Separator, 1<<22|1<<23|1<<24) 0050 CATEGORY_PROPERTY_VALUE(Cc, Control, 1<<25) // a C0 or C1 control code 0051 CATEGORY_PROPERTY_VALUE(Cf, Format, 1<<26) // a format control character 0052 CATEGORY_PROPERTY_VALUE(Cs, Surrogate, 1<<27) // a surrogate code point 0053 CATEGORY_PROPERTY_VALUE(Co, PrivateUse, 1<<28) // a private-use character 0054 CATEGORY_PROPERTY_VALUE(Cn, Unassigned, 1<<29) // a reserved unassigned code point or a noncharacter 0055 CATEGORY_PROPERTY_GROUP(C, Other, 1<<25|1<<26|1<<27|1<<28|1<<29) 0056 0057 #undef CATEGORY_PROPERTY_VALUE 0058 #undef CATEGORY_PROPERTY_GROUP 0059 0060 /**************************************/ 0061 0062 #ifndef EAST_ASIAN_WIDTH_PROPERTY_VALUE 0063 #define EAST_ASIAN_WIDTH_PROPERTY_VALUE(val, sym, intVal) 0064 #endif 0065 0066 EAST_ASIAN_WIDTH_PROPERTY_VALUE(A, Ambiguous, 1<<0) 0067 EAST_ASIAN_WIDTH_PROPERTY_VALUE(F, Fullwidth, 1<<1) 0068 EAST_ASIAN_WIDTH_PROPERTY_VALUE(H, Halfwidth, 1<<2) 0069 EAST_ASIAN_WIDTH_PROPERTY_VALUE(N, Neutral, 1<<3) 0070 EAST_ASIAN_WIDTH_PROPERTY_VALUE(Na, Narrow, 1<<4) 0071 EAST_ASIAN_WIDTH_PROPERTY_VALUE(W, Wide, 1<<5) 0072 0073 #undef EAST_ASIAN_WIDTH_PROPERTY_VALUE 0074 0075 /**************************************/ 0076 0077 #ifndef EMOJI_PROPERTY_VALUE 0078 #define EMOJI_PROPERTY_VALUE(val, sym, intVal) 0079 #endif 0080 0081 EMOJI_PROPERTY_VALUE(, None, 0) 0082 EMOJI_PROPERTY_VALUE(Emoji, Emoji, 1<<0) 0083 EMOJI_PROPERTY_VALUE(Emoji_Presentation, EmojiPresentation, 1<<1) 0084 EMOJI_PROPERTY_VALUE(Emoji_Modifier, EmojiModifier, 1<<2) 0085 EMOJI_PROPERTY_VALUE(Emoji_Modifier_Base, EmojiModifier_Base, 1<<3) 0086 EMOJI_PROPERTY_VALUE(Emoji_Component, EmojiComponent, 1<<4) 0087 0088 #undef EMOJI_PROPERTY_VALUE