Initial commit
[platform/upstream/glib2.0.git] / docs / reference / glib / html / glib-Unicode-Manipulation.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Unicode Manipulation</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7 <link rel="home" href="index.html" title="GLib Reference Manual">
8 <link rel="up" href="glib-utilities.html" title="GLib Utilities">
9 <link rel="prev" href="glib-Character-Set-Conversion.html" title="Character Set Conversion">
10 <link rel="next" href="glib-Base64-Encoding.html" title="Base64 Encoding">
11 <meta name="generator" content="GTK-Doc V1.13 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 <link rel="chapter" href="glib.html" title="GLib Overview">
14 <link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
15 <link rel="chapter" href="glib-core.html" title="GLib Core Application Support">
16 <link rel="chapter" href="glib-utilities.html" title="GLib Utilities">
17 <link rel="chapter" href="glib-data-types.html" title="GLib Data Types">
18 <link rel="chapter" href="tools.html" title="GLib Tools">
19 <link rel="index" href="api-index-full.html" title="Index">
20 <link rel="index" href="api-index-deprecated.html" title="Index of deprecated symbols">
21 <link rel="index" href="api-index-2-2.html" title="Index of new symbols in 2.2">
22 <link rel="index" href="api-index-2-4.html" title="Index of new symbols in 2.4">
23 <link rel="index" href="api-index-2-6.html" title="Index of new symbols in 2.6">
24 <link rel="index" href="api-index-2-8.html" title="Index of new symbols in 2.8">
25 <link rel="index" href="api-index-2-10.html" title="Index of new symbols in 2.10">
26 <link rel="index" href="api-index-2-12.html" title="Index of new symbols in 2.12">
27 <link rel="index" href="api-index-2-14.html" title="Index of new symbols in 2.14">
28 <link rel="index" href="api-index-2-16.html" title="Index of new symbols in 2.16">
29 <link rel="index" href="api-index-2-18.html" title="Index of new symbols in 2.18">
30 <link rel="index" href="api-index-2-20.html" title="Index of new symbols in 2.20">
31 <link rel="index" href="api-index-2-22.html" title="Index of new symbols in 2.22">
32 <link rel="index" href="api-index-2-24.html" title="Index of new symbols in 2.24">
33 </head>
34 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
35 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
36 <tr valign="middle">
37 <td><a accesskey="p" href="glib-Character-Set-Conversion.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
38 <td><a accesskey="u" href="glib-utilities.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
39 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
40 <th width="100%" align="center">GLib Reference Manual</th>
41 <td><a accesskey="n" href="glib-Base64-Encoding.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
42 </tr>
43 <tr><td colspan="5" class="shortcuts">
44 <a href="#glib-Unicode-Manipulation.synopsis" class="shortcut">Top</a>
45                    | 
46                   <a href="#glib-Unicode-Manipulation.description" class="shortcut">Description</a>
47 </td></tr>
48 </table>
49 <div class="refentry" title="Unicode Manipulation">
50 <a name="glib-Unicode-Manipulation"></a><div class="titlepage"></div>
51 <div class="refnamediv"><table width="100%"><tr>
52 <td valign="top">
53 <h2><span class="refentrytitle"><a name="glib-Unicode-Manipulation.top_of_page"></a>Unicode Manipulation</span></h2>
54 <p>Unicode Manipulation — functions operating on Unicode characters and UTF-8 strings</p>
55 </td>
56 <td valign="top" align="right"></td>
57 </tr></table></div>
58 <div class="refsynopsisdiv" title="Synopsis">
59 <a name="glib-Unicode-Manipulation.synopsis"></a><h2>Synopsis</h2>
60 <pre class="synopsis">
61 #include &lt;glib.h&gt;
62
63 typedef             <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar">gunichar</a>;
64 typedef             <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2">gunichar2</a>;
65
66 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-validate" title="g_unichar_validate ()">g_unichar_validate</a>                  (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch);
67 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isalnum" title="g_unichar_isalnum ()">g_unichar_isalnum</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
68 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isalpha" title="g_unichar_isalpha ()">g_unichar_isalpha</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
69 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iscntrl" title="g_unichar_iscntrl ()">g_unichar_iscntrl</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
70 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isdefined" title="g_unichar_isdefined ()">g_unichar_isdefined</a>                 (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
71 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isdigit" title="g_unichar_isdigit ()">g_unichar_isdigit</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
72 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isgraph" title="g_unichar_isgraph ()">g_unichar_isgraph</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
73 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-islower" title="g_unichar_islower ()">g_unichar_islower</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
74 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-ismark" title="g_unichar_ismark ()">g_unichar_ismark</a>                    (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
75 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isprint" title="g_unichar_isprint ()">g_unichar_isprint</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
76 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-ispunct" title="g_unichar_ispunct ()">g_unichar_ispunct</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
77 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isspace" title="g_unichar_isspace ()">g_unichar_isspace</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
78 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-istitle" title="g_unichar_istitle ()">g_unichar_istitle</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
79 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isupper" title="g_unichar_isupper ()">g_unichar_isupper</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
80 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isxdigit" title="g_unichar_isxdigit ()">g_unichar_isxdigit</a>                  (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
81 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide" title="g_unichar_iswide ()">g_unichar_iswide</a>                    (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
82 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide-cjk" title="g_unichar_iswide_cjk ()">g_unichar_iswide_cjk</a>                (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
83 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iszerowidth" title="g_unichar_iszerowidth ()">g_unichar_iszerowidth</a>               (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
84 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-toupper" title="g_unichar_toupper ()">g_unichar_toupper</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
85 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-tolower" title="g_unichar_tolower ()">g_unichar_tolower</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
86 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-totitle" title="g_unichar_totitle ()">g_unichar_totitle</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
87 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-digit-value" title="g_unichar_digit_value ()">g_unichar_digit_value</a>               (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
88 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-xdigit-value" title="g_unichar_xdigit_value ()">g_unichar_xdigit_value</a>              (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
89 enum                <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeType" title="enum GUnicodeType">GUnicodeType</a>;
90 <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeType" title="enum GUnicodeType"><span class="returnvalue">GUnicodeType</span></a>        <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-type" title="g_unichar_type ()">g_unichar_type</a>                      (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
91 enum                <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeBreakType" title="enum GUnicodeBreakType">GUnicodeBreakType</a>;
92 <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeBreakType" title="enum GUnicodeBreakType"><span class="returnvalue">GUnicodeBreakType</span></a>   <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-break-type" title="g_unichar_break_type ()">g_unichar_break_type</a>                (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
93 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-combining-class" title="g_unichar_combining_class ()">g_unichar_combining_class</a>           (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> uc);
94 <span class="returnvalue">void</span>                <a class="link" href="glib-Unicode-Manipulation.html#g-unicode-canonical-ordering" title="g_unicode_canonical_ordering ()">g_unicode_canonical_ordering</a>        (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *string,
95                                                          <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> len);
96 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *          <a class="link" href="glib-Unicode-Manipulation.html#g-unicode-canonical-decomposition" title="g_unicode_canonical_decomposition ()">g_unicode_canonical_decomposition</a>   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch,
97                                                          <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> *result_len);
98 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-get-mirror-char" title="g_unichar_get_mirror_char ()">g_unichar_get_mirror_char</a>           (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch,
99                                                          <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *mirrored_ch);
100 enum                <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript">GUnicodeScript</a>;
101 <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>      <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-get-script" title="g_unichar_get_script ()">g_unichar_get_script</a>                (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch);
102
103 #define             <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-next-char" title="g_utf8_next_char()">g_utf8_next_char</a>                    (p)
104 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()">g_utf8_get_char</a>                     (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);
105 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char-validated" title="g_utf8_get_char_validated ()">g_utf8_get_char_validated</a>           (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
106                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max_len);
107 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-offset-to-pointer" title="g_utf8_offset_to_pointer ()">g_utf8_offset_to_pointer</a>            (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
108                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> offset);
109 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a>               <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-pointer-to-offset" title="g_utf8_pointer_to_offset ()">g_utf8_pointer_to_offset</a>            (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
110                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *pos);
111 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-prev-char" title="g_utf8_prev_char ()">g_utf8_prev_char</a>                    (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);
112 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-find-next-char" title="g_utf8_find_next_char ()">g_utf8_find_next_char</a>               (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
113                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *end);
114 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-find-prev-char" title="g_utf8_find_prev_char ()">g_utf8_find_prev_char</a>               (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
115                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);
116 <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a>               <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strlen" title="g_utf8_strlen ()">g_utf8_strlen</a>                       (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
117                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max);
118 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strncpy" title="g_utf8_strncpy ()">g_utf8_strncpy</a>                      (<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *dest,
119                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *src,
120                                                          <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> n);
121 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strchr" title="g_utf8_strchr ()">g_utf8_strchr</a>                       (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
122                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
123                                                          <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
124 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strrchr" title="g_utf8_strrchr ()">g_utf8_strrchr</a>                      (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
125                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
126                                                          <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);
127 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strreverse" title="g_utf8_strreverse ()">g_utf8_strreverse</a>                   (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
128                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
129 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()">g_utf8_validate</a>                     (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
130                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max_len,
131                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> **end);
132
133 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strup" title="g_utf8_strup ()">g_utf8_strup</a>                        (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
134                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
135 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strdown" title="g_utf8_strdown ()">g_utf8_strdown</a>                      (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
136                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
137 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-casefold" title="g_utf8_casefold ()">g_utf8_casefold</a>                     (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
138                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
139 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-normalize" title="g_utf8_normalize ()">g_utf8_normalize</a>                    (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
140                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
141                                                          <a class="link" href="glib-Unicode-Manipulation.html#GNormalizeMode" title="enum GNormalizeMode"><span class="returnvalue">GNormalizeMode</span></a> mode);
142 enum                <a class="link" href="glib-Unicode-Manipulation.html#GNormalizeMode" title="enum GNormalizeMode">GNormalizeMode</a>;
143 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate" title="g_utf8_collate ()">g_utf8_collate</a>                      (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str1,
144                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str2);
145 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate-key" title="g_utf8_collate_key ()">g_utf8_collate_key</a>                  (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
146                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
147 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate-key-for-filename" title="g_utf8_collate_key_for_filename ()">g_utf8_collate_key_for_filename</a>     (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
148                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);
149
150 <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *         <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-utf16" title="g_utf8_to_utf16 ()">g_utf8_to_utf16</a>                     (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
151                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
152                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
153                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
154                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
155 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *          <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-ucs4" title="g_utf8_to_ucs4 ()">g_utf8_to_ucs4</a>                      (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
156                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
157                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
158                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
159                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
160 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *          <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-ucs4-fast" title="g_utf8_to_ucs4_fast ()">g_utf8_to_ucs4_fast</a>                 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
161                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
162                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written);
163 <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *          <a class="link" href="glib-Unicode-Manipulation.html#g-utf16-to-ucs4" title="g_utf16_to_ucs4 ()">g_utf16_to_ucs4</a>                     (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *str,
164                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
165                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
166                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
167                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
168 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              <a class="link" href="glib-Unicode-Manipulation.html#g-utf16-to-utf8" title="g_utf16_to_utf8 ()">g_utf16_to_utf8</a>                     (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *str,
169                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
170                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
171                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
172                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
173 <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *         <a class="link" href="glib-Unicode-Manipulation.html#g-ucs4-to-utf16" title="g_ucs4_to_utf16 ()">g_ucs4_to_utf16</a>                     (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *str,
174                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
175                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
176                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
177                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
178 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              <a class="link" href="glib-Unicode-Manipulation.html#g-ucs4-to-utf8" title="g_ucs4_to_utf8 ()">g_ucs4_to_utf8</a>                      (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *str,
179                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
180                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
181                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
182                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);
183 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-to-utf8" title="g_unichar_to_utf8 ()">g_unichar_to_utf8</a>                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c,
184                                                          <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *outbuf);
185 </pre>
186 </div>
187 <div class="refsect1" title="Description">
188 <a name="glib-Unicode-Manipulation.description"></a><h2>Description</h2>
189 <p>
190 This section describes a number of functions for dealing with
191 Unicode characters and strings.  There are analogues of the
192 traditional <code class="filename">ctype.h</code> character classification
193 and case conversion functions, UTF-8 analogues of some string utility
194 functions, functions to perform normalization, case conversion and
195 collation on UTF-8 strings and finally functions to convert between
196 the UTF-8, UTF-16 and UCS-4 encodings of Unicode.
197 </p>
198 <p>
199 The implementations of the Unicode functions in GLib are based
200 on the Unicode Character Data tables, which are available from
201 <a class="ulink" href="http://www.unicode.org/" target="_top">www.unicode.org</a>.
202 GLib 2.8 supports Unicode 4.0, GLib 2.10 supports Unicode 4.1,
203 GLib 2.12 supports Unicode 5.0, GLib 2.16.3 supports Unicode 5.1.
204 </p>
205 </div>
206 <div class="refsect1" title="Details">
207 <a name="glib-Unicode-Manipulation.details"></a><h2>Details</h2>
208 <div class="refsect2" title="gunichar">
209 <a name="gunichar"></a><h3>gunichar</h3>
210 <pre class="programlisting">typedef guint32 gunichar;
211 </pre>
212 <p>
213 A type which can hold any UTF-32 or UCS-4 character code, also known
214 as a Unicode code point.
215 </p>
216 <p>
217 If you want to produce the UTF-8 representation of a <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="type">gunichar</span></a>,
218 use <a class="link" href="glib-Unicode-Manipulation.html#g-ucs4-to-utf8" title="g_ucs4_to_utf8 ()"><code class="function">g_ucs4_to_utf8()</code></a>. See also <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-ucs4" title="g_utf8_to_ucs4 ()"><code class="function">g_utf8_to_ucs4()</code></a> for the reverse process.
219 </p>
220 <p>
221 To print/scan values of this type as integer, use
222 <a class="link" href="glib-Miscellaneous-Macros.html#G-GINT32-MODIFIER:CAPS" title="G_GINT32_MODIFIER"><code class="literal">G_GINT32_MODIFIER</code></a> and/or <a class="link" href="glib-Miscellaneous-Macros.html#G-GUINT32-FORMAT:CAPS" title="G_GUINT32_FORMAT"><code class="literal">G_GUINT32_FORMAT</code></a>.
223 </p>
224 <p>
225 The notation to express a Unicode code point in running text is as a
226 hexadecimal number with four to six digits and uppercase letters, prefixed
227 by the string "U+".  Leading zeros are omitted, unless the code point would
228 have fewer than four hexadecimal digits.
229 For example, "U+0041 LATIN CAPITAL LETTER A".
230 To print a code point in the U+-notation, use the format string
231 "U+<code class="literal">04</code>"G_GINT32_FORMAT"X".
232 To scan, use the format string "U+<code class="literal">06</code>"G_GINT32_FORMAT"X".
233 </p>
234 <div class="informalexample"><pre class="programlisting">
235 gunichar c;
236 sscanf ("U+0041", "U+%06"G_GINT32_FORMAT"X", &amp;c)
237 g_print ("Read U+%04"G_GINT32_FORMAT"X", c);
238 </pre></div>
239 <p>
240 </p>
241 </div>
242 <hr>
243 <div class="refsect2" title="gunichar2">
244 <a name="gunichar2"></a><h3>gunichar2</h3>
245 <pre class="programlisting">typedef guint16 gunichar2;
246 </pre>
247 <p>
248 A type which can hold any UTF-16 code
249 point<sup>[<a name="utf16_surrogate_pairs" href="#ftn.utf16_surrogate_pairs" class="footnote">3</a>]</sup>.
250 </p>
251 <p>
252 To print/scan values of this type to/from text you need to convert
253 to/from UTF-8, using <a class="link" href="glib-Unicode-Manipulation.html#g-utf16-to-utf8" title="g_utf16_to_utf8 ()"><code class="function">g_utf16_to_utf8()</code></a>/<a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-utf16" title="g_utf8_to_utf16 ()"><code class="function">g_utf8_to_utf16()</code></a>.
254 </p>
255 <p>
256 To print/scan values of this type as integer, use
257 <a class="link" href="glib-Miscellaneous-Macros.html#G-GINT16-MODIFIER:CAPS" title="G_GINT16_MODIFIER"><code class="literal">G_GINT16_MODIFIER</code></a> and/or <a class="link" href="glib-Miscellaneous-Macros.html#G-GUINT16-FORMAT:CAPS" title="G_GUINT16_FORMAT"><code class="literal">G_GUINT16_FORMAT</code></a>.
258 </p>
259 </div>
260 <hr>
261 <div class="refsect2" title="g_unichar_validate ()">
262 <a name="g-unichar-validate"></a><h3>g_unichar_validate ()</h3>
263 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_validate                  (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch);</pre>
264 <p>
265 Checks whether <em class="parameter"><code>ch</code></em> is a valid Unicode character. Some possible
266 integer values of <em class="parameter"><code>ch</code></em> will not be valid. 0 is considered a valid
267 character, though it's normally a string terminator.</p>
268 <div class="variablelist"><table border="0">
269 <col align="left" valign="top">
270 <tbody>
271 <tr>
272 <td><p><span class="term"><em class="parameter"><code>ch</code></em> :</span></p></td>
273 <td> a Unicode character
274 </td>
275 </tr>
276 <tr>
277 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
278 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>ch</code></em> is a valid Unicode character
279 </td>
280 </tr>
281 </tbody>
282 </table></div>
283 </div>
284 <hr>
285 <div class="refsect2" title="g_unichar_isalnum ()">
286 <a name="g-unichar-isalnum"></a><h3>g_unichar_isalnum ()</h3>
287 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_isalnum                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
288 <p>
289 Determines whether a character is alphanumeric.
290 Given some UTF-8 text, obtain a character value
291 with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
292 <div class="variablelist"><table border="0">
293 <col align="left" valign="top">
294 <tbody>
295 <tr>
296 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
297 <td> a Unicode character
298 </td>
299 </tr>
300 <tr>
301 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
302 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is an alphanumeric character
303 </td>
304 </tr>
305 </tbody>
306 </table></div>
307 </div>
308 <hr>
309 <div class="refsect2" title="g_unichar_isalpha ()">
310 <a name="g-unichar-isalpha"></a><h3>g_unichar_isalpha ()</h3>
311 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_isalpha                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
312 <p>
313 Determines whether a character is alphabetic (i.e. a letter).
314 Given some UTF-8 text, obtain a character value with
315 <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
316 <div class="variablelist"><table border="0">
317 <col align="left" valign="top">
318 <tbody>
319 <tr>
320 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
321 <td> a Unicode character
322 </td>
323 </tr>
324 <tr>
325 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
326 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is an alphabetic character
327 </td>
328 </tr>
329 </tbody>
330 </table></div>
331 </div>
332 <hr>
333 <div class="refsect2" title="g_unichar_iscntrl ()">
334 <a name="g-unichar-iscntrl"></a><h3>g_unichar_iscntrl ()</h3>
335 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_iscntrl                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
336 <p>
337 Determines whether a character is a control character.
338 Given some UTF-8 text, obtain a character value with
339 <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
340 <div class="variablelist"><table border="0">
341 <col align="left" valign="top">
342 <tbody>
343 <tr>
344 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
345 <td> a Unicode character
346 </td>
347 </tr>
348 <tr>
349 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
350 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is a control character
351 </td>
352 </tr>
353 </tbody>
354 </table></div>
355 </div>
356 <hr>
357 <div class="refsect2" title="g_unichar_isdefined ()">
358 <a name="g-unichar-isdefined"></a><h3>g_unichar_isdefined ()</h3>
359 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_isdefined                 (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
360 <p>
361 Determines if a given character is assigned in the Unicode
362 standard.</p>
363 <div class="variablelist"><table border="0">
364 <col align="left" valign="top">
365 <tbody>
366 <tr>
367 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
368 <td> a Unicode character
369 </td>
370 </tr>
371 <tr>
372 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
373 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character has an assigned value
374 </td>
375 </tr>
376 </tbody>
377 </table></div>
378 </div>
379 <hr>
380 <div class="refsect2" title="g_unichar_isdigit ()">
381 <a name="g-unichar-isdigit"></a><h3>g_unichar_isdigit ()</h3>
382 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_isdigit                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
383 <p>
384 Determines whether a character is numeric (i.e. a digit).  This
385 covers ASCII 0-9 and also digits in other languages/scripts.  Given
386 some UTF-8 text, obtain a character value with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
387 <div class="variablelist"><table border="0">
388 <col align="left" valign="top">
389 <tbody>
390 <tr>
391 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
392 <td> a Unicode character
393 </td>
394 </tr>
395 <tr>
396 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
397 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is a digit
398 </td>
399 </tr>
400 </tbody>
401 </table></div>
402 </div>
403 <hr>
404 <div class="refsect2" title="g_unichar_isgraph ()">
405 <a name="g-unichar-isgraph"></a><h3>g_unichar_isgraph ()</h3>
406 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_isgraph                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
407 <p>
408 Determines whether a character is printable and not a space
409 (returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> for control characters, format characters, and
410 spaces). <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isprint" title="g_unichar_isprint ()"><code class="function">g_unichar_isprint()</code></a> is similar, but returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> for
411 spaces. Given some UTF-8 text, obtain a character value with
412 <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
413 <div class="variablelist"><table border="0">
414 <col align="left" valign="top">
415 <tbody>
416 <tr>
417 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
418 <td> a Unicode character
419 </td>
420 </tr>
421 <tr>
422 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
423 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is printable unless it's a space
424 </td>
425 </tr>
426 </tbody>
427 </table></div>
428 </div>
429 <hr>
430 <div class="refsect2" title="g_unichar_islower ()">
431 <a name="g-unichar-islower"></a><h3>g_unichar_islower ()</h3>
432 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_islower                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
433 <p>
434 Determines whether a character is a lowercase letter.
435 Given some UTF-8 text, obtain a character value with
436 <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
437 <div class="variablelist"><table border="0">
438 <col align="left" valign="top">
439 <tbody>
440 <tr>
441 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
442 <td> a Unicode character
443 </td>
444 </tr>
445 <tr>
446 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
447 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is a lowercase letter
448 </td>
449 </tr>
450 </tbody>
451 </table></div>
452 </div>
453 <hr>
454 <div class="refsect2" title="g_unichar_ismark ()">
455 <a name="g-unichar-ismark"></a><h3>g_unichar_ismark ()</h3>
456 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_ismark                    (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
457 <p>
458 Determines whether a character is a mark (non-spacing mark,
459 combining mark, or enclosing mark in Unicode speak).
460 Given some UTF-8 text, obtain a character value
461 with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.
462 </p>
463 <p>
464 Note: in most cases where isalpha characters are allowed,
465 ismark characters should be allowed to as they are essential
466 for writing most European languages as well as many non-Latin
467 scripts.</p>
468 <div class="variablelist"><table border="0">
469 <col align="left" valign="top">
470 <tbody>
471 <tr>
472 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
473 <td> a Unicode character
474 </td>
475 </tr>
476 <tr>
477 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
478 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is a mark character
479
480 </td>
481 </tr>
482 </tbody>
483 </table></div>
484 <p class="since">Since 2.14</p>
485 </div>
486 <hr>
487 <div class="refsect2" title="g_unichar_isprint ()">
488 <a name="g-unichar-isprint"></a><h3>g_unichar_isprint ()</h3>
489 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_isprint                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
490 <p>
491 Determines whether a character is printable.
492 Unlike <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isgraph" title="g_unichar_isgraph ()"><code class="function">g_unichar_isgraph()</code></a>, returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> for spaces.
493 Given some UTF-8 text, obtain a character value with
494 <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
495 <div class="variablelist"><table border="0">
496 <col align="left" valign="top">
497 <tbody>
498 <tr>
499 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
500 <td> a Unicode character
501 </td>
502 </tr>
503 <tr>
504 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
505 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is printable
506 </td>
507 </tr>
508 </tbody>
509 </table></div>
510 </div>
511 <hr>
512 <div class="refsect2" title="g_unichar_ispunct ()">
513 <a name="g-unichar-ispunct"></a><h3>g_unichar_ispunct ()</h3>
514 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_ispunct                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
515 <p>
516 Determines whether a character is punctuation or a symbol.
517 Given some UTF-8 text, obtain a character value with
518 <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.</p>
519 <div class="variablelist"><table border="0">
520 <col align="left" valign="top">
521 <tbody>
522 <tr>
523 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
524 <td> a Unicode character
525 </td>
526 </tr>
527 <tr>
528 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
529 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is a punctuation or symbol character
530 </td>
531 </tr>
532 </tbody>
533 </table></div>
534 </div>
535 <hr>
536 <div class="refsect2" title="g_unichar_isspace ()">
537 <a name="g-unichar-isspace"></a><h3>g_unichar_isspace ()</h3>
538 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_isspace                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
539 <p>
540 Determines whether a character is a space, tab, or line separator
541 (newline, carriage return, etc.).  Given some UTF-8 text, obtain a
542 character value with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>.
543 </p>
544 <p>
545 (Note: don't use this to do word breaking; you have to use
546 Pango or equivalent to get word breaking right, the algorithm
547 is fairly complex.)</p>
548 <div class="variablelist"><table border="0">
549 <col align="left" valign="top">
550 <tbody>
551 <tr>
552 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
553 <td> a Unicode character
554 </td>
555 </tr>
556 <tr>
557 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
558 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is a space character
559 </td>
560 </tr>
561 </tbody>
562 </table></div>
563 </div>
564 <hr>
565 <div class="refsect2" title="g_unichar_istitle ()">
566 <a name="g-unichar-istitle"></a><h3>g_unichar_istitle ()</h3>
567 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_istitle                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
568 <p>
569 Determines if a character is titlecase. Some characters in
570 Unicode which are composites, such as the DZ digraph
571 have three case variants instead of just two. The titlecase
572 form is used at the beginning of a word where only the
573 first letter is capitalized. The titlecase form of the DZ
574 digraph is U+01F2 LATIN CAPITAL LETTTER D WITH SMALL LETTER Z.</p>
575 <div class="variablelist"><table border="0">
576 <col align="left" valign="top">
577 <tbody>
578 <tr>
579 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
580 <td> a Unicode character
581 </td>
582 </tr>
583 <tr>
584 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
585 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character is titlecase
586 </td>
587 </tr>
588 </tbody>
589 </table></div>
590 </div>
591 <hr>
592 <div class="refsect2" title="g_unichar_isupper ()">
593 <a name="g-unichar-isupper"></a><h3>g_unichar_isupper ()</h3>
594 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_isupper                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
595 <p>
596 Determines if a character is uppercase.</p>
597 <div class="variablelist"><table border="0">
598 <col align="left" valign="top">
599 <tbody>
600 <tr>
601 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
602 <td> a Unicode character
603 </td>
604 </tr>
605 <tr>
606 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
607 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>c</code></em> is an uppercase character
608 </td>
609 </tr>
610 </tbody>
611 </table></div>
612 </div>
613 <hr>
614 <div class="refsect2" title="g_unichar_isxdigit ()">
615 <a name="g-unichar-isxdigit"></a><h3>g_unichar_isxdigit ()</h3>
616 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_isxdigit                  (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
617 <p>
618 Determines if a character is a hexidecimal digit.</p>
619 <div class="variablelist"><table border="0">
620 <col align="left" valign="top">
621 <tbody>
622 <tr>
623 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
624 <td> a Unicode character.
625 </td>
626 </tr>
627 <tr>
628 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
629 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character is a hexadecimal digit
630 </td>
631 </tr>
632 </tbody>
633 </table></div>
634 </div>
635 <hr>
636 <div class="refsect2" title="g_unichar_iswide ()">
637 <a name="g-unichar-iswide"></a><h3>g_unichar_iswide ()</h3>
638 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_iswide                    (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
639 <p>
640 Determines if a character is typically rendered in a double-width
641 cell.</p>
642 <div class="variablelist"><table border="0">
643 <col align="left" valign="top">
644 <tbody>
645 <tr>
646 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
647 <td> a Unicode character
648 </td>
649 </tr>
650 <tr>
651 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
652 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character is wide
653 </td>
654 </tr>
655 </tbody>
656 </table></div>
657 </div>
658 <hr>
659 <div class="refsect2" title="g_unichar_iswide_cjk ()">
660 <a name="g-unichar-iswide-cjk"></a><h3>g_unichar_iswide_cjk ()</h3>
661 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_iswide_cjk                (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
662 <p>
663 Determines if a character is typically rendered in a double-width
664 cell under legacy East Asian locales.  If a character is wide according to
665 <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide" title="g_unichar_iswide ()"><code class="function">g_unichar_iswide()</code></a>, then it is also reported wide with this function, but
666 the converse is not necessarily true.  See the
667 <a class="ulink" href="http://www.unicode.org/reports/tr11/" target="_top">Unicode Standard
668 Annex #11</a> for details.
669 </p>
670 <p>
671 If a character passes the <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide" title="g_unichar_iswide ()"><code class="function">g_unichar_iswide()</code></a> test then it will also pass
672 this test, but not the other way around.  Note that some characters may
673 pas both this test and <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iszerowidth" title="g_unichar_iszerowidth ()"><code class="function">g_unichar_iszerowidth()</code></a>.</p>
674 <div class="variablelist"><table border="0">
675 <col align="left" valign="top">
676 <tbody>
677 <tr>
678 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
679 <td> a Unicode character
680 </td>
681 </tr>
682 <tr>
683 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
684 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character is wide in legacy East Asian locales
685
686 </td>
687 </tr>
688 </tbody>
689 </table></div>
690 <p class="since">Since 2.12</p>
691 </div>
692 <hr>
693 <div class="refsect2" title="g_unichar_iszerowidth ()">
694 <a name="g-unichar-iszerowidth"></a><h3>g_unichar_iszerowidth ()</h3>
695 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_iszerowidth               (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
696 <p>
697 Determines if a given character typically takes zero width when rendered.
698 The return value is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> for all non-spacing and enclosing marks
699 (e.g., combining accents), format characters, zero-width
700 space, but not U+00AD SOFT HYPHEN.
701 </p>
702 <p>
703 A typical use of this function is with one of <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide" title="g_unichar_iswide ()"><code class="function">g_unichar_iswide()</code></a> or
704 <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-iswide-cjk" title="g_unichar_iswide_cjk ()"><code class="function">g_unichar_iswide_cjk()</code></a> to determine the number of cells a string occupies
705 when displayed on a grid display (terminals).  However, note that not all
706 terminals support zero-width rendering of zero-width marks.</p>
707 <div class="variablelist"><table border="0">
708 <col align="left" valign="top">
709 <tbody>
710 <tr>
711 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
712 <td> a Unicode character
713 </td>
714 </tr>
715 <tr>
716 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
717 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the character has zero width
718
719 </td>
720 </tr>
721 </tbody>
722 </table></div>
723 <p class="since">Since 2.14</p>
724 </div>
725 <hr>
726 <div class="refsect2" title="g_unichar_toupper ()">
727 <a name="g-unichar-toupper"></a><h3>g_unichar_toupper ()</h3>
728 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>            g_unichar_toupper                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
729 <p>
730 Converts a character to uppercase.</p>
731 <div class="variablelist"><table border="0">
732 <col align="left" valign="top">
733 <tbody>
734 <tr>
735 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
736 <td> a Unicode character
737 </td>
738 </tr>
739 <tr>
740 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
741 <td> the result of converting <em class="parameter"><code>c</code></em> to uppercase.
742               If <em class="parameter"><code>c</code></em> is not an lowercase or titlecase character,
743               or has no upper case equivalent <em class="parameter"><code>c</code></em> is returned unchanged.
744 </td>
745 </tr>
746 </tbody>
747 </table></div>
748 </div>
749 <hr>
750 <div class="refsect2" title="g_unichar_tolower ()">
751 <a name="g-unichar-tolower"></a><h3>g_unichar_tolower ()</h3>
752 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>            g_unichar_tolower                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
753 <p>
754 Converts a character to lower case.</p>
755 <div class="variablelist"><table border="0">
756 <col align="left" valign="top">
757 <tbody>
758 <tr>
759 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
760 <td> a Unicode character.
761 </td>
762 </tr>
763 <tr>
764 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
765 <td> the result of converting <em class="parameter"><code>c</code></em> to lower case.
766               If <em class="parameter"><code>c</code></em> is not an upperlower or titlecase character,
767               or has no lowercase equivalent <em class="parameter"><code>c</code></em> is returned unchanged.
768 </td>
769 </tr>
770 </tbody>
771 </table></div>
772 </div>
773 <hr>
774 <div class="refsect2" title="g_unichar_totitle ()">
775 <a name="g-unichar-totitle"></a><h3>g_unichar_totitle ()</h3>
776 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>            g_unichar_totitle                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
777 <p>
778 Converts a character to the titlecase.</p>
779 <div class="variablelist"><table border="0">
780 <col align="left" valign="top">
781 <tbody>
782 <tr>
783 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
784 <td> a Unicode character
785 </td>
786 </tr>
787 <tr>
788 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
789 <td> the result of converting <em class="parameter"><code>c</code></em> to titlecase.
790               If <em class="parameter"><code>c</code></em> is not an uppercase or lowercase character,
791               <em class="parameter"><code>c</code></em> is returned unchanged.
792 </td>
793 </tr>
794 </tbody>
795 </table></div>
796 </div>
797 <hr>
798 <div class="refsect2" title="g_unichar_digit_value ()">
799 <a name="g-unichar-digit-value"></a><h3>g_unichar_digit_value ()</h3>
800 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                g_unichar_digit_value               (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
801 <p>
802 Determines the numeric value of a character as a decimal
803 digit.</p>
804 <div class="variablelist"><table border="0">
805 <col align="left" valign="top">
806 <tbody>
807 <tr>
808 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
809 <td> a Unicode character
810 </td>
811 </tr>
812 <tr>
813 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
814 <td> If <em class="parameter"><code>c</code></em> is a decimal digit (according to
815 <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isdigit" title="g_unichar_isdigit ()"><code class="function">g_unichar_isdigit()</code></a>), its numeric value. Otherwise, -1.
816 </td>
817 </tr>
818 </tbody>
819 </table></div>
820 </div>
821 <hr>
822 <div class="refsect2" title="g_unichar_xdigit_value ()">
823 <a name="g-unichar-xdigit-value"></a><h3>g_unichar_xdigit_value ()</h3>
824 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                g_unichar_xdigit_value              (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
825 <p>
826 Determines the numeric value of a character as a hexidecimal
827 digit.</p>
828 <div class="variablelist"><table border="0">
829 <col align="left" valign="top">
830 <tbody>
831 <tr>
832 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
833 <td> a Unicode character
834 </td>
835 </tr>
836 <tr>
837 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
838 <td> If <em class="parameter"><code>c</code></em> is a hex digit (according to
839 <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-isxdigit" title="g_unichar_isxdigit ()"><code class="function">g_unichar_isxdigit()</code></a>), its numeric value. Otherwise, -1.
840 </td>
841 </tr>
842 </tbody>
843 </table></div>
844 </div>
845 <hr>
846 <div class="refsect2" title="enum GUnicodeType">
847 <a name="GUnicodeType"></a><h3>enum GUnicodeType</h3>
848 <pre class="programlisting">typedef enum
849 {
850   G_UNICODE_CONTROL,
851   G_UNICODE_FORMAT,
852   G_UNICODE_UNASSIGNED,
853   G_UNICODE_PRIVATE_USE,
854   G_UNICODE_SURROGATE,
855   G_UNICODE_LOWERCASE_LETTER,
856   G_UNICODE_MODIFIER_LETTER,
857   G_UNICODE_OTHER_LETTER,
858   G_UNICODE_TITLECASE_LETTER,
859   G_UNICODE_UPPERCASE_LETTER,
860   G_UNICODE_COMBINING_MARK,
861   G_UNICODE_ENCLOSING_MARK,
862   G_UNICODE_NON_SPACING_MARK,
863   G_UNICODE_DECIMAL_NUMBER,
864   G_UNICODE_LETTER_NUMBER,
865   G_UNICODE_OTHER_NUMBER,
866   G_UNICODE_CONNECT_PUNCTUATION,
867   G_UNICODE_DASH_PUNCTUATION,
868   G_UNICODE_CLOSE_PUNCTUATION,
869   G_UNICODE_FINAL_PUNCTUATION,
870   G_UNICODE_INITIAL_PUNCTUATION,
871   G_UNICODE_OTHER_PUNCTUATION,
872   G_UNICODE_OPEN_PUNCTUATION,
873   G_UNICODE_CURRENCY_SYMBOL,
874   G_UNICODE_MODIFIER_SYMBOL,
875   G_UNICODE_MATH_SYMBOL,
876   G_UNICODE_OTHER_SYMBOL,
877   G_UNICODE_LINE_SEPARATOR,
878   G_UNICODE_PARAGRAPH_SEPARATOR,
879   G_UNICODE_SPACE_SEPARATOR
880 } GUnicodeType;
881 </pre>
882 <p>
883 These are the possible character classifications from the
884 Unicode specification.
885 See <a class="ulink" href="http://www.unicode.org/Public/UNIDATA/UnicodeData.html" target="_top">http://www.unicode.org/Public/UNIDATA/UnicodeData.html</a>.
886 </p>
887 <div class="variablelist"><table border="0">
888 <col align="left" valign="top">
889 <tbody>
890 <tr>
891 <td><p><a name="G-UNICODE-CONTROL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_CONTROL</code></span></p></td>
892 <td>General category "Other, Control" (Cc)
893 </td>
894 </tr>
895 <tr>
896 <td><p><a name="G-UNICODE-FORMAT:CAPS"></a><span class="term"><code class="literal">G_UNICODE_FORMAT</code></span></p></td>
897 <td>General category "Other, Format" (Cf)
898 </td>
899 </tr>
900 <tr>
901 <td><p><a name="G-UNICODE-UNASSIGNED:CAPS"></a><span class="term"><code class="literal">G_UNICODE_UNASSIGNED</code></span></p></td>
902 <td>General category "Other, Not Assigned" (Cn)
903 </td>
904 </tr>
905 <tr>
906 <td><p><a name="G-UNICODE-PRIVATE-USE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_PRIVATE_USE</code></span></p></td>
907 <td>General category "Other, Private Use" (Co)
908 </td>
909 </tr>
910 <tr>
911 <td><p><a name="G-UNICODE-SURROGATE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SURROGATE</code></span></p></td>
912 <td>General category "Other, Surrogate" (Cs)
913 </td>
914 </tr>
915 <tr>
916 <td><p><a name="G-UNICODE-LOWERCASE-LETTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_LOWERCASE_LETTER</code></span></p></td>
917 <td>General category "Letter, Lowercase" (Ll)
918 </td>
919 </tr>
920 <tr>
921 <td><p><a name="G-UNICODE-MODIFIER-LETTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_MODIFIER_LETTER</code></span></p></td>
922 <td>General category "Letter, Modifier" (Lm)
923 </td>
924 </tr>
925 <tr>
926 <td><p><a name="G-UNICODE-OTHER-LETTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_OTHER_LETTER</code></span></p></td>
927 <td>General category "Letter, Other" (Lo)
928 </td>
929 </tr>
930 <tr>
931 <td><p><a name="G-UNICODE-TITLECASE-LETTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_TITLECASE_LETTER</code></span></p></td>
932 <td>General category "Letter, Titlecase" (Lt)
933 </td>
934 </tr>
935 <tr>
936 <td><p><a name="G-UNICODE-UPPERCASE-LETTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_UPPERCASE_LETTER</code></span></p></td>
937 <td>General category "Letter, Uppercase" (Lu)
938 </td>
939 </tr>
940 <tr>
941 <td><p><a name="G-UNICODE-COMBINING-MARK:CAPS"></a><span class="term"><code class="literal">G_UNICODE_COMBINING_MARK</code></span></p></td>
942 <td>General category "Mark, Spacing Combining" (Mc)
943 </td>
944 </tr>
945 <tr>
946 <td><p><a name="G-UNICODE-ENCLOSING-MARK:CAPS"></a><span class="term"><code class="literal">G_UNICODE_ENCLOSING_MARK</code></span></p></td>
947 <td>General category "Mark, Enclosing" (Me)
948 </td>
949 </tr>
950 <tr>
951 <td><p><a name="G-UNICODE-NON-SPACING-MARK:CAPS"></a><span class="term"><code class="literal">G_UNICODE_NON_SPACING_MARK</code></span></p></td>
952 <td>General category "Mark, Nonspacing" (Mn)
953 </td>
954 </tr>
955 <tr>
956 <td><p><a name="G-UNICODE-DECIMAL-NUMBER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_DECIMAL_NUMBER</code></span></p></td>
957 <td>General category "Number, Decimal Digit" (Nd)
958 </td>
959 </tr>
960 <tr>
961 <td><p><a name="G-UNICODE-LETTER-NUMBER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_LETTER_NUMBER</code></span></p></td>
962 <td>General category "Number, Letter" (Nl)
963 </td>
964 </tr>
965 <tr>
966 <td><p><a name="G-UNICODE-OTHER-NUMBER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_OTHER_NUMBER</code></span></p></td>
967 <td>General category "Number, Other" (No)
968 </td>
969 </tr>
970 <tr>
971 <td><p><a name="G-UNICODE-CONNECT-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_CONNECT_PUNCTUATION</code></span></p></td>
972 <td>General category "Punctuation, Connector" (Pc)
973 </td>
974 </tr>
975 <tr>
976 <td><p><a name="G-UNICODE-DASH-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_DASH_PUNCTUATION</code></span></p></td>
977 <td>General category "Punctuation, Dash" (Pd)
978 </td>
979 </tr>
980 <tr>
981 <td><p><a name="G-UNICODE-CLOSE-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_CLOSE_PUNCTUATION</code></span></p></td>
982 <td>General category "Punctuation, Close" (Pe)
983 </td>
984 </tr>
985 <tr>
986 <td><p><a name="G-UNICODE-FINAL-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_FINAL_PUNCTUATION</code></span></p></td>
987 <td>General category "Punctuation, Final quote" (Pf)
988 </td>
989 </tr>
990 <tr>
991 <td><p><a name="G-UNICODE-INITIAL-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_INITIAL_PUNCTUATION</code></span></p></td>
992 <td>General category "Punctuation, Initial quote" (Pi)
993 </td>
994 </tr>
995 <tr>
996 <td><p><a name="G-UNICODE-OTHER-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_OTHER_PUNCTUATION</code></span></p></td>
997 <td>General category "Punctuation, Other" (Po)
998 </td>
999 </tr>
1000 <tr>
1001 <td><p><a name="G-UNICODE-OPEN-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_OPEN_PUNCTUATION</code></span></p></td>
1002 <td>General category "Punctuation, Open" (Ps)
1003 </td>
1004 </tr>
1005 <tr>
1006 <td><p><a name="G-UNICODE-CURRENCY-SYMBOL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_CURRENCY_SYMBOL</code></span></p></td>
1007 <td>General category "Symbol, Currency" (Sc)
1008 </td>
1009 </tr>
1010 <tr>
1011 <td><p><a name="G-UNICODE-MODIFIER-SYMBOL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_MODIFIER_SYMBOL</code></span></p></td>
1012 <td>General category "Symbol, Modifier" (Sk)
1013 </td>
1014 </tr>
1015 <tr>
1016 <td><p><a name="G-UNICODE-MATH-SYMBOL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_MATH_SYMBOL</code></span></p></td>
1017 <td>General category "Symbol, Math" (Sm)
1018 </td>
1019 </tr>
1020 <tr>
1021 <td><p><a name="G-UNICODE-OTHER-SYMBOL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_OTHER_SYMBOL</code></span></p></td>
1022 <td>General category "Symbol, Other" (So)
1023 </td>
1024 </tr>
1025 <tr>
1026 <td><p><a name="G-UNICODE-LINE-SEPARATOR:CAPS"></a><span class="term"><code class="literal">G_UNICODE_LINE_SEPARATOR</code></span></p></td>
1027 <td>General category "Separator, Line" (Zl)
1028 </td>
1029 </tr>
1030 <tr>
1031 <td><p><a name="G-UNICODE-PARAGRAPH-SEPARATOR:CAPS"></a><span class="term"><code class="literal">G_UNICODE_PARAGRAPH_SEPARATOR</code></span></p></td>
1032 <td>General category "Separator, Paragraph" (Zp)
1033 </td>
1034 </tr>
1035 <tr>
1036 <td><p><a name="G-UNICODE-SPACE-SEPARATOR:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SPACE_SEPARATOR</code></span></p></td>
1037 <td>General category "Separator, Space" (Zs)
1038 </td>
1039 </tr>
1040 </tbody>
1041 </table></div>
1042 </div>
1043 <hr>
1044 <div class="refsect2" title="g_unichar_type ()">
1045 <a name="g-unichar-type"></a><h3>g_unichar_type ()</h3>
1046 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeType" title="enum GUnicodeType"><span class="returnvalue">GUnicodeType</span></a>        g_unichar_type                      (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
1047 <p>
1048 Classifies a Unicode character by type.</p>
1049 <div class="variablelist"><table border="0">
1050 <col align="left" valign="top">
1051 <tbody>
1052 <tr>
1053 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
1054 <td> a Unicode character
1055 </td>
1056 </tr>
1057 <tr>
1058 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1059 <td> the type of the character.
1060 </td>
1061 </tr>
1062 </tbody>
1063 </table></div>
1064 </div>
1065 <hr>
1066 <div class="refsect2" title="enum GUnicodeBreakType">
1067 <a name="GUnicodeBreakType"></a><h3>enum GUnicodeBreakType</h3>
1068 <pre class="programlisting">typedef enum
1069 {
1070   G_UNICODE_BREAK_MANDATORY,
1071   G_UNICODE_BREAK_CARRIAGE_RETURN,
1072   G_UNICODE_BREAK_LINE_FEED,
1073   G_UNICODE_BREAK_COMBINING_MARK,
1074   G_UNICODE_BREAK_SURROGATE,
1075   G_UNICODE_BREAK_ZERO_WIDTH_SPACE,
1076   G_UNICODE_BREAK_INSEPARABLE,
1077   G_UNICODE_BREAK_NON_BREAKING_GLUE,
1078   G_UNICODE_BREAK_CONTINGENT,
1079   G_UNICODE_BREAK_SPACE,
1080   G_UNICODE_BREAK_AFTER,
1081   G_UNICODE_BREAK_BEFORE,
1082   G_UNICODE_BREAK_BEFORE_AND_AFTER,
1083   G_UNICODE_BREAK_HYPHEN,
1084   G_UNICODE_BREAK_NON_STARTER,
1085   G_UNICODE_BREAK_OPEN_PUNCTUATION,
1086   G_UNICODE_BREAK_CLOSE_PUNCTUATION,
1087   G_UNICODE_BREAK_QUOTATION,
1088   G_UNICODE_BREAK_EXCLAMATION,
1089   G_UNICODE_BREAK_IDEOGRAPHIC,
1090   G_UNICODE_BREAK_NUMERIC,
1091   G_UNICODE_BREAK_INFIX_SEPARATOR,
1092   G_UNICODE_BREAK_SYMBOL,
1093   G_UNICODE_BREAK_ALPHABETIC,
1094   G_UNICODE_BREAK_PREFIX,
1095   G_UNICODE_BREAK_POSTFIX,
1096   G_UNICODE_BREAK_COMPLEX_CONTEXT,
1097   G_UNICODE_BREAK_AMBIGUOUS,
1098   G_UNICODE_BREAK_UNKNOWN,
1099   G_UNICODE_BREAK_NEXT_LINE,
1100   G_UNICODE_BREAK_WORD_JOINER,
1101   G_UNICODE_BREAK_HANGUL_L_JAMO,
1102   G_UNICODE_BREAK_HANGUL_V_JAMO,
1103   G_UNICODE_BREAK_HANGUL_T_JAMO,
1104   G_UNICODE_BREAK_HANGUL_LV_SYLLABLE,
1105   G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE
1106 } GUnicodeBreakType;
1107 </pre>
1108 <p>
1109 These are the possible line break classifications.
1110 The five Hangul types were added in Unicode 4.1, so, has been
1111 introduced in GLib 2.10.  Note that new types may be added in the future.
1112 Applications should be ready to handle unknown values.
1113 They may be regarded as <a class="link" href="glib-Unicode-Manipulation.html#G-UNICODE-BREAK-UNKNOWN:CAPS"><code class="literal">G_UNICODE_BREAK_UNKNOWN</code></a>.
1114 See <a class="ulink" href="http://www.unicode.org/unicode/reports/tr14/" target="_top">http://www.unicode.org/unicode/reports/tr14/</a>.
1115 </p>
1116 <div class="variablelist"><table border="0">
1117 <col align="left" valign="top">
1118 <tbody>
1119 <tr>
1120 <td><p><a name="G-UNICODE-BREAK-MANDATORY:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_MANDATORY</code></span></p></td>
1121 <td>Mandatory Break (BK)
1122 </td>
1123 </tr>
1124 <tr>
1125 <td><p><a name="G-UNICODE-BREAK-CARRIAGE-RETURN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_CARRIAGE_RETURN</code></span></p></td>
1126 <td>Carriage Return (CR)
1127 </td>
1128 </tr>
1129 <tr>
1130 <td><p><a name="G-UNICODE-BREAK-LINE-FEED:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_LINE_FEED</code></span></p></td>
1131 <td>Line Feed (LF)
1132 </td>
1133 </tr>
1134 <tr>
1135 <td><p><a name="G-UNICODE-BREAK-COMBINING-MARK:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_COMBINING_MARK</code></span></p></td>
1136 <td>Attached Characters and Combining Marks (CM)
1137 </td>
1138 </tr>
1139 <tr>
1140 <td><p><a name="G-UNICODE-BREAK-SURROGATE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_SURROGATE</code></span></p></td>
1141 <td>Surrogates (SG)
1142 </td>
1143 </tr>
1144 <tr>
1145 <td><p><a name="G-UNICODE-BREAK-ZERO-WIDTH-SPACE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_ZERO_WIDTH_SPACE</code></span></p></td>
1146 <td>Zero Width Space (ZW)
1147 </td>
1148 </tr>
1149 <tr>
1150 <td><p><a name="G-UNICODE-BREAK-INSEPARABLE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_INSEPARABLE</code></span></p></td>
1151 <td>Inseparable (IN)
1152 </td>
1153 </tr>
1154 <tr>
1155 <td><p><a name="G-UNICODE-BREAK-NON-BREAKING-GLUE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_NON_BREAKING_GLUE</code></span></p></td>
1156 <td>Non-breaking ("Glue") (GL)
1157 </td>
1158 </tr>
1159 <tr>
1160 <td><p><a name="G-UNICODE-BREAK-CONTINGENT:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_CONTINGENT</code></span></p></td>
1161 <td>Contingent Break Opportunity (CB)
1162 </td>
1163 </tr>
1164 <tr>
1165 <td><p><a name="G-UNICODE-BREAK-SPACE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_SPACE</code></span></p></td>
1166 <td>Space (SP)
1167 </td>
1168 </tr>
1169 <tr>
1170 <td><p><a name="G-UNICODE-BREAK-AFTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_AFTER</code></span></p></td>
1171 <td>Break Opportunity After (BA)
1172 </td>
1173 </tr>
1174 <tr>
1175 <td><p><a name="G-UNICODE-BREAK-BEFORE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_BEFORE</code></span></p></td>
1176 <td>Break Opportunity Before (BB)
1177 </td>
1178 </tr>
1179 <tr>
1180 <td><p><a name="G-UNICODE-BREAK-BEFORE-AND-AFTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_BEFORE_AND_AFTER</code></span></p></td>
1181 <td>Break Opportunity Before and After (B2)
1182 </td>
1183 </tr>
1184 <tr>
1185 <td><p><a name="G-UNICODE-BREAK-HYPHEN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HYPHEN</code></span></p></td>
1186 <td>Hyphen (HY)
1187 </td>
1188 </tr>
1189 <tr>
1190 <td><p><a name="G-UNICODE-BREAK-NON-STARTER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_NON_STARTER</code></span></p></td>
1191 <td>Nonstarter (NS)
1192 </td>
1193 </tr>
1194 <tr>
1195 <td><p><a name="G-UNICODE-BREAK-OPEN-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_OPEN_PUNCTUATION</code></span></p></td>
1196 <td>Opening Punctuation (OP)
1197 </td>
1198 </tr>
1199 <tr>
1200 <td><p><a name="G-UNICODE-BREAK-CLOSE-PUNCTUATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_CLOSE_PUNCTUATION</code></span></p></td>
1201 <td>Closing Punctuation (CL)
1202 </td>
1203 </tr>
1204 <tr>
1205 <td><p><a name="G-UNICODE-BREAK-QUOTATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_QUOTATION</code></span></p></td>
1206 <td>Ambiguous Quotation (QU)
1207 </td>
1208 </tr>
1209 <tr>
1210 <td><p><a name="G-UNICODE-BREAK-EXCLAMATION:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_EXCLAMATION</code></span></p></td>
1211 <td>Exclamation/Interrogation (EX)
1212 </td>
1213 </tr>
1214 <tr>
1215 <td><p><a name="G-UNICODE-BREAK-IDEOGRAPHIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_IDEOGRAPHIC</code></span></p></td>
1216 <td>Ideographic (ID)
1217 </td>
1218 </tr>
1219 <tr>
1220 <td><p><a name="G-UNICODE-BREAK-NUMERIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_NUMERIC</code></span></p></td>
1221 <td>Numeric (NU)
1222 </td>
1223 </tr>
1224 <tr>
1225 <td><p><a name="G-UNICODE-BREAK-INFIX-SEPARATOR:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_INFIX_SEPARATOR</code></span></p></td>
1226 <td>Infix Separator (Numeric) (IS)
1227 </td>
1228 </tr>
1229 <tr>
1230 <td><p><a name="G-UNICODE-BREAK-SYMBOL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_SYMBOL</code></span></p></td>
1231 <td>Symbols Allowing Break After (SY)
1232 </td>
1233 </tr>
1234 <tr>
1235 <td><p><a name="G-UNICODE-BREAK-ALPHABETIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_ALPHABETIC</code></span></p></td>
1236 <td>Ordinary Alphabetic and Symbol Characters (AL)
1237 </td>
1238 </tr>
1239 <tr>
1240 <td><p><a name="G-UNICODE-BREAK-PREFIX:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_PREFIX</code></span></p></td>
1241 <td>Prefix (Numeric) (PR)
1242 </td>
1243 </tr>
1244 <tr>
1245 <td><p><a name="G-UNICODE-BREAK-POSTFIX:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_POSTFIX</code></span></p></td>
1246 <td>Postfix (Numeric) (PO)
1247 </td>
1248 </tr>
1249 <tr>
1250 <td><p><a name="G-UNICODE-BREAK-COMPLEX-CONTEXT:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_COMPLEX_CONTEXT</code></span></p></td>
1251 <td>Complex Content Dependent (South East Asian) (SA)
1252 </td>
1253 </tr>
1254 <tr>
1255 <td><p><a name="G-UNICODE-BREAK-AMBIGUOUS:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_AMBIGUOUS</code></span></p></td>
1256 <td>Ambiguous (Alphabetic or Ideographic) (AI)
1257 </td>
1258 </tr>
1259 <tr>
1260 <td><p><a name="G-UNICODE-BREAK-UNKNOWN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_UNKNOWN</code></span></p></td>
1261 <td>Unknown (XX)
1262 </td>
1263 </tr>
1264 <tr>
1265 <td><p><a name="G-UNICODE-BREAK-NEXT-LINE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_NEXT_LINE</code></span></p></td>
1266 <td>Next Line (NL)
1267 </td>
1268 </tr>
1269 <tr>
1270 <td><p><a name="G-UNICODE-BREAK-WORD-JOINER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_WORD_JOINER</code></span></p></td>
1271 <td>Word Joiner (WJ)
1272 </td>
1273 </tr>
1274 <tr>
1275 <td><p><a name="G-UNICODE-BREAK-HANGUL-L-JAMO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HANGUL_L_JAMO</code></span></p></td>
1276 <td>Hangul L Jamo (JL)
1277 </td>
1278 </tr>
1279 <tr>
1280 <td><p><a name="G-UNICODE-BREAK-HANGUL-V-JAMO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HANGUL_V_JAMO</code></span></p></td>
1281 <td>Hangul V Jamo (JV)
1282 </td>
1283 </tr>
1284 <tr>
1285 <td><p><a name="G-UNICODE-BREAK-HANGUL-T-JAMO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HANGUL_T_JAMO</code></span></p></td>
1286 <td>Hangul T Jamo (JT)
1287 </td>
1288 </tr>
1289 <tr>
1290 <td><p><a name="G-UNICODE-BREAK-HANGUL-LV-SYLLABLE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HANGUL_LV_SYLLABLE</code></span></p></td>
1291 <td>Hangul LV Syllable (H2)
1292 </td>
1293 </tr>
1294 <tr>
1295 <td><p><a name="G-UNICODE-BREAK-HANGUL-LVT-SYLLABLE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE</code></span></p></td>
1296 <td>Hangul LVT Syllable (H3)
1297 </td>
1298 </tr>
1299 </tbody>
1300 </table></div>
1301 </div>
1302 <hr>
1303 <div class="refsect2" title="g_unichar_break_type ()">
1304 <a name="g-unichar-break-type"></a><h3>g_unichar_break_type ()</h3>
1305 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeBreakType" title="enum GUnicodeBreakType"><span class="returnvalue">GUnicodeBreakType</span></a>   g_unichar_break_type                (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
1306 <p>
1307 Determines the break type of <em class="parameter"><code>c</code></em>. <em class="parameter"><code>c</code></em> should be a Unicode character
1308 (to derive a character from UTF-8 encoded text, use
1309 <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char" title="g_utf8_get_char ()"><code class="function">g_utf8_get_char()</code></a>). The break type is used to find word and line
1310 breaks ("text boundaries"), Pango implements the Unicode boundary
1311 resolution algorithms and normally you would use a function such
1312 as <a href="/usr/share/gtk-doc/html/pango/pango-Text-Processing.html#pango-break"><code class="function">pango_break()</code></a> instead of caring about break types yourself.</p>
1313 <div class="variablelist"><table border="0">
1314 <col align="left" valign="top">
1315 <tbody>
1316 <tr>
1317 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
1318 <td> a Unicode character
1319 </td>
1320 </tr>
1321 <tr>
1322 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1323 <td> the break type of <em class="parameter"><code>c</code></em>
1324 </td>
1325 </tr>
1326 </tbody>
1327 </table></div>
1328 </div>
1329 <hr>
1330 <div class="refsect2" title="g_unichar_combining_class ()">
1331 <a name="g-unichar-combining-class"></a><h3>g_unichar_combining_class ()</h3>
1332 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                g_unichar_combining_class           (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> uc);</pre>
1333 <p>
1334 Determines the canonical combining class of a Unicode character.</p>
1335 <div class="variablelist"><table border="0">
1336 <col align="left" valign="top">
1337 <tbody>
1338 <tr>
1339 <td><p><span class="term"><em class="parameter"><code>uc</code></em> :</span></p></td>
1340 <td> a Unicode character
1341 </td>
1342 </tr>
1343 <tr>
1344 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1345 <td> the combining class of the character
1346
1347 </td>
1348 </tr>
1349 </tbody>
1350 </table></div>
1351 <p class="since">Since 2.14</p>
1352 </div>
1353 <hr>
1354 <div class="refsect2" title="g_unicode_canonical_ordering ()">
1355 <a name="g-unicode-canonical-ordering"></a><h3>g_unicode_canonical_ordering ()</h3>
1356 <pre class="programlisting"><span class="returnvalue">void</span>                g_unicode_canonical_ordering        (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *string,
1357                                                          <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> len);</pre>
1358 <p>
1359 Computes the canonical ordering of a string in-place.  
1360 This rearranges decomposed characters in the string 
1361 according to their combining classes.  See the Unicode 
1362 manual for more information.</p>
1363 <div class="variablelist"><table border="0">
1364 <col align="left" valign="top">
1365 <tbody>
1366 <tr>
1367 <td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
1368 <td> a UCS-4 encoded string.
1369 </td>
1370 </tr>
1371 <tr>
1372 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
1373 <td> the maximum length of <em class="parameter"><code>string</code></em> to use.
1374 </td>
1375 </tr>
1376 </tbody>
1377 </table></div>
1378 </div>
1379 <hr>
1380 <div class="refsect2" title="g_unicode_canonical_decomposition ()">
1381 <a name="g-unicode-canonical-decomposition"></a><h3>g_unicode_canonical_decomposition ()</h3>
1382 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *          g_unicode_canonical_decomposition   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch,
1383                                                          <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> *result_len);</pre>
1384 <p>
1385 Computes the canonical decomposition of a Unicode character.</p>
1386 <div class="variablelist"><table border="0">
1387 <col align="left" valign="top">
1388 <tbody>
1389 <tr>
1390 <td><p><span class="term"><em class="parameter"><code>ch</code></em> :</span></p></td>
1391 <td> a Unicode character.
1392 </td>
1393 </tr>
1394 <tr>
1395 <td><p><span class="term"><em class="parameter"><code>result_len</code></em> :</span></p></td>
1396 <td> location to store the length of the return value.
1397 </td>
1398 </tr>
1399 <tr>
1400 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1401 <td> a newly allocated string of Unicode characters.
1402   <em class="parameter"><code>result_len</code></em> is set to the resulting length of the string.
1403 </td>
1404 </tr>
1405 </tbody>
1406 </table></div>
1407 </div>
1408 <hr>
1409 <div class="refsect2" title="g_unichar_get_mirror_char ()">
1410 <a name="g-unichar-get-mirror-char"></a><h3>g_unichar_get_mirror_char ()</h3>
1411 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_unichar_get_mirror_char           (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch,
1412                                                          <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *mirrored_ch);</pre>
1413 <p>
1414 In Unicode, some characters are <em class="firstterm">mirrored</em>. This
1415 means that their images are mirrored horizontally in text that is laid
1416 out from right to left. For instance, "(" would become its mirror image,
1417 ")", in right-to-left text.
1418 </p>
1419 <p>
1420 If <em class="parameter"><code>ch</code></em> has the Unicode mirrored property and there is another unicode
1421 character that typically has a glyph that is the mirror image of <em class="parameter"><code>ch</code></em>'s
1422 glyph and <em class="parameter"><code>mirrored_ch</code></em> is set, it puts that character in the address
1423 pointed to by <em class="parameter"><code>mirrored_ch</code></em>.  Otherwise the original character is put.</p>
1424 <div class="variablelist"><table border="0">
1425 <col align="left" valign="top">
1426 <tbody>
1427 <tr>
1428 <td><p><span class="term"><em class="parameter"><code>ch</code></em> :</span></p></td>
1429 <td> a Unicode character
1430 </td>
1431 </tr>
1432 <tr>
1433 <td><p><span class="term"><em class="parameter"><code>mirrored_ch</code></em> :</span></p></td>
1434 <td> location to store the mirrored character
1435 </td>
1436 </tr>
1437 <tr>
1438 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1439 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>ch</code></em> has a mirrored character, <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> otherwise
1440
1441 </td>
1442 </tr>
1443 </tbody>
1444 </table></div>
1445 <p class="since">Since 2.4</p>
1446 </div>
1447 <hr>
1448 <div class="refsect2" title="enum GUnicodeScript">
1449 <a name="GUnicodeScript"></a><h3>enum GUnicodeScript</h3>
1450 <pre class="programlisting">typedef enum 
1451 {                         /* ISO 15924 code */
1452   G_UNICODE_SCRIPT_INVALID_CODE = -1,
1453   G_UNICODE_SCRIPT_COMMON       = 0,   /* Zyyy */
1454   G_UNICODE_SCRIPT_INHERITED,          /* Qaai */
1455   G_UNICODE_SCRIPT_ARABIC,             /* Arab */
1456   G_UNICODE_SCRIPT_ARMENIAN,           /* Armn */
1457   G_UNICODE_SCRIPT_BENGALI,            /* Beng */
1458   G_UNICODE_SCRIPT_BOPOMOFO,           /* Bopo */
1459   G_UNICODE_SCRIPT_CHEROKEE,           /* Cher */
1460   G_UNICODE_SCRIPT_COPTIC,             /* Qaac */
1461   G_UNICODE_SCRIPT_CYRILLIC,           /* Cyrl (Cyrs) */
1462   G_UNICODE_SCRIPT_DESERET,            /* Dsrt */
1463   G_UNICODE_SCRIPT_DEVANAGARI,         /* Deva */
1464   G_UNICODE_SCRIPT_ETHIOPIC,           /* Ethi */
1465   G_UNICODE_SCRIPT_GEORGIAN,           /* Geor (Geon, Geoa) */
1466   G_UNICODE_SCRIPT_GOTHIC,             /* Goth */
1467   G_UNICODE_SCRIPT_GREEK,              /* Grek */
1468   G_UNICODE_SCRIPT_GUJARATI,           /* Gujr */
1469   G_UNICODE_SCRIPT_GURMUKHI,           /* Guru */
1470   G_UNICODE_SCRIPT_HAN,                /* Hani */
1471   G_UNICODE_SCRIPT_HANGUL,             /* Hang */
1472   G_UNICODE_SCRIPT_HEBREW,             /* Hebr */
1473   G_UNICODE_SCRIPT_HIRAGANA,           /* Hira */
1474   G_UNICODE_SCRIPT_KANNADA,            /* Knda */
1475   G_UNICODE_SCRIPT_KATAKANA,           /* Kana */
1476   G_UNICODE_SCRIPT_KHMER,              /* Khmr */
1477   G_UNICODE_SCRIPT_LAO,                /* Laoo */
1478   G_UNICODE_SCRIPT_LATIN,              /* Latn (Latf, Latg) */
1479   G_UNICODE_SCRIPT_MALAYALAM,          /* Mlym */
1480   G_UNICODE_SCRIPT_MONGOLIAN,          /* Mong */
1481   G_UNICODE_SCRIPT_MYANMAR,            /* Mymr */
1482   G_UNICODE_SCRIPT_OGHAM,              /* Ogam */
1483   G_UNICODE_SCRIPT_OLD_ITALIC,         /* Ital */
1484   G_UNICODE_SCRIPT_ORIYA,              /* Orya */
1485   G_UNICODE_SCRIPT_RUNIC,              /* Runr */
1486   G_UNICODE_SCRIPT_SINHALA,            /* Sinh */
1487   G_UNICODE_SCRIPT_SYRIAC,             /* Syrc (Syrj, Syrn, Syre) */
1488   G_UNICODE_SCRIPT_TAMIL,              /* Taml */
1489   G_UNICODE_SCRIPT_TELUGU,             /* Telu */
1490   G_UNICODE_SCRIPT_THAANA,             /* Thaa */
1491   G_UNICODE_SCRIPT_THAI,               /* Thai */
1492   G_UNICODE_SCRIPT_TIBETAN,            /* Tibt */
1493   G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */
1494   G_UNICODE_SCRIPT_YI,                 /* Yiii */
1495   G_UNICODE_SCRIPT_TAGALOG,            /* Tglg */
1496   G_UNICODE_SCRIPT_HANUNOO,            /* Hano */
1497   G_UNICODE_SCRIPT_BUHID,              /* Buhd */
1498   G_UNICODE_SCRIPT_TAGBANWA,           /* Tagb */
1499
1500   /* Unicode-4.0 additions */
1501   G_UNICODE_SCRIPT_BRAILLE,            /* Brai */
1502   G_UNICODE_SCRIPT_CYPRIOT,            /* Cprt */
1503   G_UNICODE_SCRIPT_LIMBU,              /* Limb */
1504   G_UNICODE_SCRIPT_OSMANYA,            /* Osma */
1505   G_UNICODE_SCRIPT_SHAVIAN,            /* Shaw */
1506   G_UNICODE_SCRIPT_LINEAR_B,           /* Linb */
1507   G_UNICODE_SCRIPT_TAI_LE,             /* Tale */
1508   G_UNICODE_SCRIPT_UGARITIC,           /* Ugar */
1509       
1510   /* Unicode-4.1 additions */
1511   G_UNICODE_SCRIPT_NEW_TAI_LUE,        /* Talu */
1512   G_UNICODE_SCRIPT_BUGINESE,           /* Bugi */
1513   G_UNICODE_SCRIPT_GLAGOLITIC,         /* Glag */
1514   G_UNICODE_SCRIPT_TIFINAGH,           /* Tfng */
1515   G_UNICODE_SCRIPT_SYLOTI_NAGRI,       /* Sylo */
1516   G_UNICODE_SCRIPT_OLD_PERSIAN,        /* Xpeo */
1517   G_UNICODE_SCRIPT_KHAROSHTHI,         /* Khar */
1518
1519   /* Unicode-5.0 additions */
1520   G_UNICODE_SCRIPT_UNKNOWN,            /* Zzzz */
1521   G_UNICODE_SCRIPT_BALINESE,           /* Bali */
1522   G_UNICODE_SCRIPT_CUNEIFORM,          /* Xsux */
1523   G_UNICODE_SCRIPT_PHOENICIAN,         /* Phnx */
1524   G_UNICODE_SCRIPT_PHAGS_PA,           /* Phag */
1525   G_UNICODE_SCRIPT_NKO,                /* Nkoo */
1526
1527   /* Unicode-5.1 additions */
1528   G_UNICODE_SCRIPT_KAYAH_LI,           /* Kali */
1529   G_UNICODE_SCRIPT_LEPCHA,             /* Lepc */
1530   G_UNICODE_SCRIPT_REJANG,             /* Rjng */
1531   G_UNICODE_SCRIPT_SUNDANESE,          /* Sund */
1532   G_UNICODE_SCRIPT_SAURASHTRA,         /* Saur */
1533   G_UNICODE_SCRIPT_CHAM,               /* Cham */
1534   G_UNICODE_SCRIPT_OL_CHIKI,           /* Olck */
1535   G_UNICODE_SCRIPT_VAI,                /* Vaii */
1536   G_UNICODE_SCRIPT_CARIAN,             /* Cari */
1537   G_UNICODE_SCRIPT_LYCIAN,             /* Lyci */
1538   G_UNICODE_SCRIPT_LYDIAN              /* Lydi */
1539 } GUnicodeScript;
1540 </pre>
1541 <p>
1542 The <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="type">GUnicodeScript</span></a> enumeration identifies different writing
1543 systems. The values correspond to the names as defined in the
1544 Unicode standard. The enumeration has been added in GLib 2.14,
1545 and is interchangeable with <a href="/usr/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html#PangoScript"><span class="type">PangoScript</span></a>.
1546 Note that new types may be added in the future. Applications
1547 should be ready to handle unknown values.
1548 See <a class="ulink" href="http://www.unicode.org/reports/tr24/" target="_top">Unicode Standard Annex
1549 #24: Script names</a>.
1550 </p>
1551 <div class="variablelist"><table border="0">
1552 <col align="left" valign="top">
1553 <tbody>
1554 <tr>
1555 <td><p><a name="G-UNICODE-SCRIPT-INVALID-CODE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_INVALID_CODE</code></span></p></td>
1556 <td>a value never returned from <a class="link" href="glib-Unicode-Manipulation.html#g-unichar-get-script" title="g_unichar_get_script ()"><code class="function">g_unichar_get_script()</code></a>
1557 </td>
1558 </tr>
1559 <tr>
1560 <td><p><a name="G-UNICODE-SCRIPT-COMMON:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_COMMON</code></span></p></td>
1561 <td>    a character used by multiple different scripts
1562 </td>
1563 </tr>
1564 <tr>
1565 <td><p><a name="G-UNICODE-SCRIPT-INHERITED:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_INHERITED</code></span></p></td>
1566 <td> a mark glyph that takes its script from the
1567                               base glyph to which it is attached
1568 </td>
1569 </tr>
1570 <tr>
1571 <td><p><a name="G-UNICODE-SCRIPT-ARABIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_ARABIC</code></span></p></td>
1572 <td>    Arabic
1573 </td>
1574 </tr>
1575 <tr>
1576 <td><p><a name="G-UNICODE-SCRIPT-ARMENIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_ARMENIAN</code></span></p></td>
1577 <td>  Armenian
1578 </td>
1579 </tr>
1580 <tr>
1581 <td><p><a name="G-UNICODE-SCRIPT-BENGALI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BENGALI</code></span></p></td>
1582 <td>   Bengali
1583 </td>
1584 </tr>
1585 <tr>
1586 <td><p><a name="G-UNICODE-SCRIPT-BOPOMOFO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BOPOMOFO</code></span></p></td>
1587 <td>  Bopomofo
1588 </td>
1589 </tr>
1590 <tr>
1591 <td><p><a name="G-UNICODE-SCRIPT-CHEROKEE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CHEROKEE</code></span></p></td>
1592 <td>  Cherokee
1593 </td>
1594 </tr>
1595 <tr>
1596 <td><p><a name="G-UNICODE-SCRIPT-COPTIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_COPTIC</code></span></p></td>
1597 <td>    Coptic
1598 </td>
1599 </tr>
1600 <tr>
1601 <td><p><a name="G-UNICODE-SCRIPT-CYRILLIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CYRILLIC</code></span></p></td>
1602 <td>  Cyrillic
1603 </td>
1604 </tr>
1605 <tr>
1606 <td><p><a name="G-UNICODE-SCRIPT-DESERET:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_DESERET</code></span></p></td>
1607 <td>   Deseret
1608 </td>
1609 </tr>
1610 <tr>
1611 <td><p><a name="G-UNICODE-SCRIPT-DEVANAGARI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_DEVANAGARI</code></span></p></td>
1612 <td>Devanagari
1613 </td>
1614 </tr>
1615 <tr>
1616 <td><p><a name="G-UNICODE-SCRIPT-ETHIOPIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_ETHIOPIC</code></span></p></td>
1617 <td>  Ethiopic
1618 </td>
1619 </tr>
1620 <tr>
1621 <td><p><a name="G-UNICODE-SCRIPT-GEORGIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GEORGIAN</code></span></p></td>
1622 <td>  Georgian
1623 </td>
1624 </tr>
1625 <tr>
1626 <td><p><a name="G-UNICODE-SCRIPT-GOTHIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GOTHIC</code></span></p></td>
1627 <td>    Gothic
1628 </td>
1629 </tr>
1630 <tr>
1631 <td><p><a name="G-UNICODE-SCRIPT-GREEK:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GREEK</code></span></p></td>
1632 <td>     Greek
1633 </td>
1634 </tr>
1635 <tr>
1636 <td><p><a name="G-UNICODE-SCRIPT-GUJARATI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GUJARATI</code></span></p></td>
1637 <td>  Gujarati
1638 </td>
1639 </tr>
1640 <tr>
1641 <td><p><a name="G-UNICODE-SCRIPT-GURMUKHI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GURMUKHI</code></span></p></td>
1642 <td>  Gurmukhi
1643 </td>
1644 </tr>
1645 <tr>
1646 <td><p><a name="G-UNICODE-SCRIPT-HAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_HAN</code></span></p></td>
1647 <td>       Han
1648 </td>
1649 </tr>
1650 <tr>
1651 <td><p><a name="G-UNICODE-SCRIPT-HANGUL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_HANGUL</code></span></p></td>
1652 <td>    Hangul
1653 </td>
1654 </tr>
1655 <tr>
1656 <td><p><a name="G-UNICODE-SCRIPT-HEBREW:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_HEBREW</code></span></p></td>
1657 <td>    Hebrew
1658 </td>
1659 </tr>
1660 <tr>
1661 <td><p><a name="G-UNICODE-SCRIPT-HIRAGANA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_HIRAGANA</code></span></p></td>
1662 <td>  Hiragana
1663 </td>
1664 </tr>
1665 <tr>
1666 <td><p><a name="G-UNICODE-SCRIPT-KANNADA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_KANNADA</code></span></p></td>
1667 <td>   Kannada
1668 </td>
1669 </tr>
1670 <tr>
1671 <td><p><a name="G-UNICODE-SCRIPT-KATAKANA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_KATAKANA</code></span></p></td>
1672 <td>  Katakana
1673 </td>
1674 </tr>
1675 <tr>
1676 <td><p><a name="G-UNICODE-SCRIPT-KHMER:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_KHMER</code></span></p></td>
1677 <td>     Khmer
1678 </td>
1679 </tr>
1680 <tr>
1681 <td><p><a name="G-UNICODE-SCRIPT-LAO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LAO</code></span></p></td>
1682 <td>       Lao
1683 </td>
1684 </tr>
1685 <tr>
1686 <td><p><a name="G-UNICODE-SCRIPT-LATIN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LATIN</code></span></p></td>
1687 <td>     Latin
1688 </td>
1689 </tr>
1690 <tr>
1691 <td><p><a name="G-UNICODE-SCRIPT-MALAYALAM:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_MALAYALAM</code></span></p></td>
1692 <td> Malayalam
1693 </td>
1694 </tr>
1695 <tr>
1696 <td><p><a name="G-UNICODE-SCRIPT-MONGOLIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_MONGOLIAN</code></span></p></td>
1697 <td> Mongolian
1698 </td>
1699 </tr>
1700 <tr>
1701 <td><p><a name="G-UNICODE-SCRIPT-MYANMAR:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_MYANMAR</code></span></p></td>
1702 <td>   Myanmar
1703 </td>
1704 </tr>
1705 <tr>
1706 <td><p><a name="G-UNICODE-SCRIPT-OGHAM:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_OGHAM</code></span></p></td>
1707 <td>     Ogham
1708 </td>
1709 </tr>
1710 <tr>
1711 <td><p><a name="G-UNICODE-SCRIPT-OLD-ITALIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_OLD_ITALIC</code></span></p></td>
1712 <td>Old Italic
1713 </td>
1714 </tr>
1715 <tr>
1716 <td><p><a name="G-UNICODE-SCRIPT-ORIYA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_ORIYA</code></span></p></td>
1717 <td>     Oriya
1718 </td>
1719 </tr>
1720 <tr>
1721 <td><p><a name="G-UNICODE-SCRIPT-RUNIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_RUNIC</code></span></p></td>
1722 <td>     Runic
1723 </td>
1724 </tr>
1725 <tr>
1726 <td><p><a name="G-UNICODE-SCRIPT-SINHALA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SINHALA</code></span></p></td>
1727 <td>   Sinhala
1728 </td>
1729 </tr>
1730 <tr>
1731 <td><p><a name="G-UNICODE-SCRIPT-SYRIAC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SYRIAC</code></span></p></td>
1732 <td>    Syriac
1733 </td>
1734 </tr>
1735 <tr>
1736 <td><p><a name="G-UNICODE-SCRIPT-TAMIL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TAMIL</code></span></p></td>
1737 <td>     Tamil
1738 </td>
1739 </tr>
1740 <tr>
1741 <td><p><a name="G-UNICODE-SCRIPT-TELUGU:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TELUGU</code></span></p></td>
1742 <td>    Telugu
1743 </td>
1744 </tr>
1745 <tr>
1746 <td><p><a name="G-UNICODE-SCRIPT-THAANA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_THAANA</code></span></p></td>
1747 <td>    Thaana
1748 </td>
1749 </tr>
1750 <tr>
1751 <td><p><a name="G-UNICODE-SCRIPT-THAI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_THAI</code></span></p></td>
1752 <td>      Thai
1753 </td>
1754 </tr>
1755 <tr>
1756 <td><p><a name="G-UNICODE-SCRIPT-TIBETAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TIBETAN</code></span></p></td>
1757 <td>   Tibetan
1758 </td>
1759 </tr>
1760 <tr>
1761 <td><p><a name="G-UNICODE-SCRIPT-CANADIAN-ABORIGINAL:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL</code></span></p></td>
1762 <td>
1763                               Canadian Aboriginal
1764 </td>
1765 </tr>
1766 <tr>
1767 <td><p><a name="G-UNICODE-SCRIPT-YI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_YI</code></span></p></td>
1768 <td>        Yi
1769 </td>
1770 </tr>
1771 <tr>
1772 <td><p><a name="G-UNICODE-SCRIPT-TAGALOG:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TAGALOG</code></span></p></td>
1773 <td>   Tagalog
1774 </td>
1775 </tr>
1776 <tr>
1777 <td><p><a name="G-UNICODE-SCRIPT-HANUNOO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_HANUNOO</code></span></p></td>
1778 <td>   Hanunoo
1779 </td>
1780 </tr>
1781 <tr>
1782 <td><p><a name="G-UNICODE-SCRIPT-BUHID:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BUHID</code></span></p></td>
1783 <td>     Buhid
1784 </td>
1785 </tr>
1786 <tr>
1787 <td><p><a name="G-UNICODE-SCRIPT-TAGBANWA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TAGBANWA</code></span></p></td>
1788 <td>  Tagbanwa
1789 </td>
1790 </tr>
1791 <tr>
1792 <td><p><a name="G-UNICODE-SCRIPT-BRAILLE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BRAILLE</code></span></p></td>
1793 <td>   Braille
1794 </td>
1795 </tr>
1796 <tr>
1797 <td><p><a name="G-UNICODE-SCRIPT-CYPRIOT:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CYPRIOT</code></span></p></td>
1798 <td>   Cypriot
1799 </td>
1800 </tr>
1801 <tr>
1802 <td><p><a name="G-UNICODE-SCRIPT-LIMBU:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LIMBU</code></span></p></td>
1803 <td>     Limbu
1804 </td>
1805 </tr>
1806 <tr>
1807 <td><p><a name="G-UNICODE-SCRIPT-OSMANYA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_OSMANYA</code></span></p></td>
1808 <td>   Osmanya
1809 </td>
1810 </tr>
1811 <tr>
1812 <td><p><a name="G-UNICODE-SCRIPT-SHAVIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SHAVIAN</code></span></p></td>
1813 <td>   Shavian
1814 </td>
1815 </tr>
1816 <tr>
1817 <td><p><a name="G-UNICODE-SCRIPT-LINEAR-B:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LINEAR_B</code></span></p></td>
1818 <td>  Linear B
1819 </td>
1820 </tr>
1821 <tr>
1822 <td><p><a name="G-UNICODE-SCRIPT-TAI-LE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TAI_LE</code></span></p></td>
1823 <td>    Tai Le
1824 </td>
1825 </tr>
1826 <tr>
1827 <td><p><a name="G-UNICODE-SCRIPT-UGARITIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_UGARITIC</code></span></p></td>
1828 <td>  Ugaritic
1829 </td>
1830 </tr>
1831 <tr>
1832 <td><p><a name="G-UNICODE-SCRIPT-NEW-TAI-LUE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_NEW_TAI_LUE</code></span></p></td>
1833 <td>New Tai Lue
1834 </td>
1835 </tr>
1836 <tr>
1837 <td><p><a name="G-UNICODE-SCRIPT-BUGINESE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BUGINESE</code></span></p></td>
1838 <td>  Buginese
1839 </td>
1840 </tr>
1841 <tr>
1842 <td><p><a name="G-UNICODE-SCRIPT-GLAGOLITIC:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_GLAGOLITIC</code></span></p></td>
1843 <td>Glagolitic
1844 </td>
1845 </tr>
1846 <tr>
1847 <td><p><a name="G-UNICODE-SCRIPT-TIFINAGH:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_TIFINAGH</code></span></p></td>
1848 <td>  Tifinagh
1849 </td>
1850 </tr>
1851 <tr>
1852 <td><p><a name="G-UNICODE-SCRIPT-SYLOTI-NAGRI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SYLOTI_NAGRI</code></span></p></td>
1853 <td>Syloti Nagri
1854 </td>
1855 </tr>
1856 <tr>
1857 <td><p><a name="G-UNICODE-SCRIPT-OLD-PERSIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_OLD_PERSIAN</code></span></p></td>
1858 <td>Old Persian
1859 </td>
1860 </tr>
1861 <tr>
1862 <td><p><a name="G-UNICODE-SCRIPT-KHAROSHTHI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_KHAROSHTHI</code></span></p></td>
1863 <td>Kharoshthi
1864 </td>
1865 </tr>
1866 <tr>
1867 <td><p><a name="G-UNICODE-SCRIPT-UNKNOWN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_UNKNOWN</code></span></p></td>
1868 <td>   an unassigned code point
1869 </td>
1870 </tr>
1871 <tr>
1872 <td><p><a name="G-UNICODE-SCRIPT-BALINESE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_BALINESE</code></span></p></td>
1873 <td>  Balinese
1874 </td>
1875 </tr>
1876 <tr>
1877 <td><p><a name="G-UNICODE-SCRIPT-CUNEIFORM:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CUNEIFORM</code></span></p></td>
1878 <td> Cuneiform
1879 </td>
1880 </tr>
1881 <tr>
1882 <td><p><a name="G-UNICODE-SCRIPT-PHOENICIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_PHOENICIAN</code></span></p></td>
1883 <td>Phoenician
1884 </td>
1885 </tr>
1886 <tr>
1887 <td><p><a name="G-UNICODE-SCRIPT-PHAGS-PA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_PHAGS_PA</code></span></p></td>
1888 <td>  Phags-pa
1889 </td>
1890 </tr>
1891 <tr>
1892 <td><p><a name="G-UNICODE-SCRIPT-NKO:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_NKO</code></span></p></td>
1893 <td>       N'Ko
1894 </td>
1895 </tr>
1896 <tr>
1897 <td><p><a name="G-UNICODE-SCRIPT-KAYAH-LI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_KAYAH_LI</code></span></p></td>
1898 <td>  Kayah Li. Since 2.16.3
1899 </td>
1900 </tr>
1901 <tr>
1902 <td><p><a name="G-UNICODE-SCRIPT-LEPCHA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LEPCHA</code></span></p></td>
1903 <td>    Lepcha. Since 2.16.3
1904 </td>
1905 </tr>
1906 <tr>
1907 <td><p><a name="G-UNICODE-SCRIPT-REJANG:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_REJANG</code></span></p></td>
1908 <td>    Rejang. Since 2.16.3
1909 </td>
1910 </tr>
1911 <tr>
1912 <td><p><a name="G-UNICODE-SCRIPT-SUNDANESE:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SUNDANESE</code></span></p></td>
1913 <td> Sundanese. Since 2.16.3
1914 </td>
1915 </tr>
1916 <tr>
1917 <td><p><a name="G-UNICODE-SCRIPT-SAURASHTRA:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_SAURASHTRA</code></span></p></td>
1918 <td>Saurashtra. Since 2.16.3
1919 </td>
1920 </tr>
1921 <tr>
1922 <td><p><a name="G-UNICODE-SCRIPT-CHAM:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CHAM</code></span></p></td>
1923 <td>      Cham. Since 2.16.3
1924 </td>
1925 </tr>
1926 <tr>
1927 <td><p><a name="G-UNICODE-SCRIPT-OL-CHIKI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_OL_CHIKI</code></span></p></td>
1928 <td>  Ol Chiki. Since 2.16.3
1929 </td>
1930 </tr>
1931 <tr>
1932 <td><p><a name="G-UNICODE-SCRIPT-VAI:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_VAI</code></span></p></td>
1933 <td>       Vai. Since 2.16.3
1934 </td>
1935 </tr>
1936 <tr>
1937 <td><p><a name="G-UNICODE-SCRIPT-CARIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_CARIAN</code></span></p></td>
1938 <td>    Carian. Since 2.16.3
1939 </td>
1940 </tr>
1941 <tr>
1942 <td><p><a name="G-UNICODE-SCRIPT-LYCIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LYCIAN</code></span></p></td>
1943 <td>    Lycian. Since 2.16.3
1944 </td>
1945 </tr>
1946 <tr>
1947 <td><p><a name="G-UNICODE-SCRIPT-LYDIAN:CAPS"></a><span class="term"><code class="literal">G_UNICODE_SCRIPT_LYDIAN</code></span></p></td>
1948 <td>    Lydian. Since 2.16.3
1949 </td>
1950 </tr>
1951 </tbody>
1952 </table></div>
1953 </div>
1954 <hr>
1955 <div class="refsect2" title="g_unichar_get_script ()">
1956 <a name="g-unichar-get-script"></a><h3>g_unichar_get_script ()</h3>
1957 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>      g_unichar_get_script                (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> ch);</pre>
1958 <p>
1959 Looks up the <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="type">GUnicodeScript</span></a> for a particular character (as defined 
1960 by Unicode Standard Annex <span class="type">24</span>). No check is made for <em class="parameter"><code>ch</code></em> being a
1961 valid Unicode character; if you pass in invalid character, the
1962 result is undefined.
1963 </p>
1964 <p>
1965 This function is equivalent to <a href="/usr/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html#pango-script-for-unichar"><code class="function">pango_script_for_unichar()</code></a> and the
1966 two are interchangeable.</p>
1967 <div class="variablelist"><table border="0">
1968 <col align="left" valign="top">
1969 <tbody>
1970 <tr>
1971 <td><p><span class="term"><em class="parameter"><code>ch</code></em> :</span></p></td>
1972 <td> a Unicode character
1973 </td>
1974 </tr>
1975 <tr>
1976 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1977 <td> the <a class="link" href="glib-Unicode-Manipulation.html#GUnicodeScript" title="enum GUnicodeScript"><span class="type">GUnicodeScript</span></a> for the character.
1978
1979 </td>
1980 </tr>
1981 </tbody>
1982 </table></div>
1983 <p class="since">Since 2.14</p>
1984 </div>
1985 <hr>
1986 <div class="refsect2" title="g_utf8_next_char()">
1987 <a name="g-utf8-next-char"></a><h3>g_utf8_next_char()</h3>
1988 <pre class="programlisting">#define             g_utf8_next_char(p)</pre>
1989 <p>
1990 Skips to the next character in a UTF-8 string. The string must be
1991 valid; this macro is as fast as possible, and has no error-checking.
1992 You would use this macro to iterate over a string character by
1993 character. The macro returns the start of the next UTF-8 character.
1994 Before using this macro, use <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()"><code class="function">g_utf8_validate()</code></a> to validate strings
1995 that may contain invalid UTF-8.
1996 </p>
1997 <div class="variablelist"><table border="0">
1998 <col align="left" valign="top">
1999 <tbody><tr>
2000 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2001 <td>Pointer to the start of a valid UTF-8 character.
2002 </td>
2003 </tr></tbody>
2004 </table></div>
2005 </div>
2006 <hr>
2007 <div class="refsect2" title="g_utf8_get_char ()">
2008 <a name="g-utf8-get-char"></a><h3>g_utf8_get_char ()</h3>
2009 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>            g_utf8_get_char                     (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);</pre>
2010 <p>
2011 Converts a sequence of bytes encoded as UTF-8 to a Unicode character.
2012 If <em class="parameter"><code>p</code></em> does not point to a valid UTF-8 encoded character, results are
2013 undefined. If you are not sure that the bytes are complete
2014 valid Unicode characters, you should use <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-get-char-validated" title="g_utf8_get_char_validated ()"><code class="function">g_utf8_get_char_validated()</code></a>
2015 instead.</p>
2016 <div class="variablelist"><table border="0">
2017 <col align="left" valign="top">
2018 <tbody>
2019 <tr>
2020 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2021 <td> a pointer to Unicode character encoded as UTF-8
2022 </td>
2023 </tr>
2024 <tr>
2025 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2026 <td> the resulting character
2027 </td>
2028 </tr>
2029 </tbody>
2030 </table></div>
2031 </div>
2032 <hr>
2033 <div class="refsect2" title="g_utf8_get_char_validated ()">
2034 <a name="g-utf8-get-char-validated"></a><h3>g_utf8_get_char_validated ()</h3>
2035 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a>            g_utf8_get_char_validated           (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
2036                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max_len);</pre>
2037 <p>
2038 Convert a sequence of bytes encoded as UTF-8 to a Unicode character.
2039 This function checks for incomplete characters, for invalid characters
2040 such as characters that are out of the range of Unicode, and for
2041 overlong encodings of valid characters.</p>
2042 <div class="variablelist"><table border="0">
2043 <col align="left" valign="top">
2044 <tbody>
2045 <tr>
2046 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2047 <td> a pointer to Unicode character encoded as UTF-8
2048 </td>
2049 </tr>
2050 <tr>
2051 <td><p><span class="term"><em class="parameter"><code>max_len</code></em> :</span></p></td>
2052 <td> the maximum number of bytes to read, or -1, for no maximum or
2053           if <em class="parameter"><code>p</code></em> is nul-terminated
2054 </td>
2055 </tr>
2056 <tr>
2057 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2058 <td> the resulting character. If <em class="parameter"><code>p</code></em> points to a partial
2059    sequence at the end of a string that could begin a valid 
2060    character (or if <em class="parameter"><code>max_len</code></em> is zero), returns (gunichar)-2; 
2061    otherwise, if <em class="parameter"><code>p</code></em> does not point to a valid UTF-8 encoded 
2062    Unicode character, returns (gunichar)-1.
2063 </td>
2064 </tr>
2065 </tbody>
2066 </table></div>
2067 </div>
2068 <hr>
2069 <div class="refsect2" title="g_utf8_offset_to_pointer ()">
2070 <a name="g-utf8-offset-to-pointer"></a><h3>g_utf8_offset_to_pointer ()</h3>
2071 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              g_utf8_offset_to_pointer            (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2072                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> offset);</pre>
2073 <p>
2074 Converts from an integer character offset to a pointer to a position
2075 within the string.
2076 </p>
2077 <p>
2078 Since 2.10, this function allows to pass a negative <em class="parameter"><code>offset</code></em> to
2079 step backwards. It is usually worth stepping backwards from the end
2080 instead of forwards if <em class="parameter"><code>offset</code></em> is in the last fourth of the string,
2081 since moving forward is about 3 times faster than moving backward.
2082 </p>
2083 <p>
2084 </p>
2085 <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
2086 <h3 class="title">Note</h3>
2087 <p>
2088 This function doesn't abort when reaching the end of <em class="parameter"><code>str</code></em>. Therefore
2089 you should be sure that <em class="parameter"><code>offset</code></em> is within string boundaries before
2090 calling that function. Call <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-strlen" title="g_utf8_strlen ()"><code class="function">g_utf8_strlen()</code></a> when unsure.
2091 </p>
2092 <p>
2093 This limitation exists as this function is called frequently during
2094 text rendering and therefore has to be as fast as possible.
2095 </p>
2096 </div>
2097 <div class="variablelist"><table border="0">
2098 <col align="left" valign="top">
2099 <tbody>
2100 <tr>
2101 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2102 <td> a UTF-8 encoded string
2103 </td>
2104 </tr>
2105 <tr>
2106 <td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
2107 <td> a character offset within <em class="parameter"><code>str</code></em>
2108 </td>
2109 </tr>
2110 <tr>
2111 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2112 <td> the resulting pointer
2113 </td>
2114 </tr>
2115 </tbody>
2116 </table></div>
2117 </div>
2118 <hr>
2119 <div class="refsect2" title="g_utf8_pointer_to_offset ()">
2120 <a name="g-utf8-pointer-to-offset"></a><h3>g_utf8_pointer_to_offset ()</h3>
2121 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a>               g_utf8_pointer_to_offset            (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2122                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *pos);</pre>
2123 <p>
2124 Converts from a pointer to position within a string to a integer
2125 character offset.
2126 </p>
2127 <p>
2128 Since 2.10, this function allows <em class="parameter"><code>pos</code></em> to be before <em class="parameter"><code>str</code></em>, and returns
2129 a negative offset in this case.</p>
2130 <div class="variablelist"><table border="0">
2131 <col align="left" valign="top">
2132 <tbody>
2133 <tr>
2134 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2135 <td> a UTF-8 encoded string
2136 </td>
2137 </tr>
2138 <tr>
2139 <td><p><span class="term"><em class="parameter"><code>pos</code></em> :</span></p></td>
2140 <td> a pointer to a position within <em class="parameter"><code>str</code></em>
2141 </td>
2142 </tr>
2143 <tr>
2144 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2145 <td> the resulting character offset
2146 </td>
2147 </tr>
2148 </tbody>
2149 </table></div>
2150 </div>
2151 <hr>
2152 <div class="refsect2" title="g_utf8_prev_char ()">
2153 <a name="g-utf8-prev-char"></a><h3>g_utf8_prev_char ()</h3>
2154 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              g_utf8_prev_char                    (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);</pre>
2155 <p>
2156 Finds the previous UTF-8 character in the string before <em class="parameter"><code>p</code></em>.
2157 </p>
2158 <p>
2159 <em class="parameter"><code>p</code></em> does not have to be at the beginning of a UTF-8 character. No check
2160 is made to see if the character found is actually valid other than
2161 it starts with an appropriate byte. If <em class="parameter"><code>p</code></em> might be the first
2162 character of the string, you must use <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-find-prev-char" title="g_utf8_find_prev_char ()"><code class="function">g_utf8_find_prev_char()</code></a> instead.</p>
2163 <div class="variablelist"><table border="0">
2164 <col align="left" valign="top">
2165 <tbody>
2166 <tr>
2167 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2168 <td> a pointer to a position within a UTF-8 encoded string
2169 </td>
2170 </tr>
2171 <tr>
2172 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2173 <td> a pointer to the found character.
2174 </td>
2175 </tr>
2176 </tbody>
2177 </table></div>
2178 </div>
2179 <hr>
2180 <div class="refsect2" title="g_utf8_find_next_char ()">
2181 <a name="g-utf8-find-next-char"></a><h3>g_utf8_find_next_char ()</h3>
2182 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              g_utf8_find_next_char               (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
2183                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *end);</pre>
2184 <p>
2185 Finds the start of the next UTF-8 character in the string after <em class="parameter"><code>p</code></em>.
2186 </p>
2187 <p>
2188 <em class="parameter"><code>p</code></em> does not have to be at the beginning of a UTF-8 character. No check
2189 is made to see if the character found is actually valid other than
2190 it starts with an appropriate byte.</p>
2191 <div class="variablelist"><table border="0">
2192 <col align="left" valign="top">
2193 <tbody>
2194 <tr>
2195 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2196 <td> a pointer to a position within a UTF-8 encoded string
2197 </td>
2198 </tr>
2199 <tr>
2200 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
2201 <td> a pointer to the byte following the end of the string,
2202 or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to indicate that the string is nul-terminated.
2203 </td>
2204 </tr>
2205 <tr>
2206 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2207 <td> a pointer to the found character or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
2208 </td>
2209 </tr>
2210 </tbody>
2211 </table></div>
2212 </div>
2213 <hr>
2214 <div class="refsect2" title="g_utf8_find_prev_char ()">
2215 <a name="g-utf8-find-prev-char"></a><h3>g_utf8_find_prev_char ()</h3>
2216 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              g_utf8_find_prev_char               (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2217                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p);</pre>
2218 <p>
2219 Given a position <em class="parameter"><code>p</code></em> with a UTF-8 encoded string <em class="parameter"><code>str</code></em>, find the start
2220 of the previous UTF-8 character starting before <em class="parameter"><code>p</code></em>. Returns <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if no
2221 UTF-8 characters are present in <em class="parameter"><code>str</code></em> before <em class="parameter"><code>p</code></em>.
2222 </p>
2223 <p>
2224 <em class="parameter"><code>p</code></em> does not have to be at the beginning of a UTF-8 character. No check
2225 is made to see if the character found is actually valid other than
2226 it starts with an appropriate byte.</p>
2227 <div class="variablelist"><table border="0">
2228 <col align="left" valign="top">
2229 <tbody>
2230 <tr>
2231 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2232 <td> pointer to the beginning of a UTF-8 encoded string
2233 </td>
2234 </tr>
2235 <tr>
2236 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2237 <td> pointer to some position within <em class="parameter"><code>str</code></em>
2238 </td>
2239 </tr>
2240 <tr>
2241 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2242 <td> a pointer to the found character or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2243 </td>
2244 </tr>
2245 </tbody>
2246 </table></div>
2247 </div>
2248 <hr>
2249 <div class="refsect2" title="g_utf8_strlen ()">
2250 <a name="g-utf8-strlen"></a><h3>g_utf8_strlen ()</h3>
2251 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a>               g_utf8_strlen                       (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
2252                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max);</pre>
2253 <p>
2254 Computes the length of the string in characters, not including
2255 the terminating nul character.</p>
2256 <div class="variablelist"><table border="0">
2257 <col align="left" valign="top">
2258 <tbody>
2259 <tr>
2260 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2261 <td> pointer to the start of a UTF-8 encoded string
2262 </td>
2263 </tr>
2264 <tr>
2265 <td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
2266 <td> the maximum number of bytes to examine. If <em class="parameter"><code>max</code></em>
2267       is less than 0, then the string is assumed to be
2268       nul-terminated. If <em class="parameter"><code>max</code></em> is 0, <em class="parameter"><code>p</code></em> will not be examined and
2269       may be <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2270 </td>
2271 </tr>
2272 <tr>
2273 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2274 <td> the length of the string in characters
2275 </td>
2276 </tr>
2277 </tbody>
2278 </table></div>
2279 </div>
2280 <hr>
2281 <div class="refsect2" title="g_utf8_strncpy ()">
2282 <a name="g-utf8-strncpy"></a><h3>g_utf8_strncpy ()</h3>
2283 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              g_utf8_strncpy                      (<a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *dest,
2284                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *src,
2285                                                          <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a> n);</pre>
2286 <p>
2287 Like the standard C <code class="function">strncpy()</code> function, but 
2288 copies a given number of characters instead of a given number of 
2289 bytes. The <em class="parameter"><code>src</code></em> string must be valid UTF-8 encoded text. 
2290 (Use <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()"><code class="function">g_utf8_validate()</code></a> on all text before trying to use UTF-8 
2291 utility functions with it.)</p>
2292 <div class="variablelist"><table border="0">
2293 <col align="left" valign="top">
2294 <tbody>
2295 <tr>
2296 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
2297 <td> buffer to fill with characters from <em class="parameter"><code>src</code></em>
2298 </td>
2299 </tr>
2300 <tr>
2301 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
2302 <td> UTF-8 encoded string
2303 </td>
2304 </tr>
2305 <tr>
2306 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
2307 <td> character count
2308 </td>
2309 </tr>
2310 <tr>
2311 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2312 <td> <em class="parameter"><code>dest</code></em>
2313 </td>
2314 </tr>
2315 </tbody>
2316 </table></div>
2317 </div>
2318 <hr>
2319 <div class="refsect2" title="g_utf8_strchr ()">
2320 <a name="g-utf8-strchr"></a><h3>g_utf8_strchr ()</h3>
2321 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              g_utf8_strchr                       (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
2322                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
2323                                                          <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
2324 <p>
2325 Finds the leftmost occurrence of the given Unicode character
2326 in a UTF-8 encoded string, while limiting the search to <em class="parameter"><code>len</code></em> bytes.
2327 If <em class="parameter"><code>len</code></em> is -1, allow unbounded search.</p>
2328 <div class="variablelist"><table border="0">
2329 <col align="left" valign="top">
2330 <tbody>
2331 <tr>
2332 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2333 <td> a nul-terminated UTF-8 encoded string
2334 </td>
2335 </tr>
2336 <tr>
2337 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2338 <td> the maximum length of <em class="parameter"><code>p</code></em>
2339 </td>
2340 </tr>
2341 <tr>
2342 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
2343 <td> a Unicode character
2344 </td>
2345 </tr>
2346 <tr>
2347 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2348 <td> <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the string does not contain the character, 
2349   otherwise, a pointer to the start of the leftmost occurrence of 
2350   the character in the string.
2351 </td>
2352 </tr>
2353 </tbody>
2354 </table></div>
2355 </div>
2356 <hr>
2357 <div class="refsect2" title="g_utf8_strrchr ()">
2358 <a name="g-utf8-strrchr"></a><h3>g_utf8_strrchr ()</h3>
2359 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              g_utf8_strrchr                      (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *p,
2360                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
2361                                                          <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c);</pre>
2362 <p>
2363 Find the rightmost occurrence of the given Unicode character
2364 in a UTF-8 encoded string, while limiting the search to <em class="parameter"><code>len</code></em> bytes.
2365 If <em class="parameter"><code>len</code></em> is -1, allow unbounded search.</p>
2366 <div class="variablelist"><table border="0">
2367 <col align="left" valign="top">
2368 <tbody>
2369 <tr>
2370 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
2371 <td> a nul-terminated UTF-8 encoded string
2372 </td>
2373 </tr>
2374 <tr>
2375 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2376 <td> the maximum length of <em class="parameter"><code>p</code></em>
2377 </td>
2378 </tr>
2379 <tr>
2380 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
2381 <td> a Unicode character
2382 </td>
2383 </tr>
2384 <tr>
2385 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2386 <td> <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the string does not contain the character, 
2387   otherwise, a pointer to the start of the rightmost occurrence of the 
2388   character in the string.
2389 </td>
2390 </tr>
2391 </tbody>
2392 </table></div>
2393 </div>
2394 <hr>
2395 <div class="refsect2" title="g_utf8_strreverse ()">
2396 <a name="g-utf8-strreverse"></a><h3>g_utf8_strreverse ()</h3>
2397 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              g_utf8_strreverse                   (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2398                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2399 <p>
2400 Reverses a UTF-8 string. <em class="parameter"><code>str</code></em> must be valid UTF-8 encoded text. 
2401 (Use <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()"><code class="function">g_utf8_validate()</code></a> on all text before trying to use UTF-8 
2402 utility functions with it.)
2403 </p>
2404 <p>
2405 This function is intended for programmatic uses of reversed strings.
2406 It pays no attention to decomposed characters, combining marks, byte 
2407 order marks, directional indicators (LRM, LRO, etc) and similar 
2408 characters which might need special handling when reversing a string 
2409 for display purposes.
2410 </p>
2411 <p>
2412 Note that unlike <a class="link" href="glib-String-Utility-Functions.html#g-strreverse" title="g_strreverse ()"><code class="function">g_strreverse()</code></a>, this function returns
2413 newly-allocated memory, which should be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a> when
2414 no longer needed.</p>
2415 <div class="variablelist"><table border="0">
2416 <col align="left" valign="top">
2417 <tbody>
2418 <tr>
2419 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2420 <td> a UTF-8 encoded string
2421 </td>
2422 </tr>
2423 <tr>
2424 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2425 <td> the maximum length of <em class="parameter"><code>str</code></em> to use, in bytes. If <em class="parameter"><code>len</code></em> &lt; 0,
2426       then the string is nul-terminated.
2427 </td>
2428 </tr>
2429 <tr>
2430 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2431 <td> a newly-allocated string which is the reverse of <em class="parameter"><code>str</code></em>.
2432
2433 </td>
2434 </tr>
2435 </tbody>
2436 </table></div>
2437 <p class="since">Since 2.2</p>
2438 </div>
2439 <hr>
2440 <div class="refsect2" title="g_utf8_validate ()">
2441 <a name="g-utf8-validate"></a><h3>g_utf8_validate ()</h3>
2442 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_utf8_validate                     (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2443                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> max_len,
2444                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> **end);</pre>
2445 <p>
2446 Validates UTF-8 encoded text. <em class="parameter"><code>str</code></em> is the text to validate;
2447 if <em class="parameter"><code>str</code></em> is nul-terminated, then <em class="parameter"><code>max_len</code></em> can be -1, otherwise
2448 <em class="parameter"><code>max_len</code></em> should be the number of bytes to validate.
2449 If <em class="parameter"><code>end</code></em> is non-<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then the end of the valid range
2450 will be stored there (i.e. the start of the first invalid 
2451 character if some bytes were invalid, or the end of the text 
2452 being validated otherwise).
2453 </p>
2454 <p>
2455 Note that <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()"><code class="function">g_utf8_validate()</code></a> returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> if <em class="parameter"><code>max_len</code></em> is 
2456 positive and NUL is met before <em class="parameter"><code>max_len</code></em> bytes have been read.
2457 </p>
2458 <p>
2459 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if all of <em class="parameter"><code>str</code></em> was valid. Many GLib and GTK+
2460 routines <span class="emphasis"><em>require</em></span> valid UTF-8 as input;
2461 so data read from a file or the network should be checked
2462 with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-validate" title="g_utf8_validate ()"><code class="function">g_utf8_validate()</code></a> before doing anything else with it.</p>
2463 <div class="variablelist"><table border="0">
2464 <col align="left" valign="top">
2465 <tbody>
2466 <tr>
2467 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2468 <td> a pointer to character data
2469 </td>
2470 </tr>
2471 <tr>
2472 <td><p><span class="term"><em class="parameter"><code>max_len</code></em> :</span></p></td>
2473 <td> max bytes to validate, or -1 to go until NUL
2474 </td>
2475 </tr>
2476 <tr>
2477 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
2478 <td> return location for end of valid data
2479 </td>
2480 </tr>
2481 <tr>
2482 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2483 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the text was valid UTF-8
2484 </td>
2485 </tr>
2486 </tbody>
2487 </table></div>
2488 </div>
2489 <hr>
2490 <div class="refsect2" title="g_utf8_strup ()">
2491 <a name="g-utf8-strup"></a><h3>g_utf8_strup ()</h3>
2492 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             g_utf8_strup                        (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2493                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2494 <p>
2495 Converts all Unicode characters in the string that have a case
2496 to uppercase. The exact manner that this is done depends
2497 on the current locale, and may result in the number of
2498 characters in the string increasing. (For instance, the
2499 German ess-zet will be changed to SS.)</p>
2500 <div class="variablelist"><table border="0">
2501 <col align="left" valign="top">
2502 <tbody>
2503 <tr>
2504 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2505 <td> a UTF-8 encoded string
2506 </td>
2507 </tr>
2508 <tr>
2509 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2510 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2511 </td>
2512 </tr>
2513 <tr>
2514 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2515 <td> a newly allocated string, with all characters
2516    converted to uppercase.  
2517 </td>
2518 </tr>
2519 </tbody>
2520 </table></div>
2521 </div>
2522 <hr>
2523 <div class="refsect2" title="g_utf8_strdown ()">
2524 <a name="g-utf8-strdown"></a><h3>g_utf8_strdown ()</h3>
2525 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             g_utf8_strdown                      (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2526                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2527 <p>
2528 Converts all Unicode characters in the string that have a case
2529 to lowercase. The exact manner that this is done depends
2530 on the current locale, and may result in the number of
2531 characters in the string changing.</p>
2532 <div class="variablelist"><table border="0">
2533 <col align="left" valign="top">
2534 <tbody>
2535 <tr>
2536 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2537 <td> a UTF-8 encoded string
2538 </td>
2539 </tr>
2540 <tr>
2541 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2542 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2543 </td>
2544 </tr>
2545 <tr>
2546 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2547 <td> a newly allocated string, with all characters
2548    converted to lowercase.  
2549 </td>
2550 </tr>
2551 </tbody>
2552 </table></div>
2553 </div>
2554 <hr>
2555 <div class="refsect2" title="g_utf8_casefold ()">
2556 <a name="g-utf8-casefold"></a><h3>g_utf8_casefold ()</h3>
2557 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             g_utf8_casefold                     (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2558                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2559 <p>
2560 Converts a string into a form that is independent of case. The
2561 result will not correspond to any particular case, but can be
2562 compared for equality or ordered with the results of calling
2563 <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-casefold" title="g_utf8_casefold ()"><code class="function">g_utf8_casefold()</code></a> on other strings.
2564 </p>
2565 <p>
2566 Note that calling <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-casefold" title="g_utf8_casefold ()"><code class="function">g_utf8_casefold()</code></a> followed by <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate" title="g_utf8_collate ()"><code class="function">g_utf8_collate()</code></a> is
2567 only an approximation to the correct linguistic case insensitive
2568 ordering, though it is a fairly good one. Getting this exactly
2569 right would require a more sophisticated collation function that
2570 takes case sensitivity into account. GLib does not currently
2571 provide such a function.</p>
2572 <div class="variablelist"><table border="0">
2573 <col align="left" valign="top">
2574 <tbody>
2575 <tr>
2576 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2577 <td> a UTF-8 encoded string
2578 </td>
2579 </tr>
2580 <tr>
2581 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2582 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2583 </td>
2584 </tr>
2585 <tr>
2586 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2587 <td> a newly allocated string, that is a
2588   case independent form of <em class="parameter"><code>str</code></em>.
2589 </td>
2590 </tr>
2591 </tbody>
2592 </table></div>
2593 </div>
2594 <hr>
2595 <div class="refsect2" title="g_utf8_normalize ()">
2596 <a name="g-utf8-normalize"></a><h3>g_utf8_normalize ()</h3>
2597 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             g_utf8_normalize                    (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2598                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len,
2599                                                          <a class="link" href="glib-Unicode-Manipulation.html#GNormalizeMode" title="enum GNormalizeMode"><span class="returnvalue">GNormalizeMode</span></a> mode);</pre>
2600 <p>
2601 Converts a string into canonical form, standardizing
2602 such issues as whether a character with an accent
2603 is represented as a base character and combining
2604 accent or as a single precomposed character. The
2605 string has to be valid UTF-8, otherwise <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> is
2606 returned. You should generally call <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-normalize" title="g_utf8_normalize ()"><code class="function">g_utf8_normalize()</code></a>
2607 before comparing two Unicode strings.
2608 </p>
2609 <p>
2610 The normalization mode <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a> only
2611 standardizes differences that do not affect the
2612 text content, such as the above-mentioned accent
2613 representation. <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a> also standardizes
2614 the "compatibility" characters in Unicode, such
2615 as SUPERSCRIPT THREE to the standard forms
2616 (in this case DIGIT THREE). Formatting information
2617 may be lost but for most text operations such
2618 characters should be considered the same.
2619 </p>
2620 <p>
2621 <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT-COMPOSE:CAPS"><code class="literal">G_NORMALIZE_DEFAULT_COMPOSE</code></a> and <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL-COMPOSE:CAPS"><code class="literal">G_NORMALIZE_ALL_COMPOSE</code></a>
2622 are like <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a> and <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a>,
2623 but returned a result with composed forms rather
2624 than a maximally decomposed form. This is often
2625 useful if you intend to convert the string to
2626 a legacy encoding or pass it to a system with
2627 less capable Unicode handling.</p>
2628 <div class="variablelist"><table border="0">
2629 <col align="left" valign="top">
2630 <tbody>
2631 <tr>
2632 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2633 <td> a UTF-8 encoded string.
2634 </td>
2635 </tr>
2636 <tr>
2637 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2638 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2639 </td>
2640 </tr>
2641 <tr>
2642 <td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
2643 <td> the type of normalization to perform.
2644 </td>
2645 </tr>
2646 <tr>
2647 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2648 <td> a newly allocated string, that is the
2649   normalized form of <em class="parameter"><code>str</code></em>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>str</code></em> is not
2650   valid UTF-8.
2651 </td>
2652 </tr>
2653 </tbody>
2654 </table></div>
2655 </div>
2656 <hr>
2657 <div class="refsect2" title="enum GNormalizeMode">
2658 <a name="GNormalizeMode"></a><h3>enum GNormalizeMode</h3>
2659 <pre class="programlisting">typedef enum {
2660   G_NORMALIZE_DEFAULT,
2661   G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT,
2662   G_NORMALIZE_DEFAULT_COMPOSE,
2663   G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE,
2664   G_NORMALIZE_ALL,
2665   G_NORMALIZE_NFKD = G_NORMALIZE_ALL,
2666   G_NORMALIZE_ALL_COMPOSE,
2667   G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE
2668 } GNormalizeMode;
2669 </pre>
2670 <p>
2671 Defines how a Unicode string is transformed in a canonical
2672 form, standardizing such issues as whether a character with an accent is
2673 represented as a base character and combining accent or as a single precomposed
2674 character. Unicode strings should generally be normalized before comparing them.
2675 </p>
2676 <div class="variablelist"><table border="0">
2677 <col align="left" valign="top">
2678 <tbody>
2679 <tr>
2680 <td><p><a name="G-NORMALIZE-DEFAULT:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_DEFAULT</code></span></p></td>
2681 <td>standardize differences that do not affect the
2682   text content, such as the above-mentioned accent representation.
2683 </td>
2684 </tr>
2685 <tr>
2686 <td><p><a name="G-NORMALIZE-NFD:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_NFD</code></span></p></td>
2687 <td>another name for <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a>.
2688 </td>
2689 </tr>
2690 <tr>
2691 <td><p><a name="G-NORMALIZE-DEFAULT-COMPOSE:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_DEFAULT_COMPOSE</code></span></p></td>
2692 <td>like <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a>, but with composed
2693   forms rather than a maximally decomposed form.
2694 </td>
2695 </tr>
2696 <tr>
2697 <td><p><a name="G-NORMALIZE-NFC:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_NFC</code></span></p></td>
2698 <td>another name for <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT-COMPOSE:CAPS"><code class="literal">G_NORMALIZE_DEFAULT_COMPOSE</code></a>.
2699 </td>
2700 </tr>
2701 <tr>
2702 <td><p><a name="G-NORMALIZE-ALL:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_ALL</code></span></p></td>
2703 <td>beyond <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-DEFAULT:CAPS"><code class="literal">G_NORMALIZE_DEFAULT</code></a> also standardize the 
2704   "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the
2705   standard forms (in this case DIGIT THREE). Formatting information may be
2706   lost but for most text operations such characters should be considered the
2707   same.
2708 </td>
2709 </tr>
2710 <tr>
2711 <td><p><a name="G-NORMALIZE-NFKD:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_NFKD</code></span></p></td>
2712 <td>another name for <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a>.
2713 </td>
2714 </tr>
2715 <tr>
2716 <td><p><a name="G-NORMALIZE-ALL-COMPOSE:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_ALL_COMPOSE</code></span></p></td>
2717 <td>like <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL:CAPS"><code class="literal">G_NORMALIZE_ALL</code></a>, but with composed
2718   forms rather than a maximally decomposed form.
2719 </td>
2720 </tr>
2721 <tr>
2722 <td><p><a name="G-NORMALIZE-NFKC:CAPS"></a><span class="term"><code class="literal">G_NORMALIZE_NFKC</code></span></p></td>
2723 <td>another name for <a class="link" href="glib-Unicode-Manipulation.html#G-NORMALIZE-ALL-COMPOSE:CAPS"><code class="literal">G_NORMALIZE_ALL_COMPOSE</code></a>.
2724 </td>
2725 </tr>
2726 </tbody>
2727 </table></div>
2728 </div>
2729 <hr>
2730 <div class="refsect2" title="g_utf8_collate ()">
2731 <a name="g-utf8-collate"></a><h3>g_utf8_collate ()</h3>
2732 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                g_utf8_collate                      (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str1,
2733                                                          const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str2);</pre>
2734 <p>
2735 Compares two strings for ordering using the linguistically
2736 correct rules for the <a class="link" href="glib-running.html#setlocale" title="Locale">current locale</a>. 
2737 When sorting a large number of strings, it will be significantly 
2738 faster to obtain collation keys with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate-key" title="g_utf8_collate_key ()"><code class="function">g_utf8_collate_key()</code></a> and 
2739 compare the keys with <code class="function">strcmp()</code> when sorting instead of sorting 
2740 the original strings.</p>
2741 <div class="variablelist"><table border="0">
2742 <col align="left" valign="top">
2743 <tbody>
2744 <tr>
2745 <td><p><span class="term"><em class="parameter"><code>str1</code></em> :</span></p></td>
2746 <td> a UTF-8 encoded string
2747 </td>
2748 </tr>
2749 <tr>
2750 <td><p><span class="term"><em class="parameter"><code>str2</code></em> :</span></p></td>
2751 <td> a UTF-8 encoded string
2752 </td>
2753 </tr>
2754 <tr>
2755 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2756 <td> &lt; 0 if <em class="parameter"><code>str1</code></em> compares before <em class="parameter"><code>str2</code></em>, 
2757   0 if they compare equal, &gt; 0 if <em class="parameter"><code>str1</code></em> compares after <em class="parameter"><code>str2</code></em>.
2758 </td>
2759 </tr>
2760 </tbody>
2761 </table></div>
2762 </div>
2763 <hr>
2764 <div class="refsect2" title="g_utf8_collate_key ()">
2765 <a name="g-utf8-collate-key"></a><h3>g_utf8_collate_key ()</h3>
2766 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             g_utf8_collate_key                  (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2767                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2768 <p>
2769 Converts a string into a collation key that can be compared
2770 with other collation keys produced by the same function using 
2771 <code class="function">strcmp()</code>. 
2772 </p>
2773 <p>
2774 The results of comparing the collation keys of two strings 
2775 with <code class="function">strcmp()</code> will always be the same as comparing the two 
2776 original keys with <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-collate" title="g_utf8_collate ()"><code class="function">g_utf8_collate()</code></a>.
2777 </p>
2778 <p>
2779 Note that this function depends on the 
2780 <a class="link" href="glib-running.html#setlocale" title="Locale">current locale</a>.</p>
2781 <div class="variablelist"><table border="0">
2782 <col align="left" valign="top">
2783 <tbody>
2784 <tr>
2785 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2786 <td> a UTF-8 encoded string.
2787 </td>
2788 </tr>
2789 <tr>
2790 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2791 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2792 </td>
2793 </tr>
2794 <tr>
2795 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2796 <td> a newly allocated string. This string should
2797   be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a> when you are done with it.
2798 </td>
2799 </tr>
2800 </tbody>
2801 </table></div>
2802 </div>
2803 <hr>
2804 <div class="refsect2" title="g_utf8_collate_key_for_filename ()">
2805 <a name="g-utf8-collate-key-for-filename"></a><h3>g_utf8_collate_key_for_filename ()</h3>
2806 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             g_utf8_collate_key_for_filename     (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2807                                                          <a class="link" href="glib-Basic-Types.html#gssize" title="gssize"><span class="returnvalue">gssize</span></a> len);</pre>
2808 <p>
2809 Converts a string into a collation key that can be compared
2810 with other collation keys produced by the same function using <code class="function">strcmp()</code>. 
2811 </p>
2812 <p>
2813 In order to sort filenames correctly, this function treats the dot '.' 
2814 as a special case. Most dictionary orderings seem to consider it
2815 insignificant, thus producing the ordering "event.c" "eventgenerator.c"
2816 "event.h" instead of "event.c" "event.h" "eventgenerator.c". Also, we
2817 would like to treat numbers intelligently so that "file1" "file10" "file5"
2818 is sorted as "file1" "file5" "file10".
2819 </p>
2820 <p>
2821 Note that this function depends on the 
2822 <a class="link" href="glib-running.html#setlocale" title="Locale">current locale</a>.</p>
2823 <div class="variablelist"><table border="0">
2824 <col align="left" valign="top">
2825 <tbody>
2826 <tr>
2827 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2828 <td> a UTF-8 encoded string.
2829 </td>
2830 </tr>
2831 <tr>
2832 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2833 <td> length of <em class="parameter"><code>str</code></em>, in bytes, or -1 if <em class="parameter"><code>str</code></em> is nul-terminated.
2834 </td>
2835 </tr>
2836 <tr>
2837 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2838 <td> a newly allocated string. This string should
2839   be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a> when you are done with it.
2840
2841 </td>
2842 </tr>
2843 </tbody>
2844 </table></div>
2845 <p class="since">Since 2.8</p>
2846 </div>
2847 <hr>
2848 <div class="refsect2" title="g_utf8_to_utf16 ()">
2849 <a name="g-utf8-to-utf16"></a><h3>g_utf8_to_utf16 ()</h3>
2850 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *         g_utf8_to_utf16                     (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2851                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
2852                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
2853                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
2854                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
2855 <p>
2856 Convert a string from UTF-8 to UTF-16. A 0 character will be
2857 added to the result after the converted text.</p>
2858 <div class="variablelist"><table border="0">
2859 <col align="left" valign="top">
2860 <tbody>
2861 <tr>
2862 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2863 <td> a UTF-8 encoded string
2864 </td>
2865 </tr>
2866 <tr>
2867 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2868 <td> the maximum length (number of bytes) of <em class="parameter"><code>str</code></em> to use.
2869       If <em class="parameter"><code>len</code></em> &lt; 0, then the string is nul-terminated.
2870 </td>
2871 </tr>
2872 <tr>
2873 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
2874 <td> location to store number of bytes read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2875              If <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-PARTIAL-INPUT:CAPS"><code class="literal">G_CONVERT_ERROR_PARTIAL_INPUT</code></a> will be
2876              returned in case <em class="parameter"><code>str</code></em> contains a trailing partial
2877              character. If an error occurs then the index of the
2878              invalid input is stored here.
2879 </td>
2880 </tr>
2881 <tr>
2882 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
2883 <td> location to store number of <span class="type">gunichar2</span> written,
2884                 or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2885                 The value stored here does not include the trailing 0.
2886 </td>
2887 </tr>
2888 <tr>
2889 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
2890 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
2891         errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
2892         <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.
2893 </td>
2894 </tr>
2895 <tr>
2896 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2897 <td> a pointer to a newly allocated UTF-16 string.
2898               This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an
2899               error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
2900               <em class="parameter"><code>error</code></em> set.
2901 </td>
2902 </tr>
2903 </tbody>
2904 </table></div>
2905 </div>
2906 <hr>
2907 <div class="refsect2" title="g_utf8_to_ucs4 ()">
2908 <a name="g-utf8-to-ucs4"></a><h3>g_utf8_to_ucs4 ()</h3>
2909 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *          g_utf8_to_ucs4                      (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2910                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
2911                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
2912                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
2913                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
2914 <p>
2915 Convert a string from UTF-8 to a 32-bit fixed width
2916 representation as UCS-4. A trailing 0 will be added to the
2917 string after the converted text.</p>
2918 <div class="variablelist"><table border="0">
2919 <col align="left" valign="top">
2920 <tbody>
2921 <tr>
2922 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2923 <td> a UTF-8 encoded string
2924 </td>
2925 </tr>
2926 <tr>
2927 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2928 <td> the maximum length of <em class="parameter"><code>str</code></em> to use, in bytes. If <em class="parameter"><code>len</code></em> &lt; 0,
2929       then the string is nul-terminated.
2930 </td>
2931 </tr>
2932 <tr>
2933 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
2934 <td> location to store number of bytes read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2935              If <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-PARTIAL-INPUT:CAPS"><code class="literal">G_CONVERT_ERROR_PARTIAL_INPUT</code></a> will be
2936              returned in case <em class="parameter"><code>str</code></em> contains a trailing partial
2937              character. If an error occurs then the index of the
2938              invalid input is stored here.
2939 </td>
2940 </tr>
2941 <tr>
2942 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
2943 <td> location to store number of characters written or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2944                 The value here stored does not include the trailing 0
2945                 character. 
2946 </td>
2947 </tr>
2948 <tr>
2949 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
2950 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
2951         errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
2952         <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.
2953 </td>
2954 </tr>
2955 <tr>
2956 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2957 <td> a pointer to a newly allocated UCS-4 string.
2958               This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an
2959               error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
2960               <em class="parameter"><code>error</code></em> set.
2961 </td>
2962 </tr>
2963 </tbody>
2964 </table></div>
2965 </div>
2966 <hr>
2967 <div class="refsect2" title="g_utf8_to_ucs4_fast ()">
2968 <a name="g-utf8-to-ucs4-fast"></a><h3>g_utf8_to_ucs4_fast ()</h3>
2969 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *          g_utf8_to_ucs4_fast                 (const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *str,
2970                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
2971                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written);</pre>
2972 <p>
2973 Convert a string from UTF-8 to a 32-bit fixed width
2974 representation as UCS-4, assuming valid UTF-8 input.
2975 This function is roughly twice as fast as <a class="link" href="glib-Unicode-Manipulation.html#g-utf8-to-ucs4" title="g_utf8_to_ucs4 ()"><code class="function">g_utf8_to_ucs4()</code></a>
2976 but does no error checking on the input.</p>
2977 <div class="variablelist"><table border="0">
2978 <col align="left" valign="top">
2979 <tbody>
2980 <tr>
2981 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
2982 <td> a UTF-8 encoded string
2983 </td>
2984 </tr>
2985 <tr>
2986 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
2987 <td> the maximum length of <em class="parameter"><code>str</code></em> to use, in bytes. If <em class="parameter"><code>len</code></em> &lt; 0,
2988       then the string is nul-terminated.
2989 </td>
2990 </tr>
2991 <tr>
2992 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
2993 <td> location to store the number of characters in the
2994                 result, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2995 </td>
2996 </tr>
2997 <tr>
2998 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2999 <td> a pointer to a newly allocated UCS-4 string.
3000               This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>.
3001 </td>
3002 </tr>
3003 </tbody>
3004 </table></div>
3005 </div>
3006 <hr>
3007 <div class="refsect2" title="g_utf16_to_ucs4 ()">
3008 <a name="g-utf16-to-ucs4"></a><h3>g_utf16_to_ucs4 ()</h3>
3009 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *          g_utf16_to_ucs4                     (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *str,
3010                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
3011                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
3012                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
3013                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
3014 <p>
3015 Convert a string from UTF-16 to UCS-4. The result will be
3016 nul-terminated.</p>
3017 <div class="variablelist"><table border="0">
3018 <col align="left" valign="top">
3019 <tbody>
3020 <tr>
3021 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
3022 <td> a UTF-16 encoded string
3023 </td>
3024 </tr>
3025 <tr>
3026 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
3027 <td> the maximum length (number of <span class="type">gunichar2</span>) of <em class="parameter"><code>str</code></em> to use. 
3028       If <em class="parameter"><code>len</code></em> &lt; 0, then the string is nul-terminated.
3029 </td>
3030 </tr>
3031 <tr>
3032 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
3033 <td> location to store number of words read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
3034              If <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-PARTIAL-INPUT:CAPS"><code class="literal">G_CONVERT_ERROR_PARTIAL_INPUT</code></a> will be
3035              returned in case <em class="parameter"><code>str</code></em> contains a trailing partial
3036              character. If an error occurs then the index of the
3037              invalid input is stored here.
3038 </td>
3039 </tr>
3040 <tr>
3041 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
3042 <td> location to store number of characters written, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
3043                 The value stored here does not include the trailing
3044                 0 character.
3045 </td>
3046 </tr>
3047 <tr>
3048 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
3049 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
3050         errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
3051         <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.
3052 </td>
3053 </tr>
3054 <tr>
3055 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3056 <td> a pointer to a newly allocated UCS-4 string.
3057               This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an
3058               error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
3059               <em class="parameter"><code>error</code></em> set.
3060 </td>
3061 </tr>
3062 </tbody>
3063 </table></div>
3064 </div>
3065 <hr>
3066 <div class="refsect2" title="g_utf16_to_utf8 ()">
3067 <a name="g-utf16-to-utf8"></a><h3>g_utf16_to_utf8 ()</h3>
3068 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              g_utf16_to_utf8                     (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *str,
3069                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
3070                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
3071                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
3072                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
3073 <p>
3074 Convert a string from UTF-16 to UTF-8. The result will be
3075 terminated with a 0 byte.
3076 </p>
3077 <p>
3078 Note that the input is expected to be already in native endianness,
3079 an initial byte-order-mark character is not handled specially.
3080 <a class="link" href="glib-Character-Set-Conversion.html#g-convert" title="g_convert ()"><code class="function">g_convert()</code></a> can be used to convert a byte buffer of UTF-16 data of
3081 ambiguous endianess.
3082 </p>
3083 <p>
3084 Further note that this function does not validate the result
3085 string; it may e.g. include embedded NUL characters. The only
3086 validation done by this function is to ensure that the input can
3087 be correctly interpreted as UTF-16, i.e. it doesn't contain
3088 things unpaired surrogates.</p>
3089 <div class="variablelist"><table border="0">
3090 <col align="left" valign="top">
3091 <tbody>
3092 <tr>
3093 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
3094 <td> a UTF-16 encoded string
3095 </td>
3096 </tr>
3097 <tr>
3098 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
3099 <td> the maximum length (number of <span class="type">gunichar2</span>) of <em class="parameter"><code>str</code></em> to use. 
3100       If <em class="parameter"><code>len</code></em> &lt; 0, then the string is nul-terminated.
3101 </td>
3102 </tr>
3103 <tr>
3104 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
3105 <td> location to store number of words read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
3106              If <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-PARTIAL-INPUT:CAPS"><code class="literal">G_CONVERT_ERROR_PARTIAL_INPUT</code></a> will be
3107              returned in case <em class="parameter"><code>str</code></em> contains a trailing partial
3108              character. If an error occurs then the index of the
3109              invalid input is stored here.
3110 </td>
3111 </tr>
3112 <tr>
3113 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
3114 <td> location to store number of bytes written, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
3115                 The value stored here does not include the trailing
3116                 0 byte.
3117 </td>
3118 </tr>
3119 <tr>
3120 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
3121 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
3122         errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
3123         <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.
3124 </td>
3125 </tr>
3126 <tr>
3127 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3128 <td> a pointer to a newly allocated UTF-8 string.
3129               This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an
3130               error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
3131               <em class="parameter"><code>error</code></em> set.
3132 </td>
3133 </tr>
3134 </tbody>
3135 </table></div>
3136 </div>
3137 <hr>
3138 <div class="refsect2" title="g_ucs4_to_utf16 ()">
3139 <a name="g-ucs4-to-utf16"></a><h3>g_ucs4_to_utf16 ()</h3>
3140 <pre class="programlisting"><a class="link" href="glib-Unicode-Manipulation.html#gunichar2" title="gunichar2"><span class="returnvalue">gunichar2</span></a> *         g_ucs4_to_utf16                     (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *str,
3141                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
3142                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
3143                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
3144                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
3145 <p>
3146 Convert a string from UCS-4 to UTF-16. A 0 character will be
3147 added to the result after the converted text.</p>
3148 <div class="variablelist"><table border="0">
3149 <col align="left" valign="top">
3150 <tbody>
3151 <tr>
3152 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
3153 <td> a UCS-4 encoded string
3154 </td>
3155 </tr>
3156 <tr>
3157 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
3158 <td> the maximum length (number of characters) of <em class="parameter"><code>str</code></em> to use. 
3159       If <em class="parameter"><code>len</code></em> &lt; 0, then the string is nul-terminated.
3160 </td>
3161 </tr>
3162 <tr>
3163 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
3164 <td> location to store number of bytes read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
3165              If an error occurs then the index of the invalid input
3166              is stored here.
3167 </td>
3168 </tr>
3169 <tr>
3170 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
3171 <td> location to store number of <span class="type">gunichar2</span> 
3172                 written, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. The value stored here does not 
3173                 include the trailing 0.
3174 </td>
3175 </tr>
3176 <tr>
3177 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
3178 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
3179         errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
3180         <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.
3181 </td>
3182 </tr>
3183 <tr>
3184 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3185 <td> a pointer to a newly allocated UTF-16 string.
3186               This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an
3187               error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
3188               <em class="parameter"><code>error</code></em> set.
3189 </td>
3190 </tr>
3191 </tbody>
3192 </table></div>
3193 </div>
3194 <hr>
3195 <div class="refsect2" title="g_ucs4_to_utf8 ()">
3196 <a name="g-ucs4-to-utf8"></a><h3>g_ucs4_to_utf8 ()</h3>
3197 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>*              g_ucs4_to_utf8                      (const <a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> *str,
3198                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> len,
3199                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_read,
3200                                                          <a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="returnvalue">glong</span></a> *items_written,
3201                                                          <a class="link" href="glib-Error-Reporting.html#GError" title="GError"><span class="returnvalue">GError</span></a> **error);</pre>
3202 <p>
3203 Convert a string from a 32-bit fixed width representation as UCS-4.
3204 to UTF-8. The result will be terminated with a 0 byte.</p>
3205 <div class="variablelist"><table border="0">
3206 <col align="left" valign="top">
3207 <tbody>
3208 <tr>
3209 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
3210 <td> a UCS-4 encoded string
3211 </td>
3212 </tr>
3213 <tr>
3214 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
3215 <td> the maximum length (number of characters) of <em class="parameter"><code>str</code></em> to use. 
3216       If <em class="parameter"><code>len</code></em> &lt; 0, then the string is nul-terminated.
3217 </td>
3218 </tr>
3219 <tr>
3220 <td><p><span class="term"><em class="parameter"><code>items_read</code></em> :</span></p></td>
3221 <td> location to store number of characters read, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
3222 </td>
3223 </tr>
3224 <tr>
3225 <td><p><span class="term"><em class="parameter"><code>items_written</code></em> :</span></p></td>
3226 <td> location to store number of bytes written or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
3227                 The value here stored does not include the trailing 0
3228                 byte. 
3229 </td>
3230 </tr>
3231 <tr>
3232 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
3233 <td> location to store the error occuring, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to ignore
3234         errors. Any of the errors in <a class="link" href="glib-Character-Set-Conversion.html#GConvertError" title="enum GConvertError"><span class="type">GConvertError</span></a> other than
3235         <a class="link" href="glib-Character-Set-Conversion.html#G-CONVERT-ERROR-NO-CONVERSION:CAPS"><code class="literal">G_CONVERT_ERROR_NO_CONVERSION</code></a> may occur.
3236 </td>
3237 </tr>
3238 <tr>
3239 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3240 <td> a pointer to a newly allocated UTF-8 string.
3241               This value must be freed with <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. If an
3242               error occurs, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will be returned and
3243               <em class="parameter"><code>error</code></em> set. In that case, <em class="parameter"><code>items_read</code></em> will be
3244               set to the position of the first invalid input 
3245               character.
3246 </td>
3247 </tr>
3248 </tbody>
3249 </table></div>
3250 </div>
3251 <hr>
3252 <div class="refsect2" title="g_unichar_to_utf8 ()">
3253 <a name="g-unichar-to-utf8"></a><h3>g_unichar_to_utf8 ()</h3>
3254 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                g_unichar_to_utf8                   (<a class="link" href="glib-Unicode-Manipulation.html#gunichar" title="gunichar"><span class="returnvalue">gunichar</span></a> c,
3255                                                          <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *outbuf);</pre>
3256 <p>
3257 Converts a single character to UTF-8.</p>
3258 <div class="variablelist"><table border="0">
3259 <col align="left" valign="top">
3260 <tbody>
3261 <tr>
3262 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
3263 <td> a Unicode character code
3264 </td>
3265 </tr>
3266 <tr>
3267 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
3268 <td> output buffer, must have at least 6 bytes of space.
3269       If <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, the length will be computed and returned
3270       and nothing will be written to <em class="parameter"><code>outbuf</code></em>.
3271 </td>
3272 </tr>
3273 <tr>
3274 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3275 <td> number of bytes written
3276 </td>
3277 </tr>
3278 </tbody>
3279 </table></div>
3280 </div>
3281 </div>
3282 <div class="refsect1" title="See Also">
3283 <a name="glib-Unicode-Manipulation.see-also"></a><h2>See Also</h2>
3284 <p>
3285 </p>
3286 <div class="variablelist"><table border="0">
3287 <col align="left" valign="top">
3288 <tbody><tr>
3289 <td><p><span class="term"><a class="link" href="glib-Character-Set-Conversion.html#g-locale-to-utf8" title="g_locale_to_utf8 ()"><code class="function">g_locale_to_utf8()</code></a>, <a class="link" href="glib-Character-Set-Conversion.html#g-locale-from-utf8" title="g_locale_from_utf8 ()"><code class="function">g_locale_from_utf8()</code></a></span></p></td>
3290 <td><p>
3291 Convenience functions for converting between UTF-8 and the locale encoding.
3292 </p></td>
3293 </tr></tbody>
3294 </table></div>
3295 <p>
3296 </p>
3297 </div>
3298 <div class="footnotes">
3299 <br><hr width="100" align="left">
3300 <div class="footnote"><em class="firstterm"><sup>[<a name="ftn.utf16_surrogate_pairs" href="#utf16_surrogate_pairs" class="firstterm">3</a>] </sup>surrogate pairs</em></div>
3301 </div>
3302 </div>
3303 <div class="footer">
3304 <hr>
3305           Generated by GTK-Doc V1.13</div>
3306 </body>
3307 </html>