1 // Generated by gmmproc 2.64.2 -- DO NOT MODIFY!
2 #ifndef _GLIBMM_UNICODE_H
3 #define _GLIBMM_UNICODE_H
4 
5 
6 /* Copyright (C) 2002 The gtkmm Development Team
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
20  */
21 
22 
23 #include <glib.h>
24 
25 // Not used, but we want to get rid of possible <ctype.h> macros.
26 #include <cctype>
27 
28 #undef isalnum
29 #undef isalpha
30 #undef iscntrl
31 #undef isdigit
32 #undef isgraph
33 #undef islower
34 #undef isprint
35 #undef ispunct
36 #undef isspace
37 #undef isupper
38 #undef isxdigit
39 #undef istitle
40 #undef isdefined
41 #undef iswide
42 #undef toupper
43 #undef tolower
44 #undef totitle
45 
46 
47 namespace Glib
48 {
49 
50 /** @addtogroup glibmmEnums glibmm Enums and Flags */
51 
52 /**
53  *  @var UnicodeType UNICODE_CONTROL
54  * General category "Other, Control" (Cc).
55  *
56  *  @var UnicodeType UNICODE_FORMAT
57  * General category "Other, Format" (Cf).
58  *
59  *  @var UnicodeType UNICODE_UNASSIGNED
60  * General category "Other, Not Assigned" (Cn).
61  *
62  *  @var UnicodeType UNICODE_PRIVATE_USE
63  * General category "Other, Private Use" (Co).
64  *
65  *  @var UnicodeType UNICODE_SURROGATE
66  * General category "Other, Surrogate" (Cs).
67  *
68  *  @var UnicodeType UNICODE_LOWERCASE_LETTER
69  * General category "Letter, Lowercase" (Ll).
70  *
71  *  @var UnicodeType UNICODE_MODIFIER_LETTER
72  * General category "Letter, Modifier" (Lm).
73  *
74  *  @var UnicodeType UNICODE_OTHER_LETTER
75  * General category "Letter, Other" (Lo).
76  *
77  *  @var UnicodeType UNICODE_TITLECASE_LETTER
78  * General category "Letter, Titlecase" (Lt).
79  *
80  *  @var UnicodeType UNICODE_UPPERCASE_LETTER
81  * General category "Letter, Uppercase" (Lu).
82  *
83  *  @var UnicodeType UNICODE_SPACING_MARK
84  * General category "Mark, Spacing" (Mc).
85  *
86  *  @var UnicodeType UNICODE_ENCLOSING_MARK
87  * General category "Mark, Enclosing" (Me).
88  *
89  *  @var UnicodeType UNICODE_NON_SPACING_MARK
90  * General category "Mark, Nonspacing" (Mn).
91  *
92  *  @var UnicodeType UNICODE_DECIMAL_NUMBER
93  * General category "Number, Decimal Digit" (Nd).
94  *
95  *  @var UnicodeType UNICODE_LETTER_NUMBER
96  * General category "Number, Letter" (Nl).
97  *
98  *  @var UnicodeType UNICODE_OTHER_NUMBER
99  * General category "Number, Other" (No).
100  *
101  *  @var UnicodeType UNICODE_CONNECT_PUNCTUATION
102  * General category "Punctuation, Connector" (Pc).
103  *
104  *  @var UnicodeType UNICODE_DASH_PUNCTUATION
105  * General category "Punctuation, Dash" (Pd).
106  *
107  *  @var UnicodeType UNICODE_CLOSE_PUNCTUATION
108  * General category "Punctuation, Close" (Pe).
109  *
110  *  @var UnicodeType UNICODE_FINAL_PUNCTUATION
111  * General category "Punctuation, Final quote" (Pf).
112  *
113  *  @var UnicodeType UNICODE_INITIAL_PUNCTUATION
114  * General category "Punctuation, Initial quote" (Pi).
115  *
116  *  @var UnicodeType UNICODE_OTHER_PUNCTUATION
117  * General category "Punctuation, Other" (Po).
118  *
119  *  @var UnicodeType UNICODE_OPEN_PUNCTUATION
120  * General category "Punctuation, Open" (Ps).
121  *
122  *  @var UnicodeType UNICODE_CURRENCY_SYMBOL
123  * General category "Symbol, Currency" (Sc).
124  *
125  *  @var UnicodeType UNICODE_MODIFIER_SYMBOL
126  * General category "Symbol, Modifier" (Sk).
127  *
128  *  @var UnicodeType UNICODE_MATH_SYMBOL
129  * General category "Symbol, Math" (Sm).
130  *
131  *  @var UnicodeType UNICODE_OTHER_SYMBOL
132  * General category "Symbol, Other" (So).
133  *
134  *  @var UnicodeType UNICODE_LINE_SEPARATOR
135  * General category "Separator, Line" (Zl).
136  *
137  *  @var UnicodeType UNICODE_PARAGRAPH_SEPARATOR
138  * General category "Separator, Paragraph" (Zp).
139  *
140  *  @var UnicodeType UNICODE_SPACE_SEPARATOR
141  * General category "Separator, Space" (Zs).
142  *
143  *  @enum UnicodeType
144  *
145  * These are the possible character classifications from the
146  * Unicode specification.
147  * See [Unicode Character Database](http://www.unicode.org/reports/tr44/#General_Category_Values).
148  *
149  * @ingroup glibmmEnums
150  */
151 enum UnicodeType
152 {
153   UNICODE_CONTROL,
154   UNICODE_FORMAT,
155   UNICODE_UNASSIGNED,
156   UNICODE_PRIVATE_USE,
157   UNICODE_SURROGATE,
158   UNICODE_LOWERCASE_LETTER,
159   UNICODE_MODIFIER_LETTER,
160   UNICODE_OTHER_LETTER,
161   UNICODE_TITLECASE_LETTER,
162   UNICODE_UPPERCASE_LETTER,
163   UNICODE_SPACING_MARK,
164   UNICODE_ENCLOSING_MARK,
165   UNICODE_NON_SPACING_MARK,
166   UNICODE_DECIMAL_NUMBER,
167   UNICODE_LETTER_NUMBER,
168   UNICODE_OTHER_NUMBER,
169   UNICODE_CONNECT_PUNCTUATION,
170   UNICODE_DASH_PUNCTUATION,
171   UNICODE_CLOSE_PUNCTUATION,
172   UNICODE_FINAL_PUNCTUATION,
173   UNICODE_INITIAL_PUNCTUATION,
174   UNICODE_OTHER_PUNCTUATION,
175   UNICODE_OPEN_PUNCTUATION,
176   UNICODE_CURRENCY_SYMBOL,
177   UNICODE_MODIFIER_SYMBOL,
178   UNICODE_MATH_SYMBOL,
179   UNICODE_OTHER_SYMBOL,
180   UNICODE_LINE_SEPARATOR,
181   UNICODE_PARAGRAPH_SEPARATOR,
182   UNICODE_SPACE_SEPARATOR
183 };
184 
185 
186 /**
187  *  @var UnicodeBreakType UNICODE_BREAK_MANDATORY
188  * Mandatory Break (BK).
189  *
190  *  @var UnicodeBreakType UNICODE_BREAK_CARRIAGE_RETURN
191  * Carriage Return (CR).
192  *
193  *  @var UnicodeBreakType UNICODE_BREAK_LINE_FEED
194  * Line Feed (LF).
195  *
196  *  @var UnicodeBreakType UNICODE_BREAK_COMBINING_MARK
197  * Attached Characters and Combining Marks (CM).
198  *
199  *  @var UnicodeBreakType UNICODE_BREAK_SURROGATE
200  * Surrogates (SG).
201  *
202  *  @var UnicodeBreakType UNICODE_BREAK_ZERO_WIDTH_SPACE
203  * Zero Width Space (ZW).
204  *
205  *  @var UnicodeBreakType UNICODE_BREAK_INSEPARABLE
206  * Inseparable (IN).
207  *
208  *  @var UnicodeBreakType UNICODE_BREAK_NON_BREAKING_GLUE
209  * Non-breaking ("Glue") (GL).
210  *
211  *  @var UnicodeBreakType UNICODE_BREAK_CONTINGENT
212  * Contingent Break Opportunity (CB).
213  *
214  *  @var UnicodeBreakType UNICODE_BREAK_SPACE
215  * Space (SP).
216  *
217  *  @var UnicodeBreakType UNICODE_BREAK_AFTER
218  * Break Opportunity After (BA).
219  *
220  *  @var UnicodeBreakType UNICODE_BREAK_BEFORE
221  * Break Opportunity Before (BB).
222  *
223  *  @var UnicodeBreakType UNICODE_BREAK_BEFORE_AND_AFTER
224  * Break Opportunity Before and After (B2).
225  *
226  *  @var UnicodeBreakType UNICODE_BREAK_HYPHEN
227  * Hyphen (HY).
228  *
229  *  @var UnicodeBreakType UNICODE_BREAK_NON_STARTER
230  * Nonstarter (NS).
231  *
232  *  @var UnicodeBreakType UNICODE_BREAK_OPEN_PUNCTUATION
233  * Opening Punctuation (OP).
234  *
235  *  @var UnicodeBreakType UNICODE_BREAK_CLOSE_PUNCTUATION
236  * Closing Punctuation (CL).
237  *
238  *  @var UnicodeBreakType UNICODE_BREAK_QUOTATION
239  * Ambiguous Quotation (QU).
240  *
241  *  @var UnicodeBreakType UNICODE_BREAK_EXCLAMATION
242  * Exclamation/Interrogation (EX).
243  *
244  *  @var UnicodeBreakType UNICODE_BREAK_IDEOGRAPHIC
245  * Ideographic (ID).
246  *
247  *  @var UnicodeBreakType UNICODE_BREAK_NUMERIC
248  * Numeric (NU).
249  *
250  *  @var UnicodeBreakType UNICODE_BREAK_INFIX_SEPARATOR
251  * Infix Separator (Numeric) (IS).
252  *
253  *  @var UnicodeBreakType UNICODE_BREAK_SYMBOL
254  * Symbols Allowing Break After (SY).
255  *
256  *  @var UnicodeBreakType UNICODE_BREAK_ALPHABETIC
257  * Ordinary Alphabetic and Symbol Characters (AL).
258  *
259  *  @var UnicodeBreakType UNICODE_BREAK_PREFIX
260  * Prefix (Numeric) (PR).
261  *
262  *  @var UnicodeBreakType UNICODE_BREAK_POSTFIX
263  * Postfix (Numeric) (PO).
264  *
265  *  @var UnicodeBreakType UNICODE_BREAK_COMPLEX_CONTEXT
266  * Complex Content Dependent (South East Asian) (SA).
267  *
268  *  @var UnicodeBreakType UNICODE_BREAK_AMBIGUOUS
269  * Ambiguous (Alphabetic or Ideographic) (AI).
270  *
271  *  @var UnicodeBreakType UNICODE_BREAK_UNKNOWN
272  * Unknown (XX).
273  *
274  *  @var UnicodeBreakType UNICODE_BREAK_NEXT_LINE
275  * Next Line (NL).
276  *
277  *  @var UnicodeBreakType UNICODE_BREAK_WORD_JOINER
278  * Word Joiner (WJ).
279  *
280  *  @var UnicodeBreakType UNICODE_BREAK_HANGUL_L_JAMO
281  * Hangul L Jamo (JL).
282  *
283  *  @var UnicodeBreakType UNICODE_BREAK_HANGUL_V_JAMO
284  * Hangul V Jamo (JV).
285  *
286  *  @var UnicodeBreakType UNICODE_BREAK_HANGUL_T_JAMO
287  * Hangul T Jamo (JT).
288  *
289  *  @var UnicodeBreakType UNICODE_BREAK_HANGUL_LV_SYLLABLE
290  * Hangul LV Syllable (H2).
291  *
292  *  @var UnicodeBreakType UNICODE_BREAK_HANGUL_LVT_SYLLABLE
293  * Hangul LVT Syllable (H3).
294  *
295  *  @var UnicodeBreakType UNICODE_BREAK_CLOSE_PARANTHESIS
296  * Closing Parenthesis (CP). @newin{2,28}
297  *
298  *  @var UnicodeBreakType UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER
299  * Conditional Japanese Starter (CJ). @newin{2,32}
300  *
301  *  @var UnicodeBreakType UNICODE_BREAK_HEBREW_LETTER
302  * Hebrew Letter (HL). @newin{2,32}
303  *
304  *  @var UnicodeBreakType UNICODE_BREAK_REGIONAL_INDICATOR
305  * Regional Indicator (RI). @newin{2,36}
306  *
307  *  @var UnicodeBreakType UNICODE_BREAK_EMOJI_BASE
308  * Emoji Base (EB). @newin{2,50}
309  *
310  *  @var UnicodeBreakType UNICODE_BREAK_EMOJI_MODIFIER
311  * Emoji Modifier (EM). @newin{2,50}
312  *
313  *  @var UnicodeBreakType UNICODE_BREAK_ZERO_WIDTH_JOINER
314  * Zero Width Joiner (ZWJ). @newin{2,50}
315  *
316  *  @enum UnicodeBreakType
317  *
318  * These are the possible line break classifications.
319  *
320  * Since new unicode versions may add new types here, applications should be ready
321  * to handle unknown values. They may be regarded as UNICODE_BREAK_UNKNOWN.
322  *
323  * See [Unicode Line Breaking Algorithm](http://www.unicode.org/unicode/reports/tr14/).
324  *
325  * @ingroup glibmmEnums
326  */
327 enum UnicodeBreakType
328 {
329   UNICODE_BREAK_MANDATORY,
330   UNICODE_BREAK_CARRIAGE_RETURN,
331   UNICODE_BREAK_LINE_FEED,
332   UNICODE_BREAK_COMBINING_MARK,
333   UNICODE_BREAK_SURROGATE,
334   UNICODE_BREAK_ZERO_WIDTH_SPACE,
335   UNICODE_BREAK_INSEPARABLE,
336   UNICODE_BREAK_NON_BREAKING_GLUE,
337   UNICODE_BREAK_CONTINGENT,
338   UNICODE_BREAK_SPACE,
339   UNICODE_BREAK_AFTER,
340   UNICODE_BREAK_BEFORE,
341   UNICODE_BREAK_BEFORE_AND_AFTER,
342   UNICODE_BREAK_HYPHEN,
343   UNICODE_BREAK_NON_STARTER,
344   UNICODE_BREAK_OPEN_PUNCTUATION,
345   UNICODE_BREAK_CLOSE_PUNCTUATION,
346   UNICODE_BREAK_QUOTATION,
347   UNICODE_BREAK_EXCLAMATION,
348   UNICODE_BREAK_IDEOGRAPHIC,
349   UNICODE_BREAK_NUMERIC,
350   UNICODE_BREAK_INFIX_SEPARATOR,
351   UNICODE_BREAK_SYMBOL,
352   UNICODE_BREAK_ALPHABETIC,
353   UNICODE_BREAK_PREFIX,
354   UNICODE_BREAK_POSTFIX,
355   UNICODE_BREAK_COMPLEX_CONTEXT,
356   UNICODE_BREAK_AMBIGUOUS,
357   UNICODE_BREAK_UNKNOWN,
358   UNICODE_BREAK_NEXT_LINE,
359   UNICODE_BREAK_WORD_JOINER,
360   UNICODE_BREAK_HANGUL_L_JAMO,
361   UNICODE_BREAK_HANGUL_V_JAMO,
362   UNICODE_BREAK_HANGUL_T_JAMO,
363   UNICODE_BREAK_HANGUL_LV_SYLLABLE,
364   UNICODE_BREAK_HANGUL_LVT_SYLLABLE,
365   UNICODE_BREAK_CLOSE_PARANTHESIS,
366   UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER,
367   UNICODE_BREAK_HEBREW_LETTER,
368   UNICODE_BREAK_REGIONAL_INDICATOR,
369   UNICODE_BREAK_EMOJI_BASE,
370   UNICODE_BREAK_EMOJI_MODIFIER,
371   UNICODE_BREAK_ZERO_WIDTH_JOINER
372 };
373 
374 
375 /**
376  *
377  * @ingroup glibmmEnums
378  * @par Bitwise operators:
379  * <tt>%AsciiType operator|(AsciiType, AsciiType)</tt><br>
380  * <tt>%AsciiType operator&(AsciiType, AsciiType)</tt><br>
381  * <tt>%AsciiType operator^(AsciiType, AsciiType)</tt><br>
382  * <tt>%AsciiType operator~(AsciiType)</tt><br>
383  * <tt>%AsciiType& operator|=(AsciiType&, AsciiType)</tt><br>
384  * <tt>%AsciiType& operator&=(AsciiType&, AsciiType)</tt><br>
385  * <tt>%AsciiType& operator^=(AsciiType&, AsciiType)</tt><br>
386  */
387 enum AsciiType
388 {
389   ASCII_ALNUM = 1 << 0,
390   ASCII_ALPHA = 1 << 1,
391   ASCII_CNTRL = 1 << 2,
392   ASCII_DIGIT = 1 << 3,
393   ASCII_GRAPH = 1 << 4,
394   ASCII_LOWER = 1 << 5,
395   ASCII_PRINT = 1 << 6,
396   ASCII_PUNCT = 1 << 7,
397   ASCII_SPACE = 1 << 8,
398   ASCII_UPPER = 1 << 9,
399   ASCII_XDIGIT = 1 << 10
400 };
401 
402 /** @ingroup glibmmEnums */
403 inline AsciiType operator|(AsciiType lhs, AsciiType rhs)
404   { return static_cast<AsciiType>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
405 
406 /** @ingroup glibmmEnums */
407 inline AsciiType operator&(AsciiType lhs, AsciiType rhs)
408   { return static_cast<AsciiType>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
409 
410 /** @ingroup glibmmEnums */
411 inline AsciiType operator^(AsciiType lhs, AsciiType rhs)
412   { return static_cast<AsciiType>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
413 
414 /** @ingroup glibmmEnums */
415 inline AsciiType operator~(AsciiType flags)
416   { return static_cast<AsciiType>(~static_cast<unsigned>(flags)); }
417 
418 /** @ingroup glibmmEnums */
419 inline AsciiType& operator|=(AsciiType& lhs, AsciiType rhs)
420   { return (lhs = static_cast<AsciiType>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
421 
422 /** @ingroup glibmmEnums */
423 inline AsciiType& operator&=(AsciiType& lhs, AsciiType rhs)
424   { return (lhs = static_cast<AsciiType>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
425 
426 /** @ingroup glibmmEnums */
427 inline AsciiType& operator^=(AsciiType& lhs, AsciiType rhs)
428   { return (lhs = static_cast<AsciiType>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
429 
430 
431 /**
432  *  @var NormalizeMode NORMALIZE_DEFAULT
433  * Standardize differences that do not affect the
434  * text content, such as the above-mentioned accent representation.
435  *
436  *  @var NormalizeMode NORMALIZE_NFD
437  * Another name for NORMALIZE_DEFAULT.
438  *
439  *  @var NormalizeMode NORMALIZE_DEFAULT_COMPOSE
440  * Like NORMALIZE_DEFAULT, but with
441  * composed forms rather than a maximally decomposed form.
442  *
443  *  @var NormalizeMode NORMALIZE_NFC
444  * Another name for NORMALIZE_DEFAULT_COMPOSE.
445  *
446  *  @var NormalizeMode NORMALIZE_ALL
447  * Beyond NORMALIZE_DEFAULT also standardize the
448  * "compatibility" characters in Unicode, such as SUPERSCRIPT THREE
449  * to the standard forms (in this case DIGIT THREE). Formatting
450  * information may be lost but for most text operations such
451  * characters should be considered the same.
452  *
453  *  @var NormalizeMode NORMALIZE_NFKD
454  * Another name for NORMALIZE_ALL.
455  *
456  *  @var NormalizeMode NORMALIZE_ALL_COMPOSE
457  * Like NORMALIZE_ALL, but with composed
458  * forms rather than a maximally decomposed form.
459  *
460  *  @var NormalizeMode NORMALIZE_NFKC
461  * Another name for NORMALIZE_ALL_COMPOSE.
462  *
463  *  @enum NormalizeMode
464  *
465  * Defines how a Unicode string is transformed in a canonical
466  * form, standardizing such issues as whether a character with
467  * an accent is represented as a base character and combining
468  * accent or as a single precomposed character. Unicode strings
469  * should generally be normalized before comparing them.
470  *
471  * @ingroup glibmmEnums
472  */
473 enum NormalizeMode
474 {
475   NORMALIZE_DEFAULT,
476   NORMALIZE_NFD = NORMALIZE_DEFAULT,
477   NORMALIZE_DEFAULT_COMPOSE,
478   NORMALIZE_NFC = NORMALIZE_DEFAULT_COMPOSE,
479   NORMALIZE_ALL,
480   NORMALIZE_NFKD = NORMALIZE_ALL,
481   NORMALIZE_ALL_COMPOSE,
482   NORMALIZE_NFKC = NORMALIZE_ALL_COMPOSE
483 };
484 
485 
486 /** @defgroup Unicode Unicode Manipulation
487  * Functions operating on Unicode characters and UTF-8 strings.
488  * @{
489  */
490 
491 namespace Unicode
492 {
493 
validate(gunichar uc)494 inline bool validate(gunichar uc)
495   { return (g_unichar_validate(uc) != 0); }
isalnum(gunichar uc)496 inline bool isalnum(gunichar uc)
497   { return (g_unichar_isalnum(uc) != 0); }
isalpha(gunichar uc)498 inline bool isalpha(gunichar uc)
499   { return (g_unichar_isalpha(uc) != 0); }
iscntrl(gunichar uc)500 inline bool iscntrl(gunichar uc)
501   { return (g_unichar_iscntrl(uc) != 0); }
isdigit(gunichar uc)502 inline bool isdigit(gunichar uc)
503   { return (g_unichar_isdigit(uc) != 0); }
isgraph(gunichar uc)504 inline bool isgraph(gunichar uc)
505   { return (g_unichar_isgraph(uc) != 0); }
islower(gunichar uc)506 inline bool islower(gunichar uc)
507   { return (g_unichar_islower(uc) != 0); }
isprint(gunichar uc)508 inline bool isprint(gunichar uc)
509   { return (g_unichar_isprint(uc) != 0); }
ispunct(gunichar uc)510 inline bool ispunct(gunichar uc)
511   { return (g_unichar_ispunct(uc) != 0); }
isspace(gunichar uc)512 inline bool isspace(gunichar uc)
513   { return (g_unichar_isspace(uc) != 0); }
isupper(gunichar uc)514 inline bool isupper(gunichar uc)
515   { return (g_unichar_isupper(uc) != 0); }
isxdigit(gunichar uc)516 inline bool isxdigit(gunichar uc)
517   { return (g_unichar_isxdigit(uc) != 0); }
istitle(gunichar uc)518 inline bool istitle(gunichar uc)
519   { return (g_unichar_istitle(uc) != 0); }
isdefined(gunichar uc)520 inline bool isdefined(gunichar uc)
521   { return (g_unichar_isdefined(uc) != 0); }
iswide(gunichar uc)522 inline bool iswide(gunichar uc)
523   { return (g_unichar_iswide(uc) != 0); }
524 
toupper(gunichar uc)525 inline gunichar toupper(gunichar uc)
526   { return g_unichar_toupper(uc); }
tolower(gunichar uc)527 inline gunichar tolower(gunichar uc)
528   { return g_unichar_tolower(uc); }
totitle(gunichar uc)529 inline gunichar totitle(gunichar uc)
530   { return g_unichar_totitle(uc); }
531 
digit_value(gunichar uc)532 inline int digit_value(gunichar uc)
533   { return g_unichar_digit_value(uc); }
xdigit_value(gunichar uc)534 inline int xdigit_value(gunichar uc)
535   { return g_unichar_xdigit_value(uc); }
536 
type(gunichar uc)537 inline Glib::UnicodeType type(gunichar uc)
538   { return static_cast<Glib::UnicodeType>(static_cast<int>(g_unichar_type(uc))); }
539 
break_type(gunichar uc)540 inline Glib::UnicodeBreakType break_type(gunichar uc)
541   { return static_cast<Glib::UnicodeBreakType>(static_cast<int>(g_unichar_break_type(uc))); }
542 
543 } // namespace Unicode
544 
545 
546 namespace Ascii
547 {
548 
isalnum(char c)549 inline bool isalnum(char c)
550   { return g_ascii_isalnum(c); }
isalpha(char c)551 inline bool isalpha(char c)
552   { return g_ascii_isalpha(c); }
iscntrl(char c)553 inline bool iscntrl(char c)
554   { return g_ascii_iscntrl(c); }
isdigit(char c)555 inline bool isdigit(char c)
556   { return g_ascii_isdigit(c); }
isgraph(char c)557 inline bool isgraph(char c)
558   { return g_ascii_isgraph(c); }
islower(char c)559 inline bool islower(char c)
560   { return g_ascii_islower(c); }
isprint(char c)561 inline bool isprint(char c)
562   { return g_ascii_isprint(c); }
ispunct(char c)563 inline bool ispunct(char c)
564   { return g_ascii_ispunct(c); }
isspace(char c)565 inline bool isspace(char c)
566   { return g_ascii_isspace(c); }
isupper(char c)567 inline bool isupper(char c)
568   { return g_ascii_isupper(c); }
isxdigit(char c)569 inline bool isxdigit(char c)
570   { return g_ascii_isxdigit(c); }
571 
tolower(char c)572 inline char tolower(char c)
573   { return g_ascii_tolower(c); }
toupper(char c)574 inline char toupper(char c)
575   { return g_ascii_toupper(c); }
576 
digit_value(char c)577 inline int digit_value(char c)
578   { return g_ascii_digit_value(c); }
xdigit_value(char c)579 inline int xdigit_value(char c)
580   { return g_ascii_xdigit_value(c); }
581 
582 } // namespace Ascii
583 
584 
585 /** @} group Unicode */
586 
587 } // namespace Glib
588 
589 
590 #endif /* _GLIBMM_UNICODE_H */
591 
592