pango 2.2.0-x86-mingw32 → 2.2.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (407) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +21 -2
  3. data/lib/2.0/pango.so +0 -0
  4. data/vendor/local/bin/derb.exe +0 -0
  5. data/vendor/local/bin/genbrk.exe +0 -0
  6. data/vendor/local/bin/genccode.exe +0 -0
  7. data/vendor/local/bin/gencfu.exe +0 -0
  8. data/vendor/local/bin/gencmn.exe +0 -0
  9. data/vendor/local/bin/gencnval.exe +0 -0
  10. data/vendor/local/bin/gendict.exe +0 -0
  11. data/vendor/local/bin/gennorm2.exe +0 -0
  12. data/vendor/local/bin/genrb.exe +0 -0
  13. data/vendor/local/bin/gensprep.exe +0 -0
  14. data/vendor/local/bin/hb-ot-shape-closure.exe +0 -0
  15. data/vendor/local/bin/hb-shape.exe +0 -0
  16. data/vendor/local/bin/hb-view.exe +0 -0
  17. data/vendor/local/bin/icu-config +820 -0
  18. data/vendor/local/bin/icuinfo.exe +0 -0
  19. data/vendor/local/bin/icupkg.exe +0 -0
  20. data/vendor/local/bin/libharfbuzz-0.dll +0 -0
  21. data/vendor/local/bin/libpango-1.0-0.dll +0 -0
  22. data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
  23. data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
  24. data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
  25. data/vendor/local/bin/libstdc++-6.dll +0 -0
  26. data/vendor/local/bin/makeconv.exe +0 -0
  27. data/vendor/local/bin/pango-querymodules.exe +0 -0
  28. data/vendor/local/bin/pango-view.exe +0 -0
  29. data/vendor/local/bin/pkgdata.exe +0 -0
  30. data/vendor/local/bin/uconv.exe +0 -0
  31. data/vendor/local/etc/pango/pango.modules +3 -3
  32. data/vendor/local/include/harfbuzz/hb-blob.h +3 -4
  33. data/vendor/local/include/harfbuzz/hb-buffer.h +22 -1
  34. data/vendor/local/include/harfbuzz/hb-common.h +23 -18
  35. data/vendor/local/include/harfbuzz/hb-icu.h +52 -0
  36. data/vendor/local/include/harfbuzz/hb-ot-font.h +41 -0
  37. data/vendor/local/include/harfbuzz/hb-ot-layout.h +11 -3
  38. data/vendor/local/include/harfbuzz/hb-ot-shape.h +10 -11
  39. data/vendor/local/include/harfbuzz/hb-ot.h +1 -0
  40. data/vendor/local/include/harfbuzz/hb-version.h +7 -7
  41. data/vendor/local/include/layout/LEFontInstance.h +550 -0
  42. data/vendor/local/include/layout/LEGlyphFilter.h +45 -0
  43. data/vendor/local/include/layout/LEGlyphStorage.h +546 -0
  44. data/vendor/local/include/layout/LEInsertionList.h +177 -0
  45. data/vendor/local/include/layout/LELanguages.h +112 -0
  46. data/vendor/local/include/layout/LEScripts.h +263 -0
  47. data/vendor/local/include/layout/LESwaps.h +100 -0
  48. data/vendor/local/include/layout/LETableReference.h +418 -0
  49. data/vendor/local/include/layout/LETypes.h +728 -0
  50. data/vendor/local/include/layout/LayoutEngine.h +518 -0
  51. data/vendor/local/include/layout/ParagraphLayout.h +747 -0
  52. data/vendor/local/include/layout/RunArrays.h +676 -0
  53. data/vendor/local/include/layout/loengine.h +225 -0
  54. data/vendor/local/include/layout/playout.h +466 -0
  55. data/vendor/local/include/layout/plruns.h +441 -0
  56. data/vendor/local/include/pango-1.0/pango/pango-features.h +2 -2
  57. data/vendor/local/include/pango-1.0/pango/pango-font.h +3 -1
  58. data/vendor/local/include/pango-1.0/pango/pango-item.h +11 -2
  59. data/vendor/local/include/unicode/alphaindex.h +752 -0
  60. data/vendor/local/include/unicode/appendable.h +232 -0
  61. data/vendor/local/include/unicode/basictz.h +214 -0
  62. data/vendor/local/include/unicode/brkiter.h +655 -0
  63. data/vendor/local/include/unicode/bytestream.h +257 -0
  64. data/vendor/local/include/unicode/bytestrie.h +519 -0
  65. data/vendor/local/include/unicode/bytestriebuilder.h +181 -0
  66. data/vendor/local/include/unicode/calendar.h +2519 -0
  67. data/vendor/local/include/unicode/caniter.h +208 -0
  68. data/vendor/local/include/unicode/chariter.h +722 -0
  69. data/vendor/local/include/unicode/choicfmt.h +594 -0
  70. data/vendor/local/include/unicode/coleitr.h +404 -0
  71. data/vendor/local/include/unicode/coll.h +1267 -0
  72. data/vendor/local/include/unicode/compactdecimalformat.h +330 -0
  73. data/vendor/local/include/unicode/curramt.h +130 -0
  74. data/vendor/local/include/unicode/currpinf.h +258 -0
  75. data/vendor/local/include/unicode/currunit.h +110 -0
  76. data/vendor/local/include/unicode/datefmt.h +883 -0
  77. data/vendor/local/include/unicode/dbbi.h +40 -0
  78. data/vendor/local/include/unicode/dcfmtsym.h +482 -0
  79. data/vendor/local/include/unicode/decimfmt.h +2479 -0
  80. data/vendor/local/include/unicode/docmain.h +215 -0
  81. data/vendor/local/include/unicode/dtfmtsym.h +912 -0
  82. data/vendor/local/include/unicode/dtintrv.h +158 -0
  83. data/vendor/local/include/unicode/dtitvfmt.h +985 -0
  84. data/vendor/local/include/unicode/dtitvinf.h +514 -0
  85. data/vendor/local/include/unicode/dtptngen.h +498 -0
  86. data/vendor/local/include/unicode/dtrule.h +250 -0
  87. data/vendor/local/include/unicode/enumset.h +64 -0
  88. data/vendor/local/include/unicode/errorcode.h +137 -0
  89. data/vendor/local/include/unicode/fieldpos.h +291 -0
  90. data/vendor/local/include/unicode/filteredbrk.h +131 -0
  91. data/vendor/local/include/unicode/fmtable.h +760 -0
  92. data/vendor/local/include/unicode/format.h +305 -0
  93. data/vendor/local/include/unicode/fpositer.h +117 -0
  94. data/vendor/local/include/unicode/gender.h +111 -0
  95. data/vendor/local/include/unicode/gregocal.h +777 -0
  96. data/vendor/local/include/unicode/icudataver.h +41 -0
  97. data/vendor/local/include/unicode/icuplug.h +371 -0
  98. data/vendor/local/include/unicode/idna.h +323 -0
  99. data/vendor/local/include/unicode/listformatter.h +167 -0
  100. data/vendor/local/include/unicode/localpointer.h +304 -0
  101. data/vendor/local/include/unicode/locdspnm.h +204 -0
  102. data/vendor/local/include/unicode/locid.h +815 -0
  103. data/vendor/local/include/unicode/measfmt.h +389 -0
  104. data/vendor/local/include/unicode/measunit.h +1443 -0
  105. data/vendor/local/include/unicode/measure.h +159 -0
  106. data/vendor/local/include/unicode/messagepattern.h +943 -0
  107. data/vendor/local/include/unicode/msgfmt.h +1093 -0
  108. data/vendor/local/include/unicode/normalizer2.h +658 -0
  109. data/vendor/local/include/unicode/normlzr.h +797 -0
  110. data/vendor/local/include/unicode/numfmt.h +1187 -0
  111. data/vendor/local/include/unicode/numsys.h +208 -0
  112. data/vendor/local/include/unicode/parseerr.h +92 -0
  113. data/vendor/local/include/unicode/parsepos.h +230 -0
  114. data/vendor/local/include/unicode/platform.h +751 -0
  115. data/vendor/local/include/unicode/plurfmt.h +615 -0
  116. data/vendor/local/include/unicode/plurrule.h +501 -0
  117. data/vendor/local/include/unicode/ptypes.h +126 -0
  118. data/vendor/local/include/unicode/putil.h +181 -0
  119. data/vendor/local/include/unicode/rbbi.h +782 -0
  120. data/vendor/local/include/unicode/rbnf.h +1032 -0
  121. data/vendor/local/include/unicode/rbtz.h +362 -0
  122. data/vendor/local/include/unicode/regex.h +1857 -0
  123. data/vendor/local/include/unicode/region.h +228 -0
  124. data/vendor/local/include/unicode/reldatefmt.h +498 -0
  125. data/vendor/local/include/unicode/rep.h +261 -0
  126. data/vendor/local/include/unicode/resbund.h +490 -0
  127. data/vendor/local/include/unicode/schriter.h +187 -0
  128. data/vendor/local/include/unicode/scientificformathelper.h +139 -0
  129. data/vendor/local/include/unicode/search.h +575 -0
  130. data/vendor/local/include/unicode/selfmt.h +367 -0
  131. data/vendor/local/include/unicode/simpletz.h +928 -0
  132. data/vendor/local/include/unicode/smpdtfmt.h +1592 -0
  133. data/vendor/local/include/unicode/sortkey.h +338 -0
  134. data/vendor/local/include/unicode/std_string.h +37 -0
  135. data/vendor/local/include/unicode/strenum.h +276 -0
  136. data/vendor/local/include/unicode/stringpiece.h +224 -0
  137. data/vendor/local/include/unicode/stringtriebuilder.h +402 -0
  138. data/vendor/local/include/unicode/stsearch.h +504 -0
  139. data/vendor/local/include/unicode/symtable.h +112 -0
  140. data/vendor/local/include/unicode/tblcoll.h +873 -0
  141. data/vendor/local/include/unicode/timezone.h +948 -0
  142. data/vendor/local/include/unicode/tmunit.h +129 -0
  143. data/vendor/local/include/unicode/tmutamt.h +168 -0
  144. data/vendor/local/include/unicode/tmutfmt.h +243 -0
  145. data/vendor/local/include/unicode/translit.h +1342 -0
  146. data/vendor/local/include/unicode/tzfmt.h +1098 -0
  147. data/vendor/local/include/unicode/tznames.h +404 -0
  148. data/vendor/local/include/unicode/tzrule.h +828 -0
  149. data/vendor/local/include/unicode/tztrans.h +195 -0
  150. data/vendor/local/include/unicode/ubidi.h +2186 -0
  151. data/vendor/local/include/unicode/ubrk.h +540 -0
  152. data/vendor/local/include/unicode/ucal.h +1560 -0
  153. data/vendor/local/include/unicode/ucasemap.h +423 -0
  154. data/vendor/local/include/unicode/ucat.h +158 -0
  155. data/vendor/local/include/unicode/uchar.h +3426 -0
  156. data/vendor/local/include/unicode/ucharstrie.h +576 -0
  157. data/vendor/local/include/unicode/ucharstriebuilder.h +185 -0
  158. data/vendor/local/include/unicode/uchriter.h +381 -0
  159. data/vendor/local/include/unicode/uclean.h +258 -0
  160. data/vendor/local/include/unicode/ucnv.h +2036 -0
  161. data/vendor/local/include/unicode/ucnv_cb.h +162 -0
  162. data/vendor/local/include/unicode/ucnv_err.h +463 -0
  163. data/vendor/local/include/unicode/ucnvsel.h +187 -0
  164. data/vendor/local/include/unicode/ucol.h +1474 -0
  165. data/vendor/local/include/unicode/ucoleitr.h +266 -0
  166. data/vendor/local/include/unicode/uconfig.h +430 -0
  167. data/vendor/local/include/unicode/ucsdet.h +413 -0
  168. data/vendor/local/include/unicode/ucurr.h +424 -0
  169. data/vendor/local/include/unicode/udat.h +1536 -0
  170. data/vendor/local/include/unicode/udata.h +430 -0
  171. data/vendor/local/include/unicode/udateintervalformat.h +181 -0
  172. data/vendor/local/include/unicode/udatpg.h +588 -0
  173. data/vendor/local/include/unicode/udisplaycontext.h +150 -0
  174. data/vendor/local/include/unicode/uenum.h +206 -0
  175. data/vendor/local/include/unicode/uformattable.h +280 -0
  176. data/vendor/local/include/unicode/ugender.h +82 -0
  177. data/vendor/local/include/unicode/uidna.h +762 -0
  178. data/vendor/local/include/unicode/uiter.h +707 -0
  179. data/vendor/local/include/unicode/uldnames.h +302 -0
  180. data/vendor/local/include/unicode/uloc.h +1256 -0
  181. data/vendor/local/include/unicode/ulocdata.h +277 -0
  182. data/vendor/local/include/unicode/umachine.h +356 -0
  183. data/vendor/local/include/unicode/umisc.h +60 -0
  184. data/vendor/local/include/unicode/umsg.h +623 -0
  185. data/vendor/local/include/unicode/unifilt.h +120 -0
  186. data/vendor/local/include/unicode/unifunct.h +125 -0
  187. data/vendor/local/include/unicode/unimatch.h +163 -0
  188. data/vendor/local/include/unicode/unirepl.h +97 -0
  189. data/vendor/local/include/unicode/uniset.h +1691 -0
  190. data/vendor/local/include/unicode/unistr.h +4470 -0
  191. data/vendor/local/include/unicode/unorm.h +561 -0
  192. data/vendor/local/include/unicode/unorm2.h +528 -0
  193. data/vendor/local/include/unicode/unum.h +1328 -0
  194. data/vendor/local/include/unicode/unumsys.h +170 -0
  195. data/vendor/local/include/unicode/uobject.h +320 -0
  196. data/vendor/local/include/unicode/upluralrules.h +145 -0
  197. data/vendor/local/include/unicode/uregex.h +1591 -0
  198. data/vendor/local/include/unicode/uregion.h +248 -0
  199. data/vendor/local/include/unicode/urename.h +1784 -0
  200. data/vendor/local/include/unicode/urep.h +155 -0
  201. data/vendor/local/include/unicode/ures.h +887 -0
  202. data/vendor/local/include/unicode/uscript.h +642 -0
  203. data/vendor/local/include/unicode/usearch.h +885 -0
  204. data/vendor/local/include/unicode/uset.h +1126 -0
  205. data/vendor/local/include/unicode/usetiter.h +318 -0
  206. data/vendor/local/include/unicode/ushape.h +474 -0
  207. data/vendor/local/include/unicode/uspoof.h +1064 -0
  208. data/vendor/local/include/unicode/usprep.h +269 -0
  209. data/vendor/local/include/unicode/ustdio.h +1018 -0
  210. data/vendor/local/include/unicode/ustream.h +68 -0
  211. data/vendor/local/include/unicode/ustring.h +1700 -0
  212. data/vendor/local/include/unicode/ustringtrie.h +95 -0
  213. data/vendor/local/include/unicode/utext.h +1600 -0
  214. data/vendor/local/include/unicode/utf.h +223 -0
  215. data/vendor/local/include/unicode/utf16.h +623 -0
  216. data/vendor/local/include/unicode/utf32.h +23 -0
  217. data/vendor/local/include/unicode/utf8.h +824 -0
  218. data/vendor/local/include/unicode/utf_old.h +1169 -0
  219. data/vendor/local/include/unicode/utmscale.h +481 -0
  220. data/vendor/local/include/unicode/utrace.h +359 -0
  221. data/vendor/local/include/unicode/utrans.h +658 -0
  222. data/vendor/local/include/unicode/utypes.h +723 -0
  223. data/vendor/local/include/unicode/uvernum.h +170 -0
  224. data/vendor/local/include/unicode/uversion.h +193 -0
  225. data/vendor/local/include/unicode/vtzone.h +455 -0
  226. data/vendor/local/lib/girepository-1.0/Pango-1.0.typelib +0 -0
  227. data/vendor/local/lib/girepository-1.0/PangoCairo-1.0.typelib +0 -0
  228. data/vendor/local/lib/girepository-1.0/PangoFT2-1.0.typelib +0 -0
  229. data/vendor/local/lib/icu/54.1/Makefile.inc +293 -0
  230. data/vendor/local/lib/icu/54.1/pkgdata.inc +17 -0
  231. data/vendor/local/lib/icu/Makefile.inc +293 -0
  232. data/vendor/local/lib/icu/pkgdata.inc +17 -0
  233. data/vendor/local/lib/icudt.dll +0 -0
  234. data/vendor/local/lib/icudt54.dll +0 -0
  235. data/vendor/local/lib/icuin.dll +0 -0
  236. data/vendor/local/lib/icuin54.dll +0 -0
  237. data/vendor/local/lib/icuio.dll +0 -0
  238. data/vendor/local/lib/icuio54.dll +0 -0
  239. data/vendor/local/lib/icule.dll +0 -0
  240. data/vendor/local/lib/icule54.dll +0 -0
  241. data/vendor/local/lib/iculx.dll +0 -0
  242. data/vendor/local/lib/iculx54.dll +0 -0
  243. data/vendor/local/lib/icutest.dll +0 -0
  244. data/vendor/local/lib/icutest54.dll +0 -0
  245. data/vendor/local/lib/icutu.dll +0 -0
  246. data/vendor/local/lib/icutu54.dll +0 -0
  247. data/vendor/local/lib/icuuc.dll +0 -0
  248. data/vendor/local/lib/icuuc54.dll +0 -0
  249. data/vendor/local/lib/libharfbuzz-icu.a +0 -0
  250. data/vendor/local/lib/libharfbuzz-icu.la +41 -0
  251. data/vendor/local/lib/libharfbuzz.dll.a +0 -0
  252. data/vendor/local/lib/libharfbuzz.la +3 -3
  253. data/vendor/local/lib/libicudt.dll.a +0 -0
  254. data/vendor/local/lib/libicuin.dll.a +0 -0
  255. data/vendor/local/lib/libicuio.dll.a +0 -0
  256. data/vendor/local/lib/libicule.dll.a +0 -0
  257. data/vendor/local/lib/libiculx.dll.a +0 -0
  258. data/vendor/local/lib/libicutest.dll.a +0 -0
  259. data/vendor/local/lib/libicutu.dll.a +0 -0
  260. data/vendor/local/lib/libicuuc.dll.a +0 -0
  261. data/vendor/local/lib/libpango-1.0.dll.a +0 -0
  262. data/vendor/local/lib/libpango-1.0.la +2 -2
  263. data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
  264. data/vendor/local/lib/libpangocairo-1.0.la +2 -2
  265. data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
  266. data/vendor/local/lib/libpangoft2-1.0.la +2 -2
  267. data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
  268. data/vendor/local/lib/libpangowin32-1.0.la +2 -2
  269. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.dll +0 -0
  270. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.dll.a +0 -0
  271. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.la +1 -1
  272. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.dll +0 -0
  273. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.dll.a +0 -0
  274. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.la +1 -1
  275. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.dll +0 -0
  276. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.dll.a +0 -0
  277. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.la +1 -1
  278. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.dll +0 -0
  279. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.dll.a +0 -0
  280. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.la +1 -1
  281. data/vendor/local/lib/pkgconfig/harfbuzz-icu.pc +13 -0
  282. data/vendor/local/lib/pkgconfig/harfbuzz.pc +1 -1
  283. data/vendor/local/lib/pkgconfig/icu-i18n.pc +38 -0
  284. data/vendor/local/lib/pkgconfig/icu-io.pc +38 -0
  285. data/vendor/local/lib/pkgconfig/icu-le.pc +38 -0
  286. data/vendor/local/lib/pkgconfig/icu-lx.pc +38 -0
  287. data/vendor/local/lib/pkgconfig/icu-uc.pc +38 -0
  288. data/vendor/local/lib/pkgconfig/pango.pc +1 -1
  289. data/vendor/local/lib/pkgconfig/pangocairo.pc +1 -1
  290. data/vendor/local/lib/pkgconfig/pangoft2.pc +1 -1
  291. data/vendor/local/lib/pkgconfig/pangowin32.pc +1 -1
  292. data/vendor/local/share/gir-1.0/Pango-1.0.gir +3009 -462
  293. data/vendor/local/share/gir-1.0/PangoCairo-1.0.gir +64 -22
  294. data/vendor/local/share/gir-1.0/PangoFT2-1.0.gir +4 -2
  295. data/vendor/local/share/gtk-doc/html/harfbuzz/annotation-glossary.html +30 -26
  296. data/vendor/local/share/gtk-doc/html/harfbuzz/api-index-full.html +343 -313
  297. data/vendor/local/share/gtk-doc/html/harfbuzz/ch01.html +5 -5
  298. data/vendor/local/share/gtk-doc/html/harfbuzz/deprecated-api-index.html +6 -8
  299. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-blob.html +442 -247
  300. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-buffer.html +1389 -654
  301. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-common.html +954 -698
  302. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-coretext.html +95 -18
  303. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-deprecated.html +36 -27
  304. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-face.html +477 -191
  305. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-font.html +1951 -1039
  306. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ft.html +123 -65
  307. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-glib.html +66 -21
  308. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-gobject.html +11 -13
  309. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-graphite2.html +67 -23
  310. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-icu.html +66 -21
  311. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-layout.html +574 -347
  312. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-tag.html +104 -37
  313. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot.html +10 -27
  314. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-set.html +744 -318
  315. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape-plan.html +294 -153
  316. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape.html +196 -104
  317. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-unicode.html +1100 -757
  318. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-uniscribe.html +51 -18
  319. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-version.html +110 -84
  320. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb.html +11 -13
  321. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz.devhelp2 +289 -503
  322. data/vendor/local/share/gtk-doc/html/harfbuzz/index.html +3 -3
  323. data/vendor/local/share/gtk-doc/html/harfbuzz/index.sgml +161 -316
  324. data/vendor/local/share/gtk-doc/html/harfbuzz/object-tree.html +31 -4
  325. data/vendor/local/share/gtk-doc/html/harfbuzz/style.css +260 -105
  326. data/vendor/local/share/gtk-doc/html/pango/PangoEngineLang.html +143 -105
  327. data/vendor/local/share/gtk-doc/html/pango/PangoEngineShape.html +150 -108
  328. data/vendor/local/share/gtk-doc/html/pango/PangoFcDecoder.html +163 -112
  329. data/vendor/local/share/gtk-doc/html/pango/PangoFcFont.html +348 -229
  330. data/vendor/local/share/gtk-doc/html/pango/PangoFcFontMap.html +746 -514
  331. data/vendor/local/share/gtk-doc/html/pango/PangoMarkupFormat.html +9 -9
  332. data/vendor/local/share/gtk-doc/html/pango/PangoRenderer.html +853 -623
  333. data/vendor/local/share/gtk-doc/html/pango/annotation-glossary.html +29 -13
  334. data/vendor/local/share/gtk-doc/html/pango/api-index-1-10.html +31 -33
  335. data/vendor/local/share/gtk-doc/html/pango/api-index-1-12.html +10 -12
  336. data/vendor/local/share/gtk-doc/html/pango/api-index-1-14.html +12 -14
  337. data/vendor/local/share/gtk-doc/html/pango/api-index-1-16.html +53 -55
  338. data/vendor/local/share/gtk-doc/html/pango/api-index-1-18.html +28 -30
  339. data/vendor/local/share/gtk-doc/html/pango/api-index-1-2.html +29 -31
  340. data/vendor/local/share/gtk-doc/html/pango/api-index-1-20.html +17 -19
  341. data/vendor/local/share/gtk-doc/html/pango/api-index-1-22.html +28 -30
  342. data/vendor/local/share/gtk-doc/html/pango/api-index-1-24.html +17 -19
  343. data/vendor/local/share/gtk-doc/html/pango/api-index-1-26.html +9 -11
  344. data/vendor/local/share/gtk-doc/html/pango/api-index-1-30.html +6 -6
  345. data/vendor/local/share/gtk-doc/html/pango/api-index-1-31-0.html +6 -6
  346. data/vendor/local/share/gtk-doc/html/pango/api-index-1-32-4.html +11 -13
  347. data/vendor/local/share/gtk-doc/html/pango/api-index-1-32.html +7 -9
  348. data/vendor/local/share/gtk-doc/html/pango/api-index-1-34.html +5 -5
  349. data/vendor/local/share/gtk-doc/html/pango/api-index-1-4.html +49 -51
  350. data/vendor/local/share/gtk-doc/html/pango/api-index-1-6.html +36 -38
  351. data/vendor/local/share/gtk-doc/html/pango/api-index-1-8.html +37 -39
  352. data/vendor/local/share/gtk-doc/html/pango/api-index-deprecated.html +68 -70
  353. data/vendor/local/share/gtk-doc/html/pango/api-index-full.html +568 -570
  354. data/vendor/local/share/gtk-doc/html/pango/index.html +3 -3
  355. data/vendor/local/share/gtk-doc/html/pango/index.sgml +229 -399
  356. data/vendor/local/share/gtk-doc/html/pango/lowlevel.html +4 -4
  357. data/vendor/local/share/gtk-doc/html/pango/pango-Bidirectional-Text.html +345 -259
  358. data/vendor/local/share/gtk-doc/html/pango/pango-Cairo-Rendering.html +979 -664
  359. data/vendor/local/share/gtk-doc/html/pango/pango-CoreText-Fonts.html +70 -43
  360. data/vendor/local/share/gtk-doc/html/pango/pango-Coverage-Maps.html +349 -229
  361. data/vendor/local/share/gtk-doc/html/pango/pango-Engines.html +236 -153
  362. data/vendor/local/share/gtk-doc/html/pango/pango-Fonts.html +3100 -2159
  363. data/vendor/local/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html +659 -472
  364. data/vendor/local/share/gtk-doc/html/pango/pango-Glyph-Storage.html +1952 -1384
  365. data/vendor/local/share/gtk-doc/html/pango/pango-Layout-Objects.html +3050 -2135
  366. data/vendor/local/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html +676 -463
  367. data/vendor/local/share/gtk-doc/html/pango/pango-Modules.html +223 -146
  368. data/vendor/local/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html +1589 -1199
  369. data/vendor/local/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html +1072 -842
  370. data/vendor/local/share/gtk-doc/html/pango/pango-Tab-Stops.html +406 -276
  371. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Attributes.html +2541 -1792
  372. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Processing.html +1479 -1033
  373. data/vendor/local/share/gtk-doc/html/pango/pango-Version-Checking.html +214 -154
  374. data/vendor/local/share/gtk-doc/html/pango/pango-Vertical-Text.html +374 -291
  375. data/vendor/local/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html +733 -498
  376. data/vendor/local/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html +893 -617
  377. data/vendor/local/share/gtk-doc/html/pango/pango-hierarchy.html +59 -59
  378. data/vendor/local/share/gtk-doc/html/pango/pango-querymodules.html +5 -5
  379. data/vendor/local/share/gtk-doc/html/pango/pango.devhelp2 +578 -782
  380. data/vendor/local/share/gtk-doc/html/pango/pango.html +4 -4
  381. data/vendor/local/share/gtk-doc/html/pango/rendering.html +4 -4
  382. data/vendor/local/share/gtk-doc/html/pango/style.css +260 -105
  383. data/vendor/local/share/gtk-doc/html/pango/tools.html +4 -4
  384. data/vendor/local/share/icu/54.1/config/mh-mingw +158 -0
  385. data/vendor/local/share/icu/54.1/install-sh +251 -0
  386. data/vendor/local/share/icu/54.1/license.html +385 -0
  387. data/vendor/local/share/icu/54.1/mkinstalldirs +43 -0
  388. data/vendor/local/share/license/harfbuzz/AUTHORS +1 -0
  389. data/vendor/local/share/man/man1/derb.1 +196 -0
  390. data/vendor/local/share/man/man1/genbrk.1 +112 -0
  391. data/vendor/local/share/man/man1/gencfu.1 +91 -0
  392. data/vendor/local/share/man/man1/gencnval.1 +91 -0
  393. data/vendor/local/share/man/man1/gendict.1 +131 -0
  394. data/vendor/local/share/man/man1/genrb.1 +146 -0
  395. data/vendor/local/share/man/man1/icu-config.1 +288 -0
  396. data/vendor/local/share/man/man1/makeconv.1 +112 -0
  397. data/vendor/local/share/man/man1/pango-querymodules.1 +2 -2
  398. data/vendor/local/share/man/man1/pango-view.1 +1 -118
  399. data/vendor/local/share/man/man1/pkgdata.1 +258 -0
  400. data/vendor/local/share/man/man1/uconv.1 +443 -0
  401. data/vendor/local/share/man/man8/genccode.8 +106 -0
  402. data/vendor/local/share/man/man8/gencmn.8 +129 -0
  403. data/vendor/local/share/man/man8/gensprep.8 +102 -0
  404. data/vendor/local/share/man/man8/icupkg.8 +204 -0
  405. metadata +266 -14
  406. data/lib/1.9/pango.so +0 -0
  407. data/lib/2.1/pango.so +0 -0
@@ -0,0 +1,68 @@
1
+ /*
2
+ **********************************************************************
3
+ * Copyright (C) 2001-2014 International Business Machines
4
+ * Corporation and others. All Rights Reserved.
5
+ **********************************************************************
6
+ * FILE NAME : ustream.h
7
+ *
8
+ * Modification History:
9
+ *
10
+ * Date Name Description
11
+ * 06/25/2001 grhoten Move iostream from unistr.h
12
+ ******************************************************************************
13
+ */
14
+
15
+ #ifndef USTREAM_H
16
+ #define USTREAM_H
17
+
18
+ #include "unicode/unistr.h"
19
+
20
+ #if !UCONFIG_NO_CONVERSION // not available without conversion
21
+
22
+ /**
23
+ * \file
24
+ * \brief C++ API: Unicode iostream like API
25
+ *
26
+ * At this time, this API is very limited. It contains
27
+ * operator<< and operator>> for UnicodeString manipulation with the
28
+ * C++ I/O stream API.
29
+ */
30
+
31
+ #if !defined(_MSC_VER)
32
+ namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
33
+ #endif
34
+
35
+ #if U_IOSTREAM_SOURCE >= 199711
36
+ #if (__GNUC__ == 2)
37
+ #include <iostream>
38
+ #else
39
+ #include <istream>
40
+ #include <ostream>
41
+ #endif
42
+
43
+ U_NAMESPACE_BEGIN
44
+
45
+ /**
46
+ * Write the contents of a UnicodeString to a C++ ostream. This functions writes
47
+ * the characters in a UnicodeString to an ostream. The UChars in the
48
+ * UnicodeString are converted to the char based ostream with the default
49
+ * converter.
50
+ * @stable 3.0
51
+ */
52
+ U_IO_API std::ostream & U_EXPORT2 operator<<(std::ostream& stream, const UnicodeString& s);
53
+
54
+ /**
55
+ * Write the contents from a C++ istream to a UnicodeString. The UChars in the
56
+ * UnicodeString are converted from the char based istream with the default
57
+ * converter.
58
+ * @stable 3.0
59
+ */
60
+ U_IO_API std::istream & U_EXPORT2 operator>>(std::istream& stream, UnicodeString& s);
61
+ U_NAMESPACE_END
62
+
63
+ #endif
64
+
65
+ /* No operator for UChar because it can conflict with wchar_t */
66
+
67
+ #endif
68
+ #endif
@@ -0,0 +1,1700 @@
1
+ /*
2
+ **********************************************************************
3
+ * Copyright (C) 1998-2014, International Business Machines
4
+ * Corporation and others. All Rights Reserved.
5
+ **********************************************************************
6
+ *
7
+ * File ustring.h
8
+ *
9
+ * Modification History:
10
+ *
11
+ * Date Name Description
12
+ * 12/07/98 bertrand Creation.
13
+ ******************************************************************************
14
+ */
15
+
16
+ #ifndef USTRING_H
17
+ #define USTRING_H
18
+
19
+ #include "unicode/utypes.h"
20
+ #include "unicode/putil.h"
21
+ #include "unicode/uiter.h"
22
+
23
+ /**
24
+ * \def UBRK_TYPEDEF_UBREAK_ITERATOR
25
+ * @internal
26
+ */
27
+
28
+ #ifndef UBRK_TYPEDEF_UBREAK_ITERATOR
29
+ # define UBRK_TYPEDEF_UBREAK_ITERATOR
30
+ /** Simple declaration for u_strToTitle() to avoid including unicode/ubrk.h. @stable ICU 2.1*/
31
+ typedef struct UBreakIterator UBreakIterator;
32
+ #endif
33
+
34
+ /**
35
+ * \file
36
+ * \brief C API: Unicode string handling functions
37
+ *
38
+ * These C API functions provide general Unicode string handling.
39
+ *
40
+ * Some functions are equivalent in name, signature, and behavior to the ANSI C <string.h>
41
+ * functions. (For example, they do not check for bad arguments like NULL string pointers.)
42
+ * In some cases, only the thread-safe variant of such a function is implemented here
43
+ * (see u_strtok_r()).
44
+ *
45
+ * Other functions provide more Unicode-specific functionality like locale-specific
46
+ * upper/lower-casing and string comparison in code point order.
47
+ *
48
+ * ICU uses 16-bit Unicode (UTF-16) in the form of arrays of UChar code units.
49
+ * UTF-16 encodes each Unicode code point with either one or two UChar code units.
50
+ * (This is the default form of Unicode, and a forward-compatible extension of the original,
51
+ * fixed-width form that was known as UCS-2. UTF-16 superseded UCS-2 with Unicode 2.0
52
+ * in 1996.)
53
+ *
54
+ * Some APIs accept a 32-bit UChar32 value for a single code point.
55
+ *
56
+ * ICU also handles 16-bit Unicode text with unpaired surrogates.
57
+ * Such text is not well-formed UTF-16.
58
+ * Code-point-related functions treat unpaired surrogates as surrogate code points,
59
+ * i.e., as separate units.
60
+ *
61
+ * Although UTF-16 is a variable-width encoding form (like some legacy multi-byte encodings),
62
+ * it is much more efficient even for random access because the code unit values
63
+ * for single-unit characters vs. lead units vs. trail units are completely disjoint.
64
+ * This means that it is easy to determine character (code point) boundaries from
65
+ * random offsets in the string.
66
+ *
67
+ * Unicode (UTF-16) string processing is optimized for the single-unit case.
68
+ * Although it is important to support supplementary characters
69
+ * (which use pairs of lead/trail code units called "surrogates"),
70
+ * their occurrence is rare. Almost all characters in modern use require only
71
+ * a single UChar code unit (i.e., their code point values are <=0xffff).
72
+ *
73
+ * For more details see the User Guide Strings chapter (http://icu-project.org/userguide/strings.html).
74
+ * For a discussion of the handling of unpaired surrogates see also
75
+ * Jitterbug 2145 and its icu mailing list proposal on 2002-sep-18.
76
+ */
77
+
78
+ /**
79
+ * \defgroup ustring_ustrlen String Length
80
+ * \ingroup ustring_strlen
81
+ */
82
+ /*@{*/
83
+ /**
84
+ * Determine the length of an array of UChar.
85
+ *
86
+ * @param s The array of UChars, NULL (U+0000) terminated.
87
+ * @return The number of UChars in <code>chars</code>, minus the terminator.
88
+ * @stable ICU 2.0
89
+ */
90
+ U_STABLE int32_t U_EXPORT2
91
+ u_strlen(const UChar *s);
92
+ /*@}*/
93
+
94
+ /**
95
+ * Count Unicode code points in the length UChar code units of the string.
96
+ * A code point may occupy either one or two UChar code units.
97
+ * Counting code points involves reading all code units.
98
+ *
99
+ * This functions is basically the inverse of the U16_FWD_N() macro (see utf.h).
100
+ *
101
+ * @param s The input string.
102
+ * @param length The number of UChar code units to be checked, or -1 to count all
103
+ * code points before the first NUL (U+0000).
104
+ * @return The number of code points in the specified code units.
105
+ * @stable ICU 2.0
106
+ */
107
+ U_STABLE int32_t U_EXPORT2
108
+ u_countChar32(const UChar *s, int32_t length);
109
+
110
+ /**
111
+ * Check if the string contains more Unicode code points than a certain number.
112
+ * This is more efficient than counting all code points in the entire string
113
+ * and comparing that number with a threshold.
114
+ * This function may not need to scan the string at all if the length is known
115
+ * (not -1 for NUL-termination) and falls within a certain range, and
116
+ * never needs to count more than 'number+1' code points.
117
+ * Logically equivalent to (u_countChar32(s, length)>number).
118
+ * A Unicode code point may occupy either one or two UChar code units.
119
+ *
120
+ * @param s The input string.
121
+ * @param length The length of the string, or -1 if it is NUL-terminated.
122
+ * @param number The number of code points in the string is compared against
123
+ * the 'number' parameter.
124
+ * @return Boolean value for whether the string contains more Unicode code points
125
+ * than 'number'. Same as (u_countChar32(s, length)>number).
126
+ * @stable ICU 2.4
127
+ */
128
+ U_STABLE UBool U_EXPORT2
129
+ u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number);
130
+
131
+ /**
132
+ * Concatenate two ustrings. Appends a copy of <code>src</code>,
133
+ * including the null terminator, to <code>dst</code>. The initial copied
134
+ * character from <code>src</code> overwrites the null terminator in <code>dst</code>.
135
+ *
136
+ * @param dst The destination string.
137
+ * @param src The source string.
138
+ * @return A pointer to <code>dst</code>.
139
+ * @stable ICU 2.0
140
+ */
141
+ U_STABLE UChar* U_EXPORT2
142
+ u_strcat(UChar *dst,
143
+ const UChar *src);
144
+
145
+ /**
146
+ * Concatenate two ustrings.
147
+ * Appends at most <code>n</code> characters from <code>src</code> to <code>dst</code>.
148
+ * Adds a terminating NUL.
149
+ * If src is too long, then only <code>n-1</code> characters will be copied
150
+ * before the terminating NUL.
151
+ * If <code>n&lt;=0</code> then dst is not modified.
152
+ *
153
+ * @param dst The destination string.
154
+ * @param src The source string (can be NULL/invalid if n<=0).
155
+ * @param n The maximum number of characters to append; no-op if <=0.
156
+ * @return A pointer to <code>dst</code>.
157
+ * @stable ICU 2.0
158
+ */
159
+ U_STABLE UChar* U_EXPORT2
160
+ u_strncat(UChar *dst,
161
+ const UChar *src,
162
+ int32_t n);
163
+
164
+ /**
165
+ * Find the first occurrence of a substring in a string.
166
+ * The substring is found at code point boundaries.
167
+ * That means that if the substring begins with
168
+ * a trail surrogate or ends with a lead surrogate,
169
+ * then it is found only if these surrogates stand alone in the text.
170
+ * Otherwise, the substring edge units would be matched against
171
+ * halves of surrogate pairs.
172
+ *
173
+ * @param s The string to search (NUL-terminated).
174
+ * @param substring The substring to find (NUL-terminated).
175
+ * @return A pointer to the first occurrence of <code>substring</code> in <code>s</code>,
176
+ * or <code>s</code> itself if the <code>substring</code> is empty,
177
+ * or <code>NULL</code> if <code>substring</code> is not in <code>s</code>.
178
+ * @stable ICU 2.0
179
+ *
180
+ * @see u_strrstr
181
+ * @see u_strFindFirst
182
+ * @see u_strFindLast
183
+ */
184
+ U_STABLE UChar * U_EXPORT2
185
+ u_strstr(const UChar *s, const UChar *substring);
186
+
187
+ /**
188
+ * Find the first occurrence of a substring in a string.
189
+ * The substring is found at code point boundaries.
190
+ * That means that if the substring begins with
191
+ * a trail surrogate or ends with a lead surrogate,
192
+ * then it is found only if these surrogates stand alone in the text.
193
+ * Otherwise, the substring edge units would be matched against
194
+ * halves of surrogate pairs.
195
+ *
196
+ * @param s The string to search.
197
+ * @param length The length of s (number of UChars), or -1 if it is NUL-terminated.
198
+ * @param substring The substring to find (NUL-terminated).
199
+ * @param subLength The length of substring (number of UChars), or -1 if it is NUL-terminated.
200
+ * @return A pointer to the first occurrence of <code>substring</code> in <code>s</code>,
201
+ * or <code>s</code> itself if the <code>substring</code> is empty,
202
+ * or <code>NULL</code> if <code>substring</code> is not in <code>s</code>.
203
+ * @stable ICU 2.4
204
+ *
205
+ * @see u_strstr
206
+ * @see u_strFindLast
207
+ */
208
+ U_STABLE UChar * U_EXPORT2
209
+ u_strFindFirst(const UChar *s, int32_t length, const UChar *substring, int32_t subLength);
210
+
211
+ /**
212
+ * Find the first occurrence of a BMP code point in a string.
213
+ * A surrogate code point is found only if its match in the text is not
214
+ * part of a surrogate pair.
215
+ * A NUL character is found at the string terminator.
216
+ *
217
+ * @param s The string to search (NUL-terminated).
218
+ * @param c The BMP code point to find.
219
+ * @return A pointer to the first occurrence of <code>c</code> in <code>s</code>
220
+ * or <code>NULL</code> if <code>c</code> is not in <code>s</code>.
221
+ * @stable ICU 2.0
222
+ *
223
+ * @see u_strchr32
224
+ * @see u_memchr
225
+ * @see u_strstr
226
+ * @see u_strFindFirst
227
+ */
228
+ U_STABLE UChar * U_EXPORT2
229
+ u_strchr(const UChar *s, UChar c);
230
+
231
+ /**
232
+ * Find the first occurrence of a code point in a string.
233
+ * A surrogate code point is found only if its match in the text is not
234
+ * part of a surrogate pair.
235
+ * A NUL character is found at the string terminator.
236
+ *
237
+ * @param s The string to search (NUL-terminated).
238
+ * @param c The code point to find.
239
+ * @return A pointer to the first occurrence of <code>c</code> in <code>s</code>
240
+ * or <code>NULL</code> if <code>c</code> is not in <code>s</code>.
241
+ * @stable ICU 2.0
242
+ *
243
+ * @see u_strchr
244
+ * @see u_memchr32
245
+ * @see u_strstr
246
+ * @see u_strFindFirst
247
+ */
248
+ U_STABLE UChar * U_EXPORT2
249
+ u_strchr32(const UChar *s, UChar32 c);
250
+
251
+ /**
252
+ * Find the last occurrence of a substring in a string.
253
+ * The substring is found at code point boundaries.
254
+ * That means that if the substring begins with
255
+ * a trail surrogate or ends with a lead surrogate,
256
+ * then it is found only if these surrogates stand alone in the text.
257
+ * Otherwise, the substring edge units would be matched against
258
+ * halves of surrogate pairs.
259
+ *
260
+ * @param s The string to search (NUL-terminated).
261
+ * @param substring The substring to find (NUL-terminated).
262
+ * @return A pointer to the last occurrence of <code>substring</code> in <code>s</code>,
263
+ * or <code>s</code> itself if the <code>substring</code> is empty,
264
+ * or <code>NULL</code> if <code>substring</code> is not in <code>s</code>.
265
+ * @stable ICU 2.4
266
+ *
267
+ * @see u_strstr
268
+ * @see u_strFindFirst
269
+ * @see u_strFindLast
270
+ */
271
+ U_STABLE UChar * U_EXPORT2
272
+ u_strrstr(const UChar *s, const UChar *substring);
273
+
274
+ /**
275
+ * Find the last occurrence of a substring in a string.
276
+ * The substring is found at code point boundaries.
277
+ * That means that if the substring begins with
278
+ * a trail surrogate or ends with a lead surrogate,
279
+ * then it is found only if these surrogates stand alone in the text.
280
+ * Otherwise, the substring edge units would be matched against
281
+ * halves of surrogate pairs.
282
+ *
283
+ * @param s The string to search.
284
+ * @param length The length of s (number of UChars), or -1 if it is NUL-terminated.
285
+ * @param substring The substring to find (NUL-terminated).
286
+ * @param subLength The length of substring (number of UChars), or -1 if it is NUL-terminated.
287
+ * @return A pointer to the last occurrence of <code>substring</code> in <code>s</code>,
288
+ * or <code>s</code> itself if the <code>substring</code> is empty,
289
+ * or <code>NULL</code> if <code>substring</code> is not in <code>s</code>.
290
+ * @stable ICU 2.4
291
+ *
292
+ * @see u_strstr
293
+ * @see u_strFindLast
294
+ */
295
+ U_STABLE UChar * U_EXPORT2
296
+ u_strFindLast(const UChar *s, int32_t length, const UChar *substring, int32_t subLength);
297
+
298
+ /**
299
+ * Find the last occurrence of a BMP code point in a string.
300
+ * A surrogate code point is found only if its match in the text is not
301
+ * part of a surrogate pair.
302
+ * A NUL character is found at the string terminator.
303
+ *
304
+ * @param s The string to search (NUL-terminated).
305
+ * @param c The BMP code point to find.
306
+ * @return A pointer to the last occurrence of <code>c</code> in <code>s</code>
307
+ * or <code>NULL</code> if <code>c</code> is not in <code>s</code>.
308
+ * @stable ICU 2.4
309
+ *
310
+ * @see u_strrchr32
311
+ * @see u_memrchr
312
+ * @see u_strrstr
313
+ * @see u_strFindLast
314
+ */
315
+ U_STABLE UChar * U_EXPORT2
316
+ u_strrchr(const UChar *s, UChar c);
317
+
318
+ /**
319
+ * Find the last occurrence of a code point in a string.
320
+ * A surrogate code point is found only if its match in the text is not
321
+ * part of a surrogate pair.
322
+ * A NUL character is found at the string terminator.
323
+ *
324
+ * @param s The string to search (NUL-terminated).
325
+ * @param c The code point to find.
326
+ * @return A pointer to the last occurrence of <code>c</code> in <code>s</code>
327
+ * or <code>NULL</code> if <code>c</code> is not in <code>s</code>.
328
+ * @stable ICU 2.4
329
+ *
330
+ * @see u_strrchr
331
+ * @see u_memchr32
332
+ * @see u_strrstr
333
+ * @see u_strFindLast
334
+ */
335
+ U_STABLE UChar * U_EXPORT2
336
+ u_strrchr32(const UChar *s, UChar32 c);
337
+
338
+ /**
339
+ * Locates the first occurrence in the string <code>string</code> of any of the characters
340
+ * in the string <code>matchSet</code>.
341
+ * Works just like C's strpbrk but with Unicode.
342
+ *
343
+ * @param string The string in which to search, NUL-terminated.
344
+ * @param matchSet A NUL-terminated string defining a set of code points
345
+ * for which to search in the text string.
346
+ * @return A pointer to the character in <code>string</code> that matches one of the
347
+ * characters in <code>matchSet</code>, or NULL if no such character is found.
348
+ * @stable ICU 2.0
349
+ */
350
+ U_STABLE UChar * U_EXPORT2
351
+ u_strpbrk(const UChar *string, const UChar *matchSet);
352
+
353
+ /**
354
+ * Returns the number of consecutive characters in <code>string</code>,
355
+ * beginning with the first, that do not occur somewhere in <code>matchSet</code>.
356
+ * Works just like C's strcspn but with Unicode.
357
+ *
358
+ * @param string The string in which to search, NUL-terminated.
359
+ * @param matchSet A NUL-terminated string defining a set of code points
360
+ * for which to search in the text string.
361
+ * @return The number of initial characters in <code>string</code> that do not
362
+ * occur in <code>matchSet</code>.
363
+ * @see u_strspn
364
+ * @stable ICU 2.0
365
+ */
366
+ U_STABLE int32_t U_EXPORT2
367
+ u_strcspn(const UChar *string, const UChar *matchSet);
368
+
369
+ /**
370
+ * Returns the number of consecutive characters in <code>string</code>,
371
+ * beginning with the first, that occur somewhere in <code>matchSet</code>.
372
+ * Works just like C's strspn but with Unicode.
373
+ *
374
+ * @param string The string in which to search, NUL-terminated.
375
+ * @param matchSet A NUL-terminated string defining a set of code points
376
+ * for which to search in the text string.
377
+ * @return The number of initial characters in <code>string</code> that do
378
+ * occur in <code>matchSet</code>.
379
+ * @see u_strcspn
380
+ * @stable ICU 2.0
381
+ */
382
+ U_STABLE int32_t U_EXPORT2
383
+ u_strspn(const UChar *string, const UChar *matchSet);
384
+
385
+ /**
386
+ * The string tokenizer API allows an application to break a string into
387
+ * tokens. Unlike strtok(), the saveState (the current pointer within the
388
+ * original string) is maintained in saveState. In the first call, the
389
+ * argument src is a pointer to the string. In subsequent calls to
390
+ * return successive tokens of that string, src must be specified as
391
+ * NULL. The value saveState is set by this function to maintain the
392
+ * function's position within the string, and on each subsequent call
393
+ * you must give this argument the same variable. This function does
394
+ * handle surrogate pairs. This function is similar to the strtok_r()
395
+ * the POSIX Threads Extension (1003.1c-1995) version.
396
+ *
397
+ * @param src String containing token(s). This string will be modified.
398
+ * After the first call to u_strtok_r(), this argument must
399
+ * be NULL to get to the next token.
400
+ * @param delim Set of delimiter characters (Unicode code points).
401
+ * @param saveState The current pointer within the original string,
402
+ * which is set by this function. The saveState
403
+ * parameter should the address of a local variable of type
404
+ * UChar *. (i.e. defined "Uhar *myLocalSaveState" and use
405
+ * &myLocalSaveState for this parameter).
406
+ * @return A pointer to the next token found in src, or NULL
407
+ * when there are no more tokens.
408
+ * @stable ICU 2.0
409
+ */
410
+ U_STABLE UChar * U_EXPORT2
411
+ u_strtok_r(UChar *src,
412
+ const UChar *delim,
413
+ UChar **saveState);
414
+
415
+ /**
416
+ * Compare two Unicode strings for bitwise equality (code unit order).
417
+ *
418
+ * @param s1 A string to compare.
419
+ * @param s2 A string to compare.
420
+ * @return 0 if <code>s1</code> and <code>s2</code> are bitwise equal; a negative
421
+ * value if <code>s1</code> is bitwise less than <code>s2,</code>; a positive
422
+ * value if <code>s1</code> is bitwise greater than <code>s2</code>.
423
+ * @stable ICU 2.0
424
+ */
425
+ U_STABLE int32_t U_EXPORT2
426
+ u_strcmp(const UChar *s1,
427
+ const UChar *s2);
428
+
429
+ /**
430
+ * Compare two Unicode strings in code point order.
431
+ * See u_strCompare for details.
432
+ *
433
+ * @param s1 A string to compare.
434
+ * @param s2 A string to compare.
435
+ * @return a negative/zero/positive integer corresponding to whether
436
+ * the first string is less than/equal to/greater than the second one
437
+ * in code point order
438
+ * @stable ICU 2.0
439
+ */
440
+ U_STABLE int32_t U_EXPORT2
441
+ u_strcmpCodePointOrder(const UChar *s1, const UChar *s2);
442
+
443
+ /**
444
+ * Compare two Unicode strings (binary order).
445
+ *
446
+ * The comparison can be done in code unit order or in code point order.
447
+ * They differ only in UTF-16 when
448
+ * comparing supplementary code points (U+10000..U+10ffff)
449
+ * to BMP code points near the end of the BMP (i.e., U+e000..U+ffff).
450
+ * In code unit order, high BMP code points sort after supplementary code points
451
+ * because they are stored as pairs of surrogates which are at U+d800..U+dfff.
452
+ *
453
+ * This functions works with strings of different explicitly specified lengths
454
+ * unlike the ANSI C-like u_strcmp() and u_memcmp() etc.
455
+ * NUL-terminated strings are possible with length arguments of -1.
456
+ *
457
+ * @param s1 First source string.
458
+ * @param length1 Length of first source string, or -1 if NUL-terminated.
459
+ *
460
+ * @param s2 Second source string.
461
+ * @param length2 Length of second source string, or -1 if NUL-terminated.
462
+ *
463
+ * @param codePointOrder Choose between code unit order (FALSE)
464
+ * and code point order (TRUE).
465
+ *
466
+ * @return <0 or 0 or >0 as usual for string comparisons
467
+ *
468
+ * @stable ICU 2.2
469
+ */
470
+ U_STABLE int32_t U_EXPORT2
471
+ u_strCompare(const UChar *s1, int32_t length1,
472
+ const UChar *s2, int32_t length2,
473
+ UBool codePointOrder);
474
+
475
+ /**
476
+ * Compare two Unicode strings (binary order)
477
+ * as presented by UCharIterator objects.
478
+ * Works otherwise just like u_strCompare().
479
+ *
480
+ * Both iterators are reset to their start positions.
481
+ * When the function returns, it is undefined where the iterators
482
+ * have stopped.
483
+ *
484
+ * @param iter1 First source string iterator.
485
+ * @param iter2 Second source string iterator.
486
+ * @param codePointOrder Choose between code unit order (FALSE)
487
+ * and code point order (TRUE).
488
+ *
489
+ * @return <0 or 0 or >0 as usual for string comparisons
490
+ *
491
+ * @see u_strCompare
492
+ *
493
+ * @stable ICU 2.6
494
+ */
495
+ U_STABLE int32_t U_EXPORT2
496
+ u_strCompareIter(UCharIterator *iter1, UCharIterator *iter2, UBool codePointOrder);
497
+
498
+ #ifndef U_COMPARE_CODE_POINT_ORDER
499
+ /* see also unistr.h and unorm.h */
500
+ /**
501
+ * Option bit for u_strCaseCompare, u_strcasecmp, unorm_compare, etc:
502
+ * Compare strings in code point order instead of code unit order.
503
+ * @stable ICU 2.2
504
+ */
505
+ #define U_COMPARE_CODE_POINT_ORDER 0x8000
506
+ #endif
507
+
508
+ /**
509
+ * Compare two strings case-insensitively using full case folding.
510
+ * This is equivalent to
511
+ * u_strCompare(u_strFoldCase(s1, options),
512
+ * u_strFoldCase(s2, options),
513
+ * (options&U_COMPARE_CODE_POINT_ORDER)!=0).
514
+ *
515
+ * The comparison can be done in UTF-16 code unit order or in code point order.
516
+ * They differ only when comparing supplementary code points (U+10000..U+10ffff)
517
+ * to BMP code points near the end of the BMP (i.e., U+e000..U+ffff).
518
+ * In code unit order, high BMP code points sort after supplementary code points
519
+ * because they are stored as pairs of surrogates which are at U+d800..U+dfff.
520
+ *
521
+ * This functions works with strings of different explicitly specified lengths
522
+ * unlike the ANSI C-like u_strcmp() and u_memcmp() etc.
523
+ * NUL-terminated strings are possible with length arguments of -1.
524
+ *
525
+ * @param s1 First source string.
526
+ * @param length1 Length of first source string, or -1 if NUL-terminated.
527
+ *
528
+ * @param s2 Second source string.
529
+ * @param length2 Length of second source string, or -1 if NUL-terminated.
530
+ *
531
+ * @param options A bit set of options:
532
+ * - U_FOLD_CASE_DEFAULT or 0 is used for default options:
533
+ * Comparison in code unit order with default case folding.
534
+ *
535
+ * - U_COMPARE_CODE_POINT_ORDER
536
+ * Set to choose code point order instead of code unit order
537
+ * (see u_strCompare for details).
538
+ *
539
+ * - U_FOLD_CASE_EXCLUDE_SPECIAL_I
540
+ *
541
+ * @param pErrorCode Must be a valid pointer to an error code value,
542
+ * which must not indicate a failure before the function call.
543
+ *
544
+ * @return <0 or 0 or >0 as usual for string comparisons
545
+ *
546
+ * @stable ICU 2.2
547
+ */
548
+ U_STABLE int32_t U_EXPORT2
549
+ u_strCaseCompare(const UChar *s1, int32_t length1,
550
+ const UChar *s2, int32_t length2,
551
+ uint32_t options,
552
+ UErrorCode *pErrorCode);
553
+
554
+ /**
555
+ * Compare two ustrings for bitwise equality.
556
+ * Compares at most <code>n</code> characters.
557
+ *
558
+ * @param ucs1 A string to compare (can be NULL/invalid if n<=0).
559
+ * @param ucs2 A string to compare (can be NULL/invalid if n<=0).
560
+ * @param n The maximum number of characters to compare; always returns 0 if n<=0.
561
+ * @return 0 if <code>s1</code> and <code>s2</code> are bitwise equal; a negative
562
+ * value if <code>s1</code> is bitwise less than <code>s2</code>; a positive
563
+ * value if <code>s1</code> is bitwise greater than <code>s2</code>.
564
+ * @stable ICU 2.0
565
+ */
566
+ U_STABLE int32_t U_EXPORT2
567
+ u_strncmp(const UChar *ucs1,
568
+ const UChar *ucs2,
569
+ int32_t n);
570
+
571
+ /**
572
+ * Compare two Unicode strings in code point order.
573
+ * This is different in UTF-16 from u_strncmp() if supplementary characters are present.
574
+ * For details, see u_strCompare().
575
+ *
576
+ * @param s1 A string to compare.
577
+ * @param s2 A string to compare.
578
+ * @param n The maximum number of characters to compare.
579
+ * @return a negative/zero/positive integer corresponding to whether
580
+ * the first string is less than/equal to/greater than the second one
581
+ * in code point order
582
+ * @stable ICU 2.0
583
+ */
584
+ U_STABLE int32_t U_EXPORT2
585
+ u_strncmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t n);
586
+
587
+ /**
588
+ * Compare two strings case-insensitively using full case folding.
589
+ * This is equivalent to u_strcmp(u_strFoldCase(s1, options), u_strFoldCase(s2, options)).
590
+ *
591
+ * @param s1 A string to compare.
592
+ * @param s2 A string to compare.
593
+ * @param options A bit set of options:
594
+ * - U_FOLD_CASE_DEFAULT or 0 is used for default options:
595
+ * Comparison in code unit order with default case folding.
596
+ *
597
+ * - U_COMPARE_CODE_POINT_ORDER
598
+ * Set to choose code point order instead of code unit order
599
+ * (see u_strCompare for details).
600
+ *
601
+ * - U_FOLD_CASE_EXCLUDE_SPECIAL_I
602
+ *
603
+ * @return A negative, zero, or positive integer indicating the comparison result.
604
+ * @stable ICU 2.0
605
+ */
606
+ U_STABLE int32_t U_EXPORT2
607
+ u_strcasecmp(const UChar *s1, const UChar *s2, uint32_t options);
608
+
609
+ /**
610
+ * Compare two strings case-insensitively using full case folding.
611
+ * This is equivalent to u_strcmp(u_strFoldCase(s1, at most n, options),
612
+ * u_strFoldCase(s2, at most n, options)).
613
+ *
614
+ * @param s1 A string to compare.
615
+ * @param s2 A string to compare.
616
+ * @param n The maximum number of characters each string to case-fold and then compare.
617
+ * @param options A bit set of options:
618
+ * - U_FOLD_CASE_DEFAULT or 0 is used for default options:
619
+ * Comparison in code unit order with default case folding.
620
+ *
621
+ * - U_COMPARE_CODE_POINT_ORDER
622
+ * Set to choose code point order instead of code unit order
623
+ * (see u_strCompare for details).
624
+ *
625
+ * - U_FOLD_CASE_EXCLUDE_SPECIAL_I
626
+ *
627
+ * @return A negative, zero, or positive integer indicating the comparison result.
628
+ * @stable ICU 2.0
629
+ */
630
+ U_STABLE int32_t U_EXPORT2
631
+ u_strncasecmp(const UChar *s1, const UChar *s2, int32_t n, uint32_t options);
632
+
633
+ /**
634
+ * Compare two strings case-insensitively using full case folding.
635
+ * This is equivalent to u_strcmp(u_strFoldCase(s1, n, options),
636
+ * u_strFoldCase(s2, n, options)).
637
+ *
638
+ * @param s1 A string to compare.
639
+ * @param s2 A string to compare.
640
+ * @param length The number of characters in each string to case-fold and then compare.
641
+ * @param options A bit set of options:
642
+ * - U_FOLD_CASE_DEFAULT or 0 is used for default options:
643
+ * Comparison in code unit order with default case folding.
644
+ *
645
+ * - U_COMPARE_CODE_POINT_ORDER
646
+ * Set to choose code point order instead of code unit order
647
+ * (see u_strCompare for details).
648
+ *
649
+ * - U_FOLD_CASE_EXCLUDE_SPECIAL_I
650
+ *
651
+ * @return A negative, zero, or positive integer indicating the comparison result.
652
+ * @stable ICU 2.0
653
+ */
654
+ U_STABLE int32_t U_EXPORT2
655
+ u_memcasecmp(const UChar *s1, const UChar *s2, int32_t length, uint32_t options);
656
+
657
+ /**
658
+ * Copy a ustring. Adds a null terminator.
659
+ *
660
+ * @param dst The destination string.
661
+ * @param src The source string.
662
+ * @return A pointer to <code>dst</code>.
663
+ * @stable ICU 2.0
664
+ */
665
+ U_STABLE UChar* U_EXPORT2
666
+ u_strcpy(UChar *dst,
667
+ const UChar *src);
668
+
669
+ /**
670
+ * Copy a ustring.
671
+ * Copies at most <code>n</code> characters. The result will be null terminated
672
+ * if the length of <code>src</code> is less than <code>n</code>.
673
+ *
674
+ * @param dst The destination string.
675
+ * @param src The source string (can be NULL/invalid if n<=0).
676
+ * @param n The maximum number of characters to copy; no-op if <=0.
677
+ * @return A pointer to <code>dst</code>.
678
+ * @stable ICU 2.0
679
+ */
680
+ U_STABLE UChar* U_EXPORT2
681
+ u_strncpy(UChar *dst,
682
+ const UChar *src,
683
+ int32_t n);
684
+
685
+ #if !UCONFIG_NO_CONVERSION
686
+
687
+ /**
688
+ * Copy a byte string encoded in the default codepage to a ustring.
689
+ * Adds a null terminator.
690
+ * Performs a host byte to UChar conversion
691
+ *
692
+ * @param dst The destination string.
693
+ * @param src The source string.
694
+ * @return A pointer to <code>dst</code>.
695
+ * @stable ICU 2.0
696
+ */
697
+ U_STABLE UChar* U_EXPORT2 u_uastrcpy(UChar *dst,
698
+ const char *src );
699
+
700
+ /**
701
+ * Copy a byte string encoded in the default codepage to a ustring.
702
+ * Copies at most <code>n</code> characters. The result will be null terminated
703
+ * if the length of <code>src</code> is less than <code>n</code>.
704
+ * Performs a host byte to UChar conversion
705
+ *
706
+ * @param dst The destination string.
707
+ * @param src The source string.
708
+ * @param n The maximum number of characters to copy.
709
+ * @return A pointer to <code>dst</code>.
710
+ * @stable ICU 2.0
711
+ */
712
+ U_STABLE UChar* U_EXPORT2 u_uastrncpy(UChar *dst,
713
+ const char *src,
714
+ int32_t n);
715
+
716
+ /**
717
+ * Copy ustring to a byte string encoded in the default codepage.
718
+ * Adds a null terminator.
719
+ * Performs a UChar to host byte conversion
720
+ *
721
+ * @param dst The destination string.
722
+ * @param src The source string.
723
+ * @return A pointer to <code>dst</code>.
724
+ * @stable ICU 2.0
725
+ */
726
+ U_STABLE char* U_EXPORT2 u_austrcpy(char *dst,
727
+ const UChar *src );
728
+
729
+ /**
730
+ * Copy ustring to a byte string encoded in the default codepage.
731
+ * Copies at most <code>n</code> characters. The result will be null terminated
732
+ * if the length of <code>src</code> is less than <code>n</code>.
733
+ * Performs a UChar to host byte conversion
734
+ *
735
+ * @param dst The destination string.
736
+ * @param src The source string.
737
+ * @param n The maximum number of characters to copy.
738
+ * @return A pointer to <code>dst</code>.
739
+ * @stable ICU 2.0
740
+ */
741
+ U_STABLE char* U_EXPORT2 u_austrncpy(char *dst,
742
+ const UChar *src,
743
+ int32_t n );
744
+
745
+ #endif
746
+
747
+ /**
748
+ * Synonym for memcpy(), but with UChars only.
749
+ * @param dest The destination string
750
+ * @param src The source string (can be NULL/invalid if count<=0)
751
+ * @param count The number of characters to copy; no-op if <=0
752
+ * @return A pointer to <code>dest</code>
753
+ * @stable ICU 2.0
754
+ */
755
+ U_STABLE UChar* U_EXPORT2
756
+ u_memcpy(UChar *dest, const UChar *src, int32_t count);
757
+
758
+ /**
759
+ * Synonym for memmove(), but with UChars only.
760
+ * @param dest The destination string
761
+ * @param src The source string (can be NULL/invalid if count<=0)
762
+ * @param count The number of characters to move; no-op if <=0
763
+ * @return A pointer to <code>dest</code>
764
+ * @stable ICU 2.0
765
+ */
766
+ U_STABLE UChar* U_EXPORT2
767
+ u_memmove(UChar *dest, const UChar *src, int32_t count);
768
+
769
+ /**
770
+ * Initialize <code>count</code> characters of <code>dest</code> to <code>c</code>.
771
+ *
772
+ * @param dest The destination string.
773
+ * @param c The character to initialize the string.
774
+ * @param count The maximum number of characters to set.
775
+ * @return A pointer to <code>dest</code>.
776
+ * @stable ICU 2.0
777
+ */
778
+ U_STABLE UChar* U_EXPORT2
779
+ u_memset(UChar *dest, UChar c, int32_t count);
780
+
781
+ /**
782
+ * Compare the first <code>count</code> UChars of each buffer.
783
+ *
784
+ * @param buf1 The first string to compare.
785
+ * @param buf2 The second string to compare.
786
+ * @param count The maximum number of UChars to compare.
787
+ * @return When buf1 < buf2, a negative number is returned.
788
+ * When buf1 == buf2, 0 is returned.
789
+ * When buf1 > buf2, a positive number is returned.
790
+ * @stable ICU 2.0
791
+ */
792
+ U_STABLE int32_t U_EXPORT2
793
+ u_memcmp(const UChar *buf1, const UChar *buf2, int32_t count);
794
+
795
+ /**
796
+ * Compare two Unicode strings in code point order.
797
+ * This is different in UTF-16 from u_memcmp() if supplementary characters are present.
798
+ * For details, see u_strCompare().
799
+ *
800
+ * @param s1 A string to compare.
801
+ * @param s2 A string to compare.
802
+ * @param count The maximum number of characters to compare.
803
+ * @return a negative/zero/positive integer corresponding to whether
804
+ * the first string is less than/equal to/greater than the second one
805
+ * in code point order
806
+ * @stable ICU 2.0
807
+ */
808
+ U_STABLE int32_t U_EXPORT2
809
+ u_memcmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t count);
810
+
811
+ /**
812
+ * Find the first occurrence of a BMP code point in a string.
813
+ * A surrogate code point is found only if its match in the text is not
814
+ * part of a surrogate pair.
815
+ * A NUL character is found at the string terminator.
816
+ *
817
+ * @param s The string to search (contains <code>count</code> UChars).
818
+ * @param c The BMP code point to find.
819
+ * @param count The length of the string.
820
+ * @return A pointer to the first occurrence of <code>c</code> in <code>s</code>
821
+ * or <code>NULL</code> if <code>c</code> is not in <code>s</code>.
822
+ * @stable ICU 2.0
823
+ *
824
+ * @see u_strchr
825
+ * @see u_memchr32
826
+ * @see u_strFindFirst
827
+ */
828
+ U_STABLE UChar* U_EXPORT2
829
+ u_memchr(const UChar *s, UChar c, int32_t count);
830
+
831
+ /**
832
+ * Find the first occurrence of a code point in a string.
833
+ * A surrogate code point is found only if its match in the text is not
834
+ * part of a surrogate pair.
835
+ * A NUL character is found at the string terminator.
836
+ *
837
+ * @param s The string to search (contains <code>count</code> UChars).
838
+ * @param c The code point to find.
839
+ * @param count The length of the string.
840
+ * @return A pointer to the first occurrence of <code>c</code> in <code>s</code>
841
+ * or <code>NULL</code> if <code>c</code> is not in <code>s</code>.
842
+ * @stable ICU 2.0
843
+ *
844
+ * @see u_strchr32
845
+ * @see u_memchr
846
+ * @see u_strFindFirst
847
+ */
848
+ U_STABLE UChar* U_EXPORT2
849
+ u_memchr32(const UChar *s, UChar32 c, int32_t count);
850
+
851
+ /**
852
+ * Find the last occurrence of a BMP code point in a string.
853
+ * A surrogate code point is found only if its match in the text is not
854
+ * part of a surrogate pair.
855
+ * A NUL character is found at the string terminator.
856
+ *
857
+ * @param s The string to search (contains <code>count</code> UChars).
858
+ * @param c The BMP code point to find.
859
+ * @param count The length of the string.
860
+ * @return A pointer to the last occurrence of <code>c</code> in <code>s</code>
861
+ * or <code>NULL</code> if <code>c</code> is not in <code>s</code>.
862
+ * @stable ICU 2.4
863
+ *
864
+ * @see u_strrchr
865
+ * @see u_memrchr32
866
+ * @see u_strFindLast
867
+ */
868
+ U_STABLE UChar* U_EXPORT2
869
+ u_memrchr(const UChar *s, UChar c, int32_t count);
870
+
871
+ /**
872
+ * Find the last occurrence of a code point in a string.
873
+ * A surrogate code point is found only if its match in the text is not
874
+ * part of a surrogate pair.
875
+ * A NUL character is found at the string terminator.
876
+ *
877
+ * @param s The string to search (contains <code>count</code> UChars).
878
+ * @param c The code point to find.
879
+ * @param count The length of the string.
880
+ * @return A pointer to the last occurrence of <code>c</code> in <code>s</code>
881
+ * or <code>NULL</code> if <code>c</code> is not in <code>s</code>.
882
+ * @stable ICU 2.4
883
+ *
884
+ * @see u_strrchr32
885
+ * @see u_memrchr
886
+ * @see u_strFindLast
887
+ */
888
+ U_STABLE UChar* U_EXPORT2
889
+ u_memrchr32(const UChar *s, UChar32 c, int32_t count);
890
+
891
+ /**
892
+ * Unicode String literals in C.
893
+ * We need one macro to declare a variable for the string
894
+ * and to statically preinitialize it if possible,
895
+ * and a second macro to dynamically intialize such a string variable if necessary.
896
+ *
897
+ * The macros are defined for maximum performance.
898
+ * They work only for strings that contain "invariant characters", i.e.,
899
+ * only latin letters, digits, and some punctuation.
900
+ * See utypes.h for details.
901
+ *
902
+ * A pair of macros for a single string must be used with the same
903
+ * parameters.
904
+ * The string parameter must be a C string literal.
905
+ * The length of the string, not including the terminating
906
+ * <code>NUL</code>, must be specified as a constant.
907
+ * The U_STRING_DECL macro should be invoked exactly once for one
908
+ * such string variable before it is used.
909
+ *
910
+ * Usage:
911
+ * <pre>
912
+ * U_STRING_DECL(ustringVar1, "Quick-Fox 2", 11);
913
+ * U_STRING_DECL(ustringVar2, "jumps 5%", 8);
914
+ * static UBool didInit=FALSE;
915
+ *
916
+ * int32_t function() {
917
+ * if(!didInit) {
918
+ * U_STRING_INIT(ustringVar1, "Quick-Fox 2", 11);
919
+ * U_STRING_INIT(ustringVar2, "jumps 5%", 8);
920
+ * didInit=TRUE;
921
+ * }
922
+ * return u_strcmp(ustringVar1, ustringVar2);
923
+ * }
924
+ * </pre>
925
+ *
926
+ * Note that the macros will NOT consistently work if their argument is another <code>#define</code>.
927
+ * The following will not work on all platforms, don't use it.
928
+ *
929
+ * <pre>
930
+ * #define GLUCK "Mr. Gluck"
931
+ * U_STRING_DECL(var, GLUCK, 9)
932
+ * U_STRING_INIT(var, GLUCK, 9)
933
+ * </pre>
934
+ *
935
+ * Instead, use the string literal "Mr. Gluck" as the argument to both macro
936
+ * calls.
937
+ *
938
+ *
939
+ * @stable ICU 2.0
940
+ */
941
+ #if defined(U_DECLARE_UTF16)
942
+ # define U_STRING_DECL(var, cs, length) static const UChar *var=(const UChar *)U_DECLARE_UTF16(cs)
943
+ /**@stable ICU 2.0 */
944
+ # define U_STRING_INIT(var, cs, length)
945
+ #elif U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16)))
946
+ # define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]=L ## cs
947
+ /**@stable ICU 2.0 */
948
+ # define U_STRING_INIT(var, cs, length)
949
+ #elif U_SIZEOF_UCHAR==1 && U_CHARSET_FAMILY==U_ASCII_FAMILY
950
+ # define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1]=cs
951
+ /**@stable ICU 2.0 */
952
+ # define U_STRING_INIT(var, cs, length)
953
+ #else
954
+ # define U_STRING_DECL(var, cs, length) static UChar var[(length)+1]
955
+ /**@stable ICU 2.0 */
956
+ # define U_STRING_INIT(var, cs, length) u_charsToUChars(cs, var, length+1)
957
+ #endif
958
+
959
+ /**
960
+ * Unescape a string of characters and write the resulting
961
+ * Unicode characters to the destination buffer. The following escape
962
+ * sequences are recognized:
963
+ *
964
+ * \\uhhhh 4 hex digits; h in [0-9A-Fa-f]
965
+ * \\Uhhhhhhhh 8 hex digits
966
+ * \\xhh 1-2 hex digits
967
+ * \\x{h...} 1-8 hex digits
968
+ * \\ooo 1-3 octal digits; o in [0-7]
969
+ * \\cX control-X; X is masked with 0x1F
970
+ *
971
+ * as well as the standard ANSI C escapes:
972
+ *
973
+ * \\a => U+0007, \\b => U+0008, \\t => U+0009, \\n => U+000A,
974
+ * \\v => U+000B, \\f => U+000C, \\r => U+000D, \\e => U+001B,
975
+ * \\&quot; => U+0022, \\' => U+0027, \\? => U+003F, \\\\ => U+005C
976
+ *
977
+ * Anything else following a backslash is generically escaped. For
978
+ * example, "[a\\-z]" returns "[a-z]".
979
+ *
980
+ * If an escape sequence is ill-formed, this method returns an empty
981
+ * string. An example of an ill-formed sequence is "\\u" followed by
982
+ * fewer than 4 hex digits.
983
+ *
984
+ * The above characters are recognized in the compiler's codepage,
985
+ * that is, they are coded as 'u', '\\', etc. Characters that are
986
+ * not parts of escape sequences are converted using u_charsToUChars().
987
+ *
988
+ * This function is similar to UnicodeString::unescape() but not
989
+ * identical to it. The latter takes a source UnicodeString, so it
990
+ * does escape recognition but no conversion.
991
+ *
992
+ * @param src a zero-terminated string of invariant characters
993
+ * @param dest pointer to buffer to receive converted and unescaped
994
+ * text and, if there is room, a zero terminator. May be NULL for
995
+ * preflighting, in which case no UChars will be written, but the
996
+ * return value will still be valid. On error, an empty string is
997
+ * stored here (if possible).
998
+ * @param destCapacity the number of UChars that may be written at
999
+ * dest. Ignored if dest == NULL.
1000
+ * @return the length of unescaped string.
1001
+ * @see u_unescapeAt
1002
+ * @see UnicodeString#unescape()
1003
+ * @see UnicodeString#unescapeAt()
1004
+ * @stable ICU 2.0
1005
+ */
1006
+ U_STABLE int32_t U_EXPORT2
1007
+ u_unescape(const char *src,
1008
+ UChar *dest, int32_t destCapacity);
1009
+
1010
+ U_CDECL_BEGIN
1011
+ /**
1012
+ * Callback function for u_unescapeAt() that returns a character of
1013
+ * the source text given an offset and a context pointer. The context
1014
+ * pointer will be whatever is passed into u_unescapeAt().
1015
+ *
1016
+ * @param offset pointer to the offset that will be passed to u_unescapeAt().
1017
+ * @param context an opaque pointer passed directly into u_unescapeAt()
1018
+ * @return the character represented by the escape sequence at
1019
+ * offset
1020
+ * @see u_unescapeAt
1021
+ * @stable ICU 2.0
1022
+ */
1023
+ typedef UChar (U_CALLCONV *UNESCAPE_CHAR_AT)(int32_t offset, void *context);
1024
+ U_CDECL_END
1025
+
1026
+ /**
1027
+ * Unescape a single sequence. The character at offset-1 is assumed
1028
+ * (without checking) to be a backslash. This method takes a callback
1029
+ * pointer to a function that returns the UChar at a given offset. By
1030
+ * varying this callback, ICU functions are able to unescape char*
1031
+ * strings, UnicodeString objects, and UFILE pointers.
1032
+ *
1033
+ * If offset is out of range, or if the escape sequence is ill-formed,
1034
+ * (UChar32)0xFFFFFFFF is returned. See documentation of u_unescape()
1035
+ * for a list of recognized sequences.
1036
+ *
1037
+ * @param charAt callback function that returns a UChar of the source
1038
+ * text given an offset and a context pointer.
1039
+ * @param offset pointer to the offset that will be passed to charAt.
1040
+ * The offset value will be updated upon return to point after the
1041
+ * last parsed character of the escape sequence. On error the offset
1042
+ * is unchanged.
1043
+ * @param length the number of characters in the source text. The
1044
+ * last character of the source text is considered to be at offset
1045
+ * length-1.
1046
+ * @param context an opaque pointer passed directly into charAt.
1047
+ * @return the character represented by the escape sequence at
1048
+ * offset, or (UChar32)0xFFFFFFFF on error.
1049
+ * @see u_unescape()
1050
+ * @see UnicodeString#unescape()
1051
+ * @see UnicodeString#unescapeAt()
1052
+ * @stable ICU 2.0
1053
+ */
1054
+ U_STABLE UChar32 U_EXPORT2
1055
+ u_unescapeAt(UNESCAPE_CHAR_AT charAt,
1056
+ int32_t *offset,
1057
+ int32_t length,
1058
+ void *context);
1059
+
1060
+ /**
1061
+ * Uppercase the characters in a string.
1062
+ * Casing is locale-dependent and context-sensitive.
1063
+ * The result may be longer or shorter than the original.
1064
+ * The source string and the destination buffer are allowed to overlap.
1065
+ *
1066
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1067
+ * the buffer is large enough.
1068
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1069
+ * dest may be NULL and the function will only return the length of the result
1070
+ * without writing any of the result string.
1071
+ * @param src The original string
1072
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1073
+ * @param locale The locale to consider, or "" for the root locale or NULL for the default locale.
1074
+ * @param pErrorCode Must be a valid pointer to an error code value,
1075
+ * which must not indicate a failure before the function call.
1076
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
1077
+ * only some of the result was written to the destination buffer.
1078
+ * @stable ICU 2.0
1079
+ */
1080
+ U_STABLE int32_t U_EXPORT2
1081
+ u_strToUpper(UChar *dest, int32_t destCapacity,
1082
+ const UChar *src, int32_t srcLength,
1083
+ const char *locale,
1084
+ UErrorCode *pErrorCode);
1085
+
1086
+ /**
1087
+ * Lowercase the characters in a string.
1088
+ * Casing is locale-dependent and context-sensitive.
1089
+ * The result may be longer or shorter than the original.
1090
+ * The source string and the destination buffer are allowed to overlap.
1091
+ *
1092
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1093
+ * the buffer is large enough.
1094
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1095
+ * dest may be NULL and the function will only return the length of the result
1096
+ * without writing any of the result string.
1097
+ * @param src The original string
1098
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1099
+ * @param locale The locale to consider, or "" for the root locale or NULL for the default locale.
1100
+ * @param pErrorCode Must be a valid pointer to an error code value,
1101
+ * which must not indicate a failure before the function call.
1102
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
1103
+ * only some of the result was written to the destination buffer.
1104
+ * @stable ICU 2.0
1105
+ */
1106
+ U_STABLE int32_t U_EXPORT2
1107
+ u_strToLower(UChar *dest, int32_t destCapacity,
1108
+ const UChar *src, int32_t srcLength,
1109
+ const char *locale,
1110
+ UErrorCode *pErrorCode);
1111
+
1112
+ #if !UCONFIG_NO_BREAK_ITERATION
1113
+
1114
+ /**
1115
+ * Titlecase a string.
1116
+ * Casing is locale-dependent and context-sensitive.
1117
+ * Titlecasing uses a break iterator to find the first characters of words
1118
+ * that are to be titlecased. It titlecases those characters and lowercases
1119
+ * all others.
1120
+ *
1121
+ * The titlecase break iterator can be provided to customize for arbitrary
1122
+ * styles, using rules and dictionaries beyond the standard iterators.
1123
+ * It may be more efficient to always provide an iterator to avoid
1124
+ * opening and closing one for each string.
1125
+ * The standard titlecase iterator for the root locale implements the
1126
+ * algorithm of Unicode TR 21.
1127
+ *
1128
+ * This function uses only the setText(), first() and next() methods of the
1129
+ * provided break iterator.
1130
+ *
1131
+ * The result may be longer or shorter than the original.
1132
+ * The source string and the destination buffer are allowed to overlap.
1133
+ *
1134
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1135
+ * the buffer is large enough.
1136
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1137
+ * dest may be NULL and the function will only return the length of the result
1138
+ * without writing any of the result string.
1139
+ * @param src The original string
1140
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1141
+ * @param titleIter A break iterator to find the first characters of words
1142
+ * that are to be titlecased.
1143
+ * If none is provided (NULL), then a standard titlecase
1144
+ * break iterator is opened.
1145
+ * @param locale The locale to consider, or "" for the root locale or NULL for the default locale.
1146
+ * @param pErrorCode Must be a valid pointer to an error code value,
1147
+ * which must not indicate a failure before the function call.
1148
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
1149
+ * only some of the result was written to the destination buffer.
1150
+ * @stable ICU 2.1
1151
+ */
1152
+ U_STABLE int32_t U_EXPORT2
1153
+ u_strToTitle(UChar *dest, int32_t destCapacity,
1154
+ const UChar *src, int32_t srcLength,
1155
+ UBreakIterator *titleIter,
1156
+ const char *locale,
1157
+ UErrorCode *pErrorCode);
1158
+
1159
+ #endif
1160
+
1161
+ /**
1162
+ * Case-folds the characters in a string.
1163
+ *
1164
+ * Case-folding is locale-independent and not context-sensitive,
1165
+ * but there is an option for whether to include or exclude mappings for dotted I
1166
+ * and dotless i that are marked with 'T' in CaseFolding.txt.
1167
+ *
1168
+ * The result may be longer or shorter than the original.
1169
+ * The source string and the destination buffer are allowed to overlap.
1170
+ *
1171
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1172
+ * the buffer is large enough.
1173
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1174
+ * dest may be NULL and the function will only return the length of the result
1175
+ * without writing any of the result string.
1176
+ * @param src The original string
1177
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1178
+ * @param options Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
1179
+ * @param pErrorCode Must be a valid pointer to an error code value,
1180
+ * which must not indicate a failure before the function call.
1181
+ * @return The length of the result string. It may be greater than destCapacity. In that case,
1182
+ * only some of the result was written to the destination buffer.
1183
+ * @stable ICU 2.0
1184
+ */
1185
+ U_STABLE int32_t U_EXPORT2
1186
+ u_strFoldCase(UChar *dest, int32_t destCapacity,
1187
+ const UChar *src, int32_t srcLength,
1188
+ uint32_t options,
1189
+ UErrorCode *pErrorCode);
1190
+
1191
+ #if defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION
1192
+ /**
1193
+ * Convert a UTF-16 string to a wchar_t string.
1194
+ * If it is known at compile time that wchar_t strings are in UTF-16 or UTF-32, then
1195
+ * this function simply calls the fast, dedicated function for that.
1196
+ * Otherwise, two conversions UTF-16 -> default charset -> wchar_t* are performed.
1197
+ *
1198
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1199
+ * the buffer is large enough.
1200
+ * @param destCapacity The size of the buffer (number of wchar_t's). If it is 0, then
1201
+ * dest may be NULL and the function will only return the length of the
1202
+ * result without writing any of the result string (pre-flighting).
1203
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1204
+ * pDestLength!=NULL then *pDestLength is always set to the
1205
+ * number of output units corresponding to the transformation of
1206
+ * all the input units, even in case of a buffer overflow.
1207
+ * @param src The original source string
1208
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1209
+ * @param pErrorCode Must be a valid pointer to an error code value,
1210
+ * which must not indicate a failure before the function call.
1211
+ * @return The pointer to destination buffer.
1212
+ * @stable ICU 2.0
1213
+ */
1214
+ U_STABLE wchar_t* U_EXPORT2
1215
+ u_strToWCS(wchar_t *dest,
1216
+ int32_t destCapacity,
1217
+ int32_t *pDestLength,
1218
+ const UChar *src,
1219
+ int32_t srcLength,
1220
+ UErrorCode *pErrorCode);
1221
+ /**
1222
+ * Convert a wchar_t string to UTF-16.
1223
+ * If it is known at compile time that wchar_t strings are in UTF-16 or UTF-32, then
1224
+ * this function simply calls the fast, dedicated function for that.
1225
+ * Otherwise, two conversions wchar_t* -> default charset -> UTF-16 are performed.
1226
+ *
1227
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1228
+ * the buffer is large enough.
1229
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1230
+ * dest may be NULL and the function will only return the length of the
1231
+ * result without writing any of the result string (pre-flighting).
1232
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1233
+ * pDestLength!=NULL then *pDestLength is always set to the
1234
+ * number of output units corresponding to the transformation of
1235
+ * all the input units, even in case of a buffer overflow.
1236
+ * @param src The original source string
1237
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1238
+ * @param pErrorCode Must be a valid pointer to an error code value,
1239
+ * which must not indicate a failure before the function call.
1240
+ * @return The pointer to destination buffer.
1241
+ * @stable ICU 2.0
1242
+ */
1243
+ U_STABLE UChar* U_EXPORT2
1244
+ u_strFromWCS(UChar *dest,
1245
+ int32_t destCapacity,
1246
+ int32_t *pDestLength,
1247
+ const wchar_t *src,
1248
+ int32_t srcLength,
1249
+ UErrorCode *pErrorCode);
1250
+ #endif /* defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION */
1251
+
1252
+ /**
1253
+ * Convert a UTF-16 string to UTF-8.
1254
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
1255
+ *
1256
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1257
+ * the buffer is large enough.
1258
+ * @param destCapacity The size of the buffer (number of chars). If it is 0, then
1259
+ * dest may be NULL and the function will only return the length of the
1260
+ * result without writing any of the result string (pre-flighting).
1261
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1262
+ * pDestLength!=NULL then *pDestLength is always set to the
1263
+ * number of output units corresponding to the transformation of
1264
+ * all the input units, even in case of a buffer overflow.
1265
+ * @param src The original source string
1266
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1267
+ * @param pErrorCode Must be a valid pointer to an error code value,
1268
+ * which must not indicate a failure before the function call.
1269
+ * @return The pointer to destination buffer.
1270
+ * @stable ICU 2.0
1271
+ * @see u_strToUTF8WithSub
1272
+ * @see u_strFromUTF8
1273
+ */
1274
+ U_STABLE char* U_EXPORT2
1275
+ u_strToUTF8(char *dest,
1276
+ int32_t destCapacity,
1277
+ int32_t *pDestLength,
1278
+ const UChar *src,
1279
+ int32_t srcLength,
1280
+ UErrorCode *pErrorCode);
1281
+
1282
+ /**
1283
+ * Convert a UTF-8 string to UTF-16.
1284
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
1285
+ *
1286
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1287
+ * the buffer is large enough.
1288
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1289
+ * dest may be NULL and the function will only return the length of the
1290
+ * result without writing any of the result string (pre-flighting).
1291
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1292
+ * pDestLength!=NULL then *pDestLength is always set to the
1293
+ * number of output units corresponding to the transformation of
1294
+ * all the input units, even in case of a buffer overflow.
1295
+ * @param src The original source string
1296
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1297
+ * @param pErrorCode Must be a valid pointer to an error code value,
1298
+ * which must not indicate a failure before the function call.
1299
+ * @return The pointer to destination buffer.
1300
+ * @stable ICU 2.0
1301
+ * @see u_strFromUTF8WithSub
1302
+ * @see u_strFromUTF8Lenient
1303
+ */
1304
+ U_STABLE UChar* U_EXPORT2
1305
+ u_strFromUTF8(UChar *dest,
1306
+ int32_t destCapacity,
1307
+ int32_t *pDestLength,
1308
+ const char *src,
1309
+ int32_t srcLength,
1310
+ UErrorCode *pErrorCode);
1311
+
1312
+ /**
1313
+ * Convert a UTF-16 string to UTF-8.
1314
+ *
1315
+ * Same as u_strToUTF8() except for the additional subchar which is output for
1316
+ * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code.
1317
+ * With subchar==U_SENTINEL, this function behaves exactly like u_strToUTF8().
1318
+ *
1319
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1320
+ * the buffer is large enough.
1321
+ * @param destCapacity The size of the buffer (number of chars). If it is 0, then
1322
+ * dest may be NULL and the function will only return the length of the
1323
+ * result without writing any of the result string (pre-flighting).
1324
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1325
+ * pDestLength!=NULL then *pDestLength is always set to the
1326
+ * number of output units corresponding to the transformation of
1327
+ * all the input units, even in case of a buffer overflow.
1328
+ * @param src The original source string
1329
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1330
+ * @param subchar The substitution character to use in place of an illegal input sequence,
1331
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
1332
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
1333
+ * except for surrogate code points (U+D800..U+DFFF).
1334
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
1335
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
1336
+ * Set to 0 if no substitutions occur or subchar<0.
1337
+ * pNumSubstitutions can be NULL.
1338
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
1339
+ * pass the U_SUCCESS() test, or else the function returns
1340
+ * immediately. Check for U_FAILURE() on output or use with
1341
+ * function chaining. (See User Guide for details.)
1342
+ * @return The pointer to destination buffer.
1343
+ * @see u_strToUTF8
1344
+ * @see u_strFromUTF8WithSub
1345
+ * @stable ICU 3.6
1346
+ */
1347
+ U_STABLE char* U_EXPORT2
1348
+ u_strToUTF8WithSub(char *dest,
1349
+ int32_t destCapacity,
1350
+ int32_t *pDestLength,
1351
+ const UChar *src,
1352
+ int32_t srcLength,
1353
+ UChar32 subchar, int32_t *pNumSubstitutions,
1354
+ UErrorCode *pErrorCode);
1355
+
1356
+ /**
1357
+ * Convert a UTF-8 string to UTF-16.
1358
+ *
1359
+ * Same as u_strFromUTF8() except for the additional subchar which is output for
1360
+ * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code.
1361
+ * With subchar==U_SENTINEL, this function behaves exactly like u_strFromUTF8().
1362
+ *
1363
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1364
+ * the buffer is large enough.
1365
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1366
+ * dest may be NULL and the function will only return the length of the
1367
+ * result without writing any of the result string (pre-flighting).
1368
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1369
+ * pDestLength!=NULL then *pDestLength is always set to the
1370
+ * number of output units corresponding to the transformation of
1371
+ * all the input units, even in case of a buffer overflow.
1372
+ * @param src The original source string
1373
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1374
+ * @param subchar The substitution character to use in place of an illegal input sequence,
1375
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
1376
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
1377
+ * except for surrogate code points (U+D800..U+DFFF).
1378
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
1379
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
1380
+ * Set to 0 if no substitutions occur or subchar<0.
1381
+ * pNumSubstitutions can be NULL.
1382
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
1383
+ * pass the U_SUCCESS() test, or else the function returns
1384
+ * immediately. Check for U_FAILURE() on output or use with
1385
+ * function chaining. (See User Guide for details.)
1386
+ * @return The pointer to destination buffer.
1387
+ * @see u_strFromUTF8
1388
+ * @see u_strFromUTF8Lenient
1389
+ * @see u_strToUTF8WithSub
1390
+ * @stable ICU 3.6
1391
+ */
1392
+ U_STABLE UChar* U_EXPORT2
1393
+ u_strFromUTF8WithSub(UChar *dest,
1394
+ int32_t destCapacity,
1395
+ int32_t *pDestLength,
1396
+ const char *src,
1397
+ int32_t srcLength,
1398
+ UChar32 subchar, int32_t *pNumSubstitutions,
1399
+ UErrorCode *pErrorCode);
1400
+
1401
+ /**
1402
+ * Convert a UTF-8 string to UTF-16.
1403
+ *
1404
+ * Same as u_strFromUTF8() except that this function is designed to be very fast,
1405
+ * which it achieves by being lenient about malformed UTF-8 sequences.
1406
+ * This function is intended for use in environments where UTF-8 text is
1407
+ * expected to be well-formed.
1408
+ *
1409
+ * Its semantics are:
1410
+ * - Well-formed UTF-8 text is correctly converted to well-formed UTF-16 text.
1411
+ * - The function will not read beyond the input string, nor write beyond
1412
+ * the destCapacity.
1413
+ * - Malformed UTF-8 results in "garbage" 16-bit Unicode strings which may not
1414
+ * be well-formed UTF-16.
1415
+ * The function will resynchronize to valid code point boundaries
1416
+ * within a small number of code points after an illegal sequence.
1417
+ * - Non-shortest forms are not detected and will result in "spoofing" output.
1418
+ *
1419
+ * For further performance improvement, if srcLength is given (>=0),
1420
+ * then it must be destCapacity>=srcLength.
1421
+ *
1422
+ * There is no inverse u_strToUTF8Lenient() function because there is practically
1423
+ * no performance gain from not checking that a UTF-16 string is well-formed.
1424
+ *
1425
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1426
+ * the buffer is large enough.
1427
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1428
+ * dest may be NULL and the function will only return the length of the
1429
+ * result without writing any of the result string (pre-flighting).
1430
+ * Unlike for other ICU functions, if srcLength>=0 then it
1431
+ * must be destCapacity>=srcLength.
1432
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1433
+ * pDestLength!=NULL then *pDestLength is always set to the
1434
+ * number of output units corresponding to the transformation of
1435
+ * all the input units, even in case of a buffer overflow.
1436
+ * Unlike for other ICU functions, if srcLength>=0 but
1437
+ * destCapacity<srcLength, then *pDestLength will be set to srcLength
1438
+ * (and U_BUFFER_OVERFLOW_ERROR will be set)
1439
+ * regardless of the actual result length.
1440
+ * @param src The original source string
1441
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1442
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
1443
+ * pass the U_SUCCESS() test, or else the function returns
1444
+ * immediately. Check for U_FAILURE() on output or use with
1445
+ * function chaining. (See User Guide for details.)
1446
+ * @return The pointer to destination buffer.
1447
+ * @see u_strFromUTF8
1448
+ * @see u_strFromUTF8WithSub
1449
+ * @see u_strToUTF8WithSub
1450
+ * @stable ICU 3.6
1451
+ */
1452
+ U_STABLE UChar * U_EXPORT2
1453
+ u_strFromUTF8Lenient(UChar *dest,
1454
+ int32_t destCapacity,
1455
+ int32_t *pDestLength,
1456
+ const char *src,
1457
+ int32_t srcLength,
1458
+ UErrorCode *pErrorCode);
1459
+
1460
+ /**
1461
+ * Convert a UTF-16 string to UTF-32.
1462
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
1463
+ *
1464
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1465
+ * the buffer is large enough.
1466
+ * @param destCapacity The size of the buffer (number of UChar32s). If it is 0, then
1467
+ * dest may be NULL and the function will only return the length of the
1468
+ * result without writing any of the result string (pre-flighting).
1469
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1470
+ * pDestLength!=NULL then *pDestLength is always set to the
1471
+ * number of output units corresponding to the transformation of
1472
+ * all the input units, even in case of a buffer overflow.
1473
+ * @param src The original source string
1474
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1475
+ * @param pErrorCode Must be a valid pointer to an error code value,
1476
+ * which must not indicate a failure before the function call.
1477
+ * @return The pointer to destination buffer.
1478
+ * @see u_strToUTF32WithSub
1479
+ * @see u_strFromUTF32
1480
+ * @stable ICU 2.0
1481
+ */
1482
+ U_STABLE UChar32* U_EXPORT2
1483
+ u_strToUTF32(UChar32 *dest,
1484
+ int32_t destCapacity,
1485
+ int32_t *pDestLength,
1486
+ const UChar *src,
1487
+ int32_t srcLength,
1488
+ UErrorCode *pErrorCode);
1489
+
1490
+ /**
1491
+ * Convert a UTF-32 string to UTF-16.
1492
+ * If the input string is not well-formed, then the U_INVALID_CHAR_FOUND error code is set.
1493
+ *
1494
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1495
+ * the buffer is large enough.
1496
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1497
+ * dest may be NULL and the function will only return the length of the
1498
+ * result without writing any of the result string (pre-flighting).
1499
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1500
+ * pDestLength!=NULL then *pDestLength is always set to the
1501
+ * number of output units corresponding to the transformation of
1502
+ * all the input units, even in case of a buffer overflow.
1503
+ * @param src The original source string
1504
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1505
+ * @param pErrorCode Must be a valid pointer to an error code value,
1506
+ * which must not indicate a failure before the function call.
1507
+ * @return The pointer to destination buffer.
1508
+ * @see u_strFromUTF32WithSub
1509
+ * @see u_strToUTF32
1510
+ * @stable ICU 2.0
1511
+ */
1512
+ U_STABLE UChar* U_EXPORT2
1513
+ u_strFromUTF32(UChar *dest,
1514
+ int32_t destCapacity,
1515
+ int32_t *pDestLength,
1516
+ const UChar32 *src,
1517
+ int32_t srcLength,
1518
+ UErrorCode *pErrorCode);
1519
+
1520
+ /**
1521
+ * Convert a UTF-16 string to UTF-32.
1522
+ *
1523
+ * Same as u_strToUTF32() except for the additional subchar which is output for
1524
+ * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code.
1525
+ * With subchar==U_SENTINEL, this function behaves exactly like u_strToUTF32().
1526
+ *
1527
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1528
+ * the buffer is large enough.
1529
+ * @param destCapacity The size of the buffer (number of UChar32s). If it is 0, then
1530
+ * dest may be NULL and the function will only return the length of the
1531
+ * result without writing any of the result string (pre-flighting).
1532
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1533
+ * pDestLength!=NULL then *pDestLength is always set to the
1534
+ * number of output units corresponding to the transformation of
1535
+ * all the input units, even in case of a buffer overflow.
1536
+ * @param src The original source string
1537
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1538
+ * @param subchar The substitution character to use in place of an illegal input sequence,
1539
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
1540
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
1541
+ * except for surrogate code points (U+D800..U+DFFF).
1542
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
1543
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
1544
+ * Set to 0 if no substitutions occur or subchar<0.
1545
+ * pNumSubstitutions can be NULL.
1546
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
1547
+ * pass the U_SUCCESS() test, or else the function returns
1548
+ * immediately. Check for U_FAILURE() on output or use with
1549
+ * function chaining. (See User Guide for details.)
1550
+ * @return The pointer to destination buffer.
1551
+ * @see u_strToUTF32
1552
+ * @see u_strFromUTF32WithSub
1553
+ * @stable ICU 4.2
1554
+ */
1555
+ U_STABLE UChar32* U_EXPORT2
1556
+ u_strToUTF32WithSub(UChar32 *dest,
1557
+ int32_t destCapacity,
1558
+ int32_t *pDestLength,
1559
+ const UChar *src,
1560
+ int32_t srcLength,
1561
+ UChar32 subchar, int32_t *pNumSubstitutions,
1562
+ UErrorCode *pErrorCode);
1563
+
1564
+ /**
1565
+ * Convert a UTF-32 string to UTF-16.
1566
+ *
1567
+ * Same as u_strFromUTF32() except for the additional subchar which is output for
1568
+ * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code.
1569
+ * With subchar==U_SENTINEL, this function behaves exactly like u_strFromUTF32().
1570
+ *
1571
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1572
+ * the buffer is large enough.
1573
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1574
+ * dest may be NULL and the function will only return the length of the
1575
+ * result without writing any of the result string (pre-flighting).
1576
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1577
+ * pDestLength!=NULL then *pDestLength is always set to the
1578
+ * number of output units corresponding to the transformation of
1579
+ * all the input units, even in case of a buffer overflow.
1580
+ * @param src The original source string
1581
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1582
+ * @param subchar The substitution character to use in place of an illegal input sequence,
1583
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
1584
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
1585
+ * except for surrogate code points (U+D800..U+DFFF).
1586
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
1587
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
1588
+ * Set to 0 if no substitutions occur or subchar<0.
1589
+ * pNumSubstitutions can be NULL.
1590
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
1591
+ * pass the U_SUCCESS() test, or else the function returns
1592
+ * immediately. Check for U_FAILURE() on output or use with
1593
+ * function chaining. (See User Guide for details.)
1594
+ * @return The pointer to destination buffer.
1595
+ * @see u_strFromUTF32
1596
+ * @see u_strToUTF32WithSub
1597
+ * @stable ICU 4.2
1598
+ */
1599
+ U_STABLE UChar* U_EXPORT2
1600
+ u_strFromUTF32WithSub(UChar *dest,
1601
+ int32_t destCapacity,
1602
+ int32_t *pDestLength,
1603
+ const UChar32 *src,
1604
+ int32_t srcLength,
1605
+ UChar32 subchar, int32_t *pNumSubstitutions,
1606
+ UErrorCode *pErrorCode);
1607
+
1608
+ /**
1609
+ * Convert a 16-bit Unicode string to Java Modified UTF-8.
1610
+ * See http://java.sun.com/javase/6/docs/api/java/io/DataInput.html#modified-utf-8
1611
+ *
1612
+ * This function behaves according to the documentation for Java DataOutput.writeUTF()
1613
+ * except that it does not encode the output length in the destination buffer
1614
+ * and does not have an output length restriction.
1615
+ * See http://java.sun.com/javase/6/docs/api/java/io/DataOutput.html#writeUTF(java.lang.String)
1616
+ *
1617
+ * The input string need not be well-formed UTF-16.
1618
+ * (Therefore there is no subchar parameter.)
1619
+ *
1620
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1621
+ * the buffer is large enough.
1622
+ * @param destCapacity The size of the buffer (number of chars). If it is 0, then
1623
+ * dest may be NULL and the function will only return the length of the
1624
+ * result without writing any of the result string (pre-flighting).
1625
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1626
+ * pDestLength!=NULL then *pDestLength is always set to the
1627
+ * number of output units corresponding to the transformation of
1628
+ * all the input units, even in case of a buffer overflow.
1629
+ * @param src The original source string
1630
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1631
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
1632
+ * pass the U_SUCCESS() test, or else the function returns
1633
+ * immediately. Check for U_FAILURE() on output or use with
1634
+ * function chaining. (See User Guide for details.)
1635
+ * @return The pointer to destination buffer.
1636
+ * @stable ICU 4.4
1637
+ * @see u_strToUTF8WithSub
1638
+ * @see u_strFromJavaModifiedUTF8WithSub
1639
+ */
1640
+ U_STABLE char* U_EXPORT2
1641
+ u_strToJavaModifiedUTF8(
1642
+ char *dest,
1643
+ int32_t destCapacity,
1644
+ int32_t *pDestLength,
1645
+ const UChar *src,
1646
+ int32_t srcLength,
1647
+ UErrorCode *pErrorCode);
1648
+
1649
+ /**
1650
+ * Convert a Java Modified UTF-8 string to a 16-bit Unicode string.
1651
+ * If the input string is not well-formed and no substitution char is specified,
1652
+ * then the U_INVALID_CHAR_FOUND error code is set.
1653
+ *
1654
+ * This function behaves according to the documentation for Java DataInput.readUTF()
1655
+ * except that it takes a length parameter rather than
1656
+ * interpreting the first two input bytes as the length.
1657
+ * See http://java.sun.com/javase/6/docs/api/java/io/DataInput.html#readUTF()
1658
+ *
1659
+ * The output string may not be well-formed UTF-16.
1660
+ *
1661
+ * @param dest A buffer for the result string. The result will be zero-terminated if
1662
+ * the buffer is large enough.
1663
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
1664
+ * dest may be NULL and the function will only return the length of the
1665
+ * result without writing any of the result string (pre-flighting).
1666
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
1667
+ * pDestLength!=NULL then *pDestLength is always set to the
1668
+ * number of output units corresponding to the transformation of
1669
+ * all the input units, even in case of a buffer overflow.
1670
+ * @param src The original source string
1671
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
1672
+ * @param subchar The substitution character to use in place of an illegal input sequence,
1673
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
1674
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
1675
+ * except for surrogate code points (U+D800..U+DFFF).
1676
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
1677
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
1678
+ * Set to 0 if no substitutions occur or subchar<0.
1679
+ * pNumSubstitutions can be NULL.
1680
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
1681
+ * pass the U_SUCCESS() test, or else the function returns
1682
+ * immediately. Check for U_FAILURE() on output or use with
1683
+ * function chaining. (See User Guide for details.)
1684
+ * @return The pointer to destination buffer.
1685
+ * @see u_strFromUTF8WithSub
1686
+ * @see u_strFromUTF8Lenient
1687
+ * @see u_strToJavaModifiedUTF8
1688
+ * @stable ICU 4.4
1689
+ */
1690
+ U_STABLE UChar* U_EXPORT2
1691
+ u_strFromJavaModifiedUTF8WithSub(
1692
+ UChar *dest,
1693
+ int32_t destCapacity,
1694
+ int32_t *pDestLength,
1695
+ const char *src,
1696
+ int32_t srcLength,
1697
+ UChar32 subchar, int32_t *pNumSubstitutions,
1698
+ UErrorCode *pErrorCode);
1699
+
1700
+ #endif