gunicode.inc 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. // included by glib2.pas
  2. {$IFDEF read_forward_definitions}
  3. {$ENDIF read_forward_definitions}
  4. //------------------------------------------------------------------------------
  5. {$IFDEF read_interface_types}
  6. Pgunichar = ^gunichar;
  7. gunichar = guint32;
  8. Pgunichar2 = ^gunichar2;
  9. gunichar2 = guint16;
  10. PGUnicodeType = ^TGUnicodeType;
  11. TGUnicodeType = (
  12. G_UNICODE_CONTROL,
  13. G_UNICODE_FORMAT,
  14. G_UNICODE_UNASSIGNED,
  15. G_UNICODE_PRIVATE_USE,
  16. G_UNICODE_SURROGATE,
  17. G_UNICODE_LOWERCASE_LETTER,
  18. G_UNICODE_MODIFIER_LETTER,
  19. G_UNICODE_OTHER_LETTER,
  20. G_UNICODE_TITLECASE_LETTER,
  21. G_UNICODE_UPPERCASE_LETTER,
  22. G_UNICODE_COMBINING_MARK,
  23. G_UNICODE_ENCLOSING_MARK,
  24. G_UNICODE_NON_SPACING_MARK,
  25. G_UNICODE_DECIMAL_NUMBER,
  26. G_UNICODE_LETTER_NUMBER,
  27. G_UNICODE_OTHER_NUMBER,
  28. G_UNICODE_CONNECT_PUNCTUATION,
  29. G_UNICODE_DASH_PUNCTUATION,
  30. G_UNICODE_CLOSE_PUNCTUATION,
  31. G_UNICODE_FINAL_PUNCTUATION,
  32. G_UNICODE_INITIAL_PUNCTUATION,
  33. G_UNICODE_OTHER_PUNCTUATION,
  34. G_UNICODE_OPEN_PUNCTUATION,
  35. G_UNICODE_CURRENCY_SYMBOL,
  36. G_UNICODE_MODIFIER_SYMBOL,
  37. G_UNICODE_MATH_SYMBOL,
  38. G_UNICODE_OTHER_SYMBOL,
  39. G_UNICODE_LINE_SEPARATOR,
  40. G_UNICODE_PARAGRAPH_SEPARATOR,
  41. G_UNICODE_SPACE_SEPARATOR
  42. );
  43. PGUnicodeBreakType = ^TGUnicodeBreakType;
  44. TGUnicodeBreakType = (
  45. G_UNICODE_BREAK_MANDATORY,
  46. G_UNICODE_BREAK_CARRIAGE_RETURN,
  47. G_UNICODE_BREAK_LINE_FEED,
  48. G_UNICODE_BREAK_COMBINING_MARK,
  49. G_UNICODE_BREAK_SURROGATE,
  50. G_UNICODE_BREAK_ZERO_WIDTH_SPACE,
  51. G_UNICODE_BREAK_INSEPARABLE,
  52. G_UNICODE_BREAK_NON_BREAKING_GLUE,
  53. G_UNICODE_BREAK_CONTINGENT,
  54. G_UNICODE_BREAK_SPACE,
  55. G_UNICODE_BREAK_AFTER,
  56. G_UNICODE_BREAK_BEFORE,
  57. G_UNICODE_BREAK_BEFORE_AND_AFTER,
  58. G_UNICODE_BREAK_HYPHEN,
  59. G_UNICODE_BREAK_NON_STARTER,
  60. G_UNICODE_BREAK_OPEN_PUNCTUATION,
  61. G_UNICODE_BREAK_CLOSE_PUNCTUATION,
  62. G_UNICODE_BREAK_QUOTATION,
  63. G_UNICODE_BREAK_EXCLAMATION,
  64. G_UNICODE_BREAK_IDEOGRAPHIC,
  65. G_UNICODE_BREAK_NUMERIC,
  66. G_UNICODE_BREAK_INFIX_SEPARATOR,
  67. G_UNICODE_BREAK_SYMBOL,
  68. G_UNICODE_BREAK_ALPHABETIC,
  69. G_UNICODE_BREAK_PREFIX,
  70. G_UNICODE_BREAK_POSTFIX,
  71. G_UNICODE_BREAK_COMPLEX_CONTEXT,
  72. G_UNICODE_BREAK_AMBIGUOUS,
  73. G_UNICODE_BREAK_UNKNOWN
  74. );
  75. PGNormalizeMode = ^TGNormalizeMode;
  76. TGNormalizeMode = gint;
  77. {$ENDIF read_interface_types}
  78. //------------------------------------------------------------------------------
  79. {$IFDEF read_interface_rest}
  80. { Returns TRUE if current locale uses UTF-8 charset. If CHARSET is
  81. not null, sets CHARSET to the name of the current locale's
  82. charset. This value is statically allocated, and should be copied
  83. in case the locale's charset will be changed later using setlocale()
  84. or in some other way.
  85. }
  86. function g_get_charset(charset:PPAnsiChar):gboolean;cdecl;external gliblib name 'g_get_charset';
  87. { These are all analogs of the <ctype.h> functions.
  88. }
  89. function g_unichar_isalnum(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_isalnum';
  90. function g_unichar_isalpha(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_isalpha';
  91. function g_unichar_iscntrl(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_iscntrl';
  92. function g_unichar_isdigit(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_isdigit';
  93. function g_unichar_isgraph(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_isgraph';
  94. function g_unichar_islower(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_islower';
  95. function g_unichar_isprint(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_isprint';
  96. function g_unichar_ispunct(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_ispunct';
  97. function g_unichar_isspace(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_isspace';
  98. function g_unichar_isupper(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_isupper';
  99. function g_unichar_isxdigit(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_isxdigit';
  100. function g_unichar_istitle(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_istitle';
  101. function g_unichar_isdefined(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_isdefined';
  102. function g_unichar_iswide(c:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_iswide';
  103. { More <ctype.h> functions. These convert between the three cases.
  104. See the Unicode book to understand title case. }
  105. function g_unichar_toupper(c:gunichar):gunichar;cdecl;external gliblib name 'g_unichar_toupper';
  106. function g_unichar_tolower(c:gunichar):gunichar;cdecl;external gliblib name 'g_unichar_tolower';
  107. function g_unichar_totitle(c:gunichar):gunichar;cdecl;external gliblib name 'g_unichar_totitle';
  108. { If C is a digit (according to `g_unichar_isdigit'), then return its
  109. numeric value. Otherwise return -1. }
  110. function g_unichar_digit_value(c:gunichar):gint;cdecl;external gliblib name 'g_unichar_digit_value';
  111. function g_unichar_xdigit_value(c:gunichar):gint;cdecl;external gliblib name 'g_unichar_xdigit_value';
  112. { Return the Unicode character type of a given character. }
  113. function g_unichar_type(c:gunichar):TGUnicodeType;cdecl;external gliblib name 'g_unichar_type';
  114. { Return the line break property for a given character }
  115. function g_unichar_break_type(c:gunichar):TGUnicodeBreakType;cdecl;external gliblib name 'g_unichar_break_type';
  116. { Compute canonical ordering of a string in-place. This rearranges
  117. decomposed characters in the string according to their combining
  118. classes. See the Unicode manual for more information. }
  119. procedure g_unicode_canonical_ordering(_string:Pgunichar; len:gsize);cdecl;external gliblib name 'g_unicode_canonical_ordering';
  120. { Compute canonical decomposition of a character. Returns g_malloc()d
  121. string of Unicode characters. RESULT_LEN is set to the resulting
  122. length of the string. }
  123. function g_unicode_canonical_decomposition(ch:gunichar; result_len:Pgsize):Pgunichar;cdecl;external gliblib name 'g_unicode_canonical_decomposition';
  124. {$IFNDEF KYLIX}
  125. { Array of skip-bytes-per-initial character.
  126. }
  127. var
  128. g_utf8_skip : pgchar; external gliblib name 'g_utf8_skip';
  129. {$ENDIF}
  130. function g_utf8_next_char (p: pguchar):pguchar;
  131. function g_utf8_get_char(p:Pgchar):gunichar;cdecl;external gliblib name 'g_utf8_get_char';
  132. function g_utf8_get_char_validated(p:Pgchar; max_len:gssize):gunichar;cdecl;external gliblib name 'g_utf8_get_char_validated';
  133. function g_utf8_offset_to_pointer(str:Pgchar; offset:glong):Pgchar;cdecl;external gliblib name 'g_utf8_offset_to_pointer';
  134. function g_utf8_pointer_to_offset(str:Pgchar; pos:Pgchar):glong;cdecl;external gliblib name 'g_utf8_pointer_to_offset';
  135. function g_utf8_prev_char(p:Pgchar):Pgchar;cdecl;external gliblib name 'g_utf8_prev_char';
  136. function g_utf8_find_next_char(p:Pgchar; _end:Pgchar):Pgchar;cdecl;external gliblib name 'g_utf8_find_next_char';
  137. function g_utf8_find_prev_char(str:Pgchar; p:Pgchar):Pgchar;cdecl;external gliblib name 'g_utf8_find_prev_char';
  138. function g_utf8_strlen(p:Pgchar; max:gssize):glong;cdecl;external gliblib name 'g_utf8_strlen';
  139. { Copies n characters from src to dest }
  140. function g_utf8_strncpy(dest:Pgchar; src:Pgchar; n:gsize):Pgchar;cdecl;external gliblib name 'g_utf8_strncpy';
  141. { Find the UTF-8 character corresponding to ch, in string p. These
  142. functions are equivalants to strchr and strrchr }
  143. function g_utf8_strchr(p:Pgchar; len:gssize; c:gunichar):Pgchar;cdecl;external gliblib name 'g_utf8_strchr';
  144. function g_utf8_strrchr(p:Pgchar; len:gssize; c:gunichar):Pgchar;cdecl;external gliblib name 'g_utf8_strrchr';
  145. function g_utf8_to_utf16(str:Pgchar; len:glong; items_read:Pglong; items_written:Pglong; error:PPGError):Pgunichar2;cdecl;external gliblib name 'g_utf8_to_utf16';
  146. function g_utf8_to_ucs4(str:Pgchar; len:glong; items_read:Pglong; items_written:Pglong; error:PPGError):Pgunichar;cdecl;external gliblib name 'g_utf8_to_ucs4';
  147. function g_utf8_to_ucs4_fast(str:Pgchar; len:glong; items_written:Pglong):Pgunichar;cdecl;external gliblib name 'g_utf8_to_ucs4_fast';
  148. function g_utf16_to_ucs4(str:Pgunichar2; len:glong; items_read:Pglong; items_written:Pglong; error:PPGError):Pgunichar;cdecl;external gliblib name 'g_utf16_to_ucs4';
  149. function g_utf16_to_utf8(str:Pgunichar2; len:glong; items_read:Pglong; items_written:Pglong; error:PPGError):Pgchar;cdecl;external gliblib name 'g_utf16_to_utf8';
  150. function g_ucs4_to_utf16(str:Pgunichar; len:glong; items_read:Pglong; items_written:Pglong; error:PPGError):Pgunichar2;cdecl;external gliblib name 'g_ucs4_to_utf16';
  151. function g_ucs4_to_utf8(str:Pgunichar; len:glong; items_read:Pglong; items_written:Pglong; error:PPGError):Pgchar;cdecl;external gliblib name 'g_ucs4_to_utf8';
  152. { Convert a single character into UTF-8. outbuf must have at
  153. least 6 bytes of space. Returns the number of bytes in the
  154. result.
  155. }
  156. function g_unichar_to_utf8(c:gunichar; outbuf:Pgchar):gint;cdecl;external gliblib name 'g_unichar_to_utf8';
  157. { Validate a UTF8 string, return TRUE if valid, put pointer to
  158. first invalid AnsiChar in end
  159. }
  160. function g_utf8_validate(str:Pgchar; max_len:gssize; _end:PPgchar):gboolean;cdecl;external gliblib name 'g_utf8_validate';
  161. { Validate a Unicode character }
  162. function g_unichar_validate(ch:gunichar):gboolean;cdecl;external gliblib name 'g_unichar_validate';
  163. function g_utf8_strup(str:Pgchar; len:gssize):Pgchar;cdecl;external gliblib name 'g_utf8_strup';
  164. function g_utf8_strdown(str:Pgchar; len:gssize):Pgchar;cdecl;external gliblib name 'g_utf8_strdown';
  165. function g_utf8_casefold(str:Pgchar; len:gssize):Pgchar;cdecl;external gliblib name 'g_utf8_casefold';
  166. const G_NORMALIZE_DEFAULT = 0;
  167. G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT;
  168. G_NORMALIZE_DEFAULT_COMPOSE = 1;
  169. G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE;
  170. G_NORMALIZE_ALL = 2;
  171. G_NORMALIZE_NFKD = G_NORMALIZE_ALL;
  172. G_NORMALIZE_ALL_COMPOSE = 3;
  173. G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE;
  174. function g_utf8_normalize(str:Pgchar; len:gssize; mode:TGNormalizeMode):Pgchar;cdecl;external gliblib name 'g_utf8_normalize';
  175. function g_utf8_collate(str1:Pgchar; str2:Pgchar):gint;cdecl;external gliblib name 'g_utf8_collate';
  176. function g_utf8_collate_key(str:Pgchar; len:gssize):Pgchar;cdecl;external gliblib name 'g_utf8_collate_key';
  177. {$ENDIF read_interface_rest}