pango 2.2.4-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (530) hide show
  1. checksums.yaml +7 -0
  2. data/README +33 -0
  3. data/Rakefile +65 -0
  4. data/ext/pango/depend +12 -0
  5. data/ext/pango/extconf.rb +90 -0
  6. data/ext/pango/pango.def +18 -0
  7. data/ext/pango/rbpango.c +318 -0
  8. data/ext/pango/rbpango.h +96 -0
  9. data/ext/pango/rbpangoanalysis.c +218 -0
  10. data/ext/pango/rbpangoattribute.c +499 -0
  11. data/ext/pango/rbpangoattriterator.c +141 -0
  12. data/ext/pango/rbpangoattrlist.c +101 -0
  13. data/ext/pango/rbpangocairo.c +122 -0
  14. data/ext/pango/rbpangocairocontext.c +131 -0
  15. data/ext/pango/rbpangocolor.c +120 -0
  16. data/ext/pango/rbpangocontext.c +309 -0
  17. data/ext/pango/rbpangoconversions.h +111 -0
  18. data/ext/pango/rbpangocoverage.c +106 -0
  19. data/ext/pango/rbpangoengine.c +73 -0
  20. data/ext/pango/rbpangofont.c +110 -0
  21. data/ext/pango/rbpangofontdescription.c +282 -0
  22. data/ext/pango/rbpangofontface.c +73 -0
  23. data/ext/pango/rbpangofontfamily.c +79 -0
  24. data/ext/pango/rbpangofontmap.c +102 -0
  25. data/ext/pango/rbpangofontmetrics.c +85 -0
  26. data/ext/pango/rbpangofontset.c +69 -0
  27. data/ext/pango/rbpangofontsetsimple.c +60 -0
  28. data/ext/pango/rbpangoglyphinfo.c +123 -0
  29. data/ext/pango/rbpangoglyphitem.c +125 -0
  30. data/ext/pango/rbpangoglyphstring.c +151 -0
  31. data/ext/pango/rbpangogravity.c +54 -0
  32. data/ext/pango/rbpangoitem.c +95 -0
  33. data/ext/pango/rbpangolanguage.c +86 -0
  34. data/ext/pango/rbpangolayout.c +572 -0
  35. data/ext/pango/rbpangolayoutiter.c +189 -0
  36. data/ext/pango/rbpangolayoutline.c +239 -0
  37. data/ext/pango/rbpangologattr.c +109 -0
  38. data/ext/pango/rbpangomatrix.c +143 -0
  39. data/ext/pango/rbpangoprivate.h +49 -0
  40. data/ext/pango/rbpangorectangle.c +170 -0
  41. data/ext/pango/rbpangorenderer.c +193 -0
  42. data/ext/pango/rbpangoscript.c +84 -0
  43. data/ext/pango/rbpangoscriptiter.c +92 -0
  44. data/ext/pango/rbpangotabarray.c +128 -0
  45. data/extconf.rb +49 -0
  46. data/lib/2.0/pango.so +0 -0
  47. data/lib/2.1/pango.so +0 -0
  48. data/lib/2.2/pango.so +0 -0
  49. data/lib/pango.rb +79 -0
  50. data/sample/attribute.rb +82 -0
  51. data/sample/break.rb +28 -0
  52. data/sample/gdk_layout.rb +27 -0
  53. data/sample/glyphstring.rb +61 -0
  54. data/sample/item.rb +37 -0
  55. data/sample/label.rb +23 -0
  56. data/sample/layout.rb +102 -0
  57. data/sample/pango_cairo.rb +66 -0
  58. data/sample/parse.rb +33 -0
  59. data/sample/sample.txt +10 -0
  60. data/sample/script.rb +23 -0
  61. data/test/pango-test-utils.rb +9 -0
  62. data/test/run-test.rb +28 -0
  63. data/test/test-analysis.rb +26 -0
  64. data/test/test-attribute.rb +19 -0
  65. data/test/test-color.rb +47 -0
  66. data/test/test-language.rb +7 -0
  67. data/test/test-layout.rb +34 -0
  68. data/test/test-log-attr.rb +26 -0
  69. data/test/test-matrix.rb +26 -0
  70. data/test/test-rectangle.rb +26 -0
  71. data/vendor/local/bin/derb.exe +0 -0
  72. data/vendor/local/bin/genbrk.exe +0 -0
  73. data/vendor/local/bin/genccode.exe +0 -0
  74. data/vendor/local/bin/gencfu.exe +0 -0
  75. data/vendor/local/bin/gencmn.exe +0 -0
  76. data/vendor/local/bin/gencnval.exe +0 -0
  77. data/vendor/local/bin/gendict.exe +0 -0
  78. data/vendor/local/bin/gennorm2.exe +0 -0
  79. data/vendor/local/bin/genrb.exe +0 -0
  80. data/vendor/local/bin/gensprep.exe +0 -0
  81. data/vendor/local/bin/hb-ot-shape-closure.exe +0 -0
  82. data/vendor/local/bin/hb-shape.exe +0 -0
  83. data/vendor/local/bin/hb-view.exe +0 -0
  84. data/vendor/local/bin/icu-config +820 -0
  85. data/vendor/local/bin/icuinfo.exe +0 -0
  86. data/vendor/local/bin/icupkg.exe +0 -0
  87. data/vendor/local/bin/libharfbuzz-0.dll +0 -0
  88. data/vendor/local/bin/libpango-1.0-0.dll +0 -0
  89. data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
  90. data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
  91. data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
  92. data/vendor/local/bin/makeconv.exe +0 -0
  93. data/vendor/local/bin/pango-querymodules.exe +0 -0
  94. data/vendor/local/bin/pango-view.exe +0 -0
  95. data/vendor/local/bin/pkgdata.exe +0 -0
  96. data/vendor/local/bin/uconv.exe +0 -0
  97. data/vendor/local/etc/pango/pango.modules +19 -0
  98. data/vendor/local/include/harfbuzz/hb-blob.h +126 -0
  99. data/vendor/local/include/harfbuzz/hb-buffer.h +344 -0
  100. data/vendor/local/include/harfbuzz/hb-common.h +344 -0
  101. data/vendor/local/include/harfbuzz/hb-deprecated.h +51 -0
  102. data/vendor/local/include/harfbuzz/hb-face.h +117 -0
  103. data/vendor/local/include/harfbuzz/hb-font.h +507 -0
  104. data/vendor/local/include/harfbuzz/hb-ft.h +62 -0
  105. data/vendor/local/include/harfbuzz/hb-glib.h +52 -0
  106. data/vendor/local/include/harfbuzz/hb-icu.h +52 -0
  107. data/vendor/local/include/harfbuzz/hb-ot-font.h +41 -0
  108. data/vendor/local/include/harfbuzz/hb-ot-layout.h +302 -0
  109. data/vendor/local/include/harfbuzz/hb-ot-shape.h +53 -0
  110. data/vendor/local/include/harfbuzz/hb-ot-tag.h +59 -0
  111. data/vendor/local/include/harfbuzz/hb-ot.h +43 -0
  112. data/vendor/local/include/harfbuzz/hb-set.h +154 -0
  113. data/vendor/local/include/harfbuzz/hb-shape-plan.h +89 -0
  114. data/vendor/local/include/harfbuzz/hb-shape.h +81 -0
  115. data/vendor/local/include/harfbuzz/hb-unicode.h +445 -0
  116. data/vendor/local/include/harfbuzz/hb-version.h +66 -0
  117. data/vendor/local/include/harfbuzz/hb.h +47 -0
  118. data/vendor/local/include/layout/LEFontInstance.h +550 -0
  119. data/vendor/local/include/layout/LEGlyphFilter.h +45 -0
  120. data/vendor/local/include/layout/LEGlyphStorage.h +546 -0
  121. data/vendor/local/include/layout/LEInsertionList.h +177 -0
  122. data/vendor/local/include/layout/LELanguages.h +112 -0
  123. data/vendor/local/include/layout/LEScripts.h +263 -0
  124. data/vendor/local/include/layout/LESwaps.h +100 -0
  125. data/vendor/local/include/layout/LETableReference.h +418 -0
  126. data/vendor/local/include/layout/LETypes.h +728 -0
  127. data/vendor/local/include/layout/LayoutEngine.h +518 -0
  128. data/vendor/local/include/layout/ParagraphLayout.h +747 -0
  129. data/vendor/local/include/layout/RunArrays.h +676 -0
  130. data/vendor/local/include/layout/loengine.h +225 -0
  131. data/vendor/local/include/layout/playout.h +466 -0
  132. data/vendor/local/include/layout/plruns.h +441 -0
  133. data/vendor/local/include/pango-1.0/pango/pango-attributes.h +514 -0
  134. data/vendor/local/include/pango-1.0/pango/pango-bidi-type.h +136 -0
  135. data/vendor/local/include/pango-1.0/pango/pango-break.h +173 -0
  136. data/vendor/local/include/pango-1.0/pango/pango-context.h +112 -0
  137. data/vendor/local/include/pango-1.0/pango/pango-coverage.h +79 -0
  138. data/vendor/local/include/pango-1.0/pango/pango-engine.h +429 -0
  139. data/vendor/local/include/pango-1.0/pango/pango-enum-types.h +69 -0
  140. data/vendor/local/include/pango-1.0/pango/pango-features.h +12 -0
  141. data/vendor/local/include/pango-1.0/pango/pango-font.h +622 -0
  142. data/vendor/local/include/pango-1.0/pango/pango-fontmap.h +167 -0
  143. data/vendor/local/include/pango-1.0/pango/pango-fontset.h +169 -0
  144. data/vendor/local/include/pango-1.0/pango/pango-glyph-item.h +158 -0
  145. data/vendor/local/include/pango-1.0/pango/pango-glyph.h +197 -0
  146. data/vendor/local/include/pango-1.0/pango/pango-gravity.h +128 -0
  147. data/vendor/local/include/pango-1.0/pango/pango-item.h +109 -0
  148. data/vendor/local/include/pango-1.0/pango/pango-language.h +61 -0
  149. data/vendor/local/include/pango-1.0/pango/pango-layout.h +340 -0
  150. data/vendor/local/include/pango-1.0/pango/pango-matrix.h +117 -0
  151. data/vendor/local/include/pango-1.0/pango/pango-modules.h +71 -0
  152. data/vendor/local/include/pango-1.0/pango/pango-ot.h +391 -0
  153. data/vendor/local/include/pango-1.0/pango/pango-renderer.h +260 -0
  154. data/vendor/local/include/pango-1.0/pango/pango-script.h +260 -0
  155. data/vendor/local/include/pango-1.0/pango/pango-tabs.h +87 -0
  156. data/vendor/local/include/pango-1.0/pango/pango-types.h +200 -0
  157. data/vendor/local/include/pango-1.0/pango/pango-utils.h +189 -0
  158. data/vendor/local/include/pango-1.0/pango/pango.h +48 -0
  159. data/vendor/local/include/pango-1.0/pango/pangocairo.h +169 -0
  160. data/vendor/local/include/pango-1.0/pango/pangofc-decoder.h +110 -0
  161. data/vendor/local/include/pango-1.0/pango/pangofc-font.h +153 -0
  162. data/vendor/local/include/pango-1.0/pango/pangofc-fontmap.h +289 -0
  163. data/vendor/local/include/pango-1.0/pango/pangoft2.h +133 -0
  164. data/vendor/local/include/pango-1.0/pango/pangowin32.h +128 -0
  165. data/vendor/local/include/unicode/alphaindex.h +752 -0
  166. data/vendor/local/include/unicode/appendable.h +232 -0
  167. data/vendor/local/include/unicode/basictz.h +214 -0
  168. data/vendor/local/include/unicode/brkiter.h +655 -0
  169. data/vendor/local/include/unicode/bytestream.h +257 -0
  170. data/vendor/local/include/unicode/bytestrie.h +519 -0
  171. data/vendor/local/include/unicode/bytestriebuilder.h +181 -0
  172. data/vendor/local/include/unicode/calendar.h +2519 -0
  173. data/vendor/local/include/unicode/caniter.h +208 -0
  174. data/vendor/local/include/unicode/chariter.h +722 -0
  175. data/vendor/local/include/unicode/choicfmt.h +594 -0
  176. data/vendor/local/include/unicode/coleitr.h +404 -0
  177. data/vendor/local/include/unicode/coll.h +1267 -0
  178. data/vendor/local/include/unicode/compactdecimalformat.h +330 -0
  179. data/vendor/local/include/unicode/curramt.h +130 -0
  180. data/vendor/local/include/unicode/currpinf.h +258 -0
  181. data/vendor/local/include/unicode/currunit.h +110 -0
  182. data/vendor/local/include/unicode/datefmt.h +883 -0
  183. data/vendor/local/include/unicode/dbbi.h +40 -0
  184. data/vendor/local/include/unicode/dcfmtsym.h +482 -0
  185. data/vendor/local/include/unicode/decimfmt.h +2479 -0
  186. data/vendor/local/include/unicode/docmain.h +215 -0
  187. data/vendor/local/include/unicode/dtfmtsym.h +912 -0
  188. data/vendor/local/include/unicode/dtintrv.h +158 -0
  189. data/vendor/local/include/unicode/dtitvfmt.h +985 -0
  190. data/vendor/local/include/unicode/dtitvinf.h +514 -0
  191. data/vendor/local/include/unicode/dtptngen.h +498 -0
  192. data/vendor/local/include/unicode/dtrule.h +250 -0
  193. data/vendor/local/include/unicode/enumset.h +64 -0
  194. data/vendor/local/include/unicode/errorcode.h +137 -0
  195. data/vendor/local/include/unicode/fieldpos.h +291 -0
  196. data/vendor/local/include/unicode/filteredbrk.h +131 -0
  197. data/vendor/local/include/unicode/fmtable.h +760 -0
  198. data/vendor/local/include/unicode/format.h +305 -0
  199. data/vendor/local/include/unicode/fpositer.h +117 -0
  200. data/vendor/local/include/unicode/gender.h +111 -0
  201. data/vendor/local/include/unicode/gregocal.h +777 -0
  202. data/vendor/local/include/unicode/icudataver.h +41 -0
  203. data/vendor/local/include/unicode/icuplug.h +371 -0
  204. data/vendor/local/include/unicode/idna.h +323 -0
  205. data/vendor/local/include/unicode/listformatter.h +167 -0
  206. data/vendor/local/include/unicode/localpointer.h +304 -0
  207. data/vendor/local/include/unicode/locdspnm.h +204 -0
  208. data/vendor/local/include/unicode/locid.h +815 -0
  209. data/vendor/local/include/unicode/measfmt.h +389 -0
  210. data/vendor/local/include/unicode/measunit.h +1443 -0
  211. data/vendor/local/include/unicode/measure.h +159 -0
  212. data/vendor/local/include/unicode/messagepattern.h +943 -0
  213. data/vendor/local/include/unicode/msgfmt.h +1093 -0
  214. data/vendor/local/include/unicode/normalizer2.h +658 -0
  215. data/vendor/local/include/unicode/normlzr.h +797 -0
  216. data/vendor/local/include/unicode/numfmt.h +1187 -0
  217. data/vendor/local/include/unicode/numsys.h +208 -0
  218. data/vendor/local/include/unicode/parseerr.h +92 -0
  219. data/vendor/local/include/unicode/parsepos.h +230 -0
  220. data/vendor/local/include/unicode/platform.h +751 -0
  221. data/vendor/local/include/unicode/plurfmt.h +615 -0
  222. data/vendor/local/include/unicode/plurrule.h +501 -0
  223. data/vendor/local/include/unicode/ptypes.h +126 -0
  224. data/vendor/local/include/unicode/putil.h +181 -0
  225. data/vendor/local/include/unicode/rbbi.h +782 -0
  226. data/vendor/local/include/unicode/rbnf.h +1032 -0
  227. data/vendor/local/include/unicode/rbtz.h +362 -0
  228. data/vendor/local/include/unicode/regex.h +1857 -0
  229. data/vendor/local/include/unicode/region.h +228 -0
  230. data/vendor/local/include/unicode/reldatefmt.h +498 -0
  231. data/vendor/local/include/unicode/rep.h +261 -0
  232. data/vendor/local/include/unicode/resbund.h +490 -0
  233. data/vendor/local/include/unicode/schriter.h +187 -0
  234. data/vendor/local/include/unicode/scientificformathelper.h +139 -0
  235. data/vendor/local/include/unicode/search.h +575 -0
  236. data/vendor/local/include/unicode/selfmt.h +367 -0
  237. data/vendor/local/include/unicode/simpletz.h +928 -0
  238. data/vendor/local/include/unicode/smpdtfmt.h +1592 -0
  239. data/vendor/local/include/unicode/sortkey.h +338 -0
  240. data/vendor/local/include/unicode/std_string.h +37 -0
  241. data/vendor/local/include/unicode/strenum.h +276 -0
  242. data/vendor/local/include/unicode/stringpiece.h +224 -0
  243. data/vendor/local/include/unicode/stringtriebuilder.h +402 -0
  244. data/vendor/local/include/unicode/stsearch.h +504 -0
  245. data/vendor/local/include/unicode/symtable.h +112 -0
  246. data/vendor/local/include/unicode/tblcoll.h +873 -0
  247. data/vendor/local/include/unicode/timezone.h +948 -0
  248. data/vendor/local/include/unicode/tmunit.h +129 -0
  249. data/vendor/local/include/unicode/tmutamt.h +168 -0
  250. data/vendor/local/include/unicode/tmutfmt.h +243 -0
  251. data/vendor/local/include/unicode/translit.h +1342 -0
  252. data/vendor/local/include/unicode/tzfmt.h +1098 -0
  253. data/vendor/local/include/unicode/tznames.h +404 -0
  254. data/vendor/local/include/unicode/tzrule.h +828 -0
  255. data/vendor/local/include/unicode/tztrans.h +195 -0
  256. data/vendor/local/include/unicode/ubidi.h +2186 -0
  257. data/vendor/local/include/unicode/ubrk.h +540 -0
  258. data/vendor/local/include/unicode/ucal.h +1560 -0
  259. data/vendor/local/include/unicode/ucasemap.h +423 -0
  260. data/vendor/local/include/unicode/ucat.h +158 -0
  261. data/vendor/local/include/unicode/uchar.h +3426 -0
  262. data/vendor/local/include/unicode/ucharstrie.h +576 -0
  263. data/vendor/local/include/unicode/ucharstriebuilder.h +185 -0
  264. data/vendor/local/include/unicode/uchriter.h +381 -0
  265. data/vendor/local/include/unicode/uclean.h +258 -0
  266. data/vendor/local/include/unicode/ucnv.h +2036 -0
  267. data/vendor/local/include/unicode/ucnv_cb.h +162 -0
  268. data/vendor/local/include/unicode/ucnv_err.h +463 -0
  269. data/vendor/local/include/unicode/ucnvsel.h +187 -0
  270. data/vendor/local/include/unicode/ucol.h +1474 -0
  271. data/vendor/local/include/unicode/ucoleitr.h +266 -0
  272. data/vendor/local/include/unicode/uconfig.h +430 -0
  273. data/vendor/local/include/unicode/ucsdet.h +413 -0
  274. data/vendor/local/include/unicode/ucurr.h +424 -0
  275. data/vendor/local/include/unicode/udat.h +1536 -0
  276. data/vendor/local/include/unicode/udata.h +430 -0
  277. data/vendor/local/include/unicode/udateintervalformat.h +181 -0
  278. data/vendor/local/include/unicode/udatpg.h +588 -0
  279. data/vendor/local/include/unicode/udisplaycontext.h +150 -0
  280. data/vendor/local/include/unicode/uenum.h +206 -0
  281. data/vendor/local/include/unicode/uformattable.h +280 -0
  282. data/vendor/local/include/unicode/ugender.h +82 -0
  283. data/vendor/local/include/unicode/uidna.h +762 -0
  284. data/vendor/local/include/unicode/uiter.h +707 -0
  285. data/vendor/local/include/unicode/uldnames.h +302 -0
  286. data/vendor/local/include/unicode/uloc.h +1256 -0
  287. data/vendor/local/include/unicode/ulocdata.h +277 -0
  288. data/vendor/local/include/unicode/umachine.h +356 -0
  289. data/vendor/local/include/unicode/umisc.h +60 -0
  290. data/vendor/local/include/unicode/umsg.h +623 -0
  291. data/vendor/local/include/unicode/unifilt.h +120 -0
  292. data/vendor/local/include/unicode/unifunct.h +125 -0
  293. data/vendor/local/include/unicode/unimatch.h +163 -0
  294. data/vendor/local/include/unicode/unirepl.h +97 -0
  295. data/vendor/local/include/unicode/uniset.h +1691 -0
  296. data/vendor/local/include/unicode/unistr.h +4470 -0
  297. data/vendor/local/include/unicode/unorm.h +561 -0
  298. data/vendor/local/include/unicode/unorm2.h +528 -0
  299. data/vendor/local/include/unicode/unum.h +1328 -0
  300. data/vendor/local/include/unicode/unumsys.h +170 -0
  301. data/vendor/local/include/unicode/uobject.h +320 -0
  302. data/vendor/local/include/unicode/upluralrules.h +145 -0
  303. data/vendor/local/include/unicode/uregex.h +1591 -0
  304. data/vendor/local/include/unicode/uregion.h +248 -0
  305. data/vendor/local/include/unicode/urename.h +1784 -0
  306. data/vendor/local/include/unicode/urep.h +155 -0
  307. data/vendor/local/include/unicode/ures.h +887 -0
  308. data/vendor/local/include/unicode/uscript.h +642 -0
  309. data/vendor/local/include/unicode/usearch.h +885 -0
  310. data/vendor/local/include/unicode/uset.h +1126 -0
  311. data/vendor/local/include/unicode/usetiter.h +318 -0
  312. data/vendor/local/include/unicode/ushape.h +474 -0
  313. data/vendor/local/include/unicode/uspoof.h +1064 -0
  314. data/vendor/local/include/unicode/usprep.h +269 -0
  315. data/vendor/local/include/unicode/ustdio.h +1018 -0
  316. data/vendor/local/include/unicode/ustream.h +68 -0
  317. data/vendor/local/include/unicode/ustring.h +1700 -0
  318. data/vendor/local/include/unicode/ustringtrie.h +95 -0
  319. data/vendor/local/include/unicode/utext.h +1600 -0
  320. data/vendor/local/include/unicode/utf.h +223 -0
  321. data/vendor/local/include/unicode/utf16.h +623 -0
  322. data/vendor/local/include/unicode/utf32.h +23 -0
  323. data/vendor/local/include/unicode/utf8.h +824 -0
  324. data/vendor/local/include/unicode/utf_old.h +1169 -0
  325. data/vendor/local/include/unicode/utmscale.h +481 -0
  326. data/vendor/local/include/unicode/utrace.h +359 -0
  327. data/vendor/local/include/unicode/utrans.h +658 -0
  328. data/vendor/local/include/unicode/utypes.h +723 -0
  329. data/vendor/local/include/unicode/uvernum.h +170 -0
  330. data/vendor/local/include/unicode/uversion.h +193 -0
  331. data/vendor/local/include/unicode/vtzone.h +455 -0
  332. data/vendor/local/lib/girepository-1.0/Pango-1.0.typelib +0 -0
  333. data/vendor/local/lib/girepository-1.0/PangoCairo-1.0.typelib +0 -0
  334. data/vendor/local/lib/girepository-1.0/PangoFT2-1.0.typelib +0 -0
  335. data/vendor/local/lib/icu/54.1/Makefile.inc +293 -0
  336. data/vendor/local/lib/icu/54.1/pkgdata.inc +17 -0
  337. data/vendor/local/lib/icu/Makefile.inc +293 -0
  338. data/vendor/local/lib/icu/pkgdata.inc +17 -0
  339. data/vendor/local/lib/icudt.dll +0 -0
  340. data/vendor/local/lib/icudt54.dll +0 -0
  341. data/vendor/local/lib/icuin.dll +0 -0
  342. data/vendor/local/lib/icuin54.dll +0 -0
  343. data/vendor/local/lib/icuio.dll +0 -0
  344. data/vendor/local/lib/icuio54.dll +0 -0
  345. data/vendor/local/lib/icule.dll +0 -0
  346. data/vendor/local/lib/icule54.dll +0 -0
  347. data/vendor/local/lib/iculx.dll +0 -0
  348. data/vendor/local/lib/iculx54.dll +0 -0
  349. data/vendor/local/lib/icutest.dll +0 -0
  350. data/vendor/local/lib/icutest54.dll +0 -0
  351. data/vendor/local/lib/icutu.dll +0 -0
  352. data/vendor/local/lib/icutu54.dll +0 -0
  353. data/vendor/local/lib/icuuc.dll +0 -0
  354. data/vendor/local/lib/icuuc54.dll +0 -0
  355. data/vendor/local/lib/libharfbuzz-icu.a +0 -0
  356. data/vendor/local/lib/libharfbuzz-icu.la +41 -0
  357. data/vendor/local/lib/libharfbuzz.dll.a +0 -0
  358. data/vendor/local/lib/libharfbuzz.la +41 -0
  359. data/vendor/local/lib/libicudt.dll.a +0 -0
  360. data/vendor/local/lib/libicuin.dll.a +0 -0
  361. data/vendor/local/lib/libicuio.dll.a +0 -0
  362. data/vendor/local/lib/libicule.dll.a +0 -0
  363. data/vendor/local/lib/libiculx.dll.a +0 -0
  364. data/vendor/local/lib/libicutest.dll.a +0 -0
  365. data/vendor/local/lib/libicutu.dll.a +0 -0
  366. data/vendor/local/lib/libicuuc.dll.a +0 -0
  367. data/vendor/local/lib/libpango-1.0.dll.a +0 -0
  368. data/vendor/local/lib/libpango-1.0.la +41 -0
  369. data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
  370. data/vendor/local/lib/libpangocairo-1.0.la +41 -0
  371. data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
  372. data/vendor/local/lib/libpangoft2-1.0.la +41 -0
  373. data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
  374. data/vendor/local/lib/libpangowin32-1.0.la +41 -0
  375. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.dll +0 -0
  376. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.dll.a +0 -0
  377. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.la +41 -0
  378. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.dll +0 -0
  379. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.dll.a +0 -0
  380. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.la +41 -0
  381. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.dll +0 -0
  382. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.dll.a +0 -0
  383. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.la +41 -0
  384. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.dll +0 -0
  385. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.dll.a +0 -0
  386. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.la +41 -0
  387. data/vendor/local/lib/pkgconfig/harfbuzz-icu.pc +13 -0
  388. data/vendor/local/lib/pkgconfig/harfbuzz.pc +11 -0
  389. data/vendor/local/lib/pkgconfig/icu-i18n.pc +38 -0
  390. data/vendor/local/lib/pkgconfig/icu-io.pc +38 -0
  391. data/vendor/local/lib/pkgconfig/icu-le.pc +38 -0
  392. data/vendor/local/lib/pkgconfig/icu-lx.pc +38 -0
  393. data/vendor/local/lib/pkgconfig/icu-uc.pc +38 -0
  394. data/vendor/local/lib/pkgconfig/pango.pc +14 -0
  395. data/vendor/local/lib/pkgconfig/pangocairo.pc +11 -0
  396. data/vendor/local/lib/pkgconfig/pangoft2.pc +12 -0
  397. data/vendor/local/lib/pkgconfig/pangowin32.pc +11 -0
  398. data/vendor/local/share/gir-1.0/Pango-1.0.gir +13329 -0
  399. data/vendor/local/share/gir-1.0/PangoCairo-1.0.gir +833 -0
  400. data/vendor/local/share/gir-1.0/PangoFT2-1.0.gir +354 -0
  401. data/vendor/local/share/gtk-doc/html/harfbuzz/annotation-glossary.html +75 -0
  402. data/vendor/local/share/gtk-doc/html/harfbuzz/api-index-full.html +1449 -0
  403. data/vendor/local/share/gtk-doc/html/harfbuzz/ch01.html +98 -0
  404. data/vendor/local/share/gtk-doc/html/harfbuzz/deprecated-api-index.html +46 -0
  405. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-blob.html +610 -0
  406. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-buffer.html +1780 -0
  407. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-common.html +1337 -0
  408. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-coretext.html +144 -0
  409. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-deprecated.html +99 -0
  410. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-face.html +630 -0
  411. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-font.html +2529 -0
  412. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ft.html +188 -0
  413. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-glib.html +120 -0
  414. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-gobject.html +50 -0
  415. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-graphite2.html +120 -0
  416. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-icu.html +120 -0
  417. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-layout.html +771 -0
  418. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-tag.html +172 -0
  419. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot.html +50 -0
  420. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-set.html +966 -0
  421. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape-plan.html +405 -0
  422. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape.html +286 -0
  423. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-unicode.html +1523 -0
  424. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-uniscribe.html +100 -0
  425. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-version.html +182 -0
  426. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb.html +50 -0
  427. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz.devhelp2 +378 -0
  428. data/vendor/local/share/gtk-doc/html/harfbuzz/home.png +0 -0
  429. data/vendor/local/share/gtk-doc/html/harfbuzz/index.html +105 -0
  430. data/vendor/local/share/gtk-doc/html/harfbuzz/index.sgml +496 -0
  431. data/vendor/local/share/gtk-doc/html/harfbuzz/left-insensitive.png +0 -0
  432. data/vendor/local/share/gtk-doc/html/harfbuzz/left.png +0 -0
  433. data/vendor/local/share/gtk-doc/html/harfbuzz/object-tree.html +59 -0
  434. data/vendor/local/share/gtk-doc/html/harfbuzz/right-insensitive.png +0 -0
  435. data/vendor/local/share/gtk-doc/html/harfbuzz/right.png +0 -0
  436. data/vendor/local/share/gtk-doc/html/harfbuzz/style.css +476 -0
  437. data/vendor/local/share/gtk-doc/html/harfbuzz/up-insensitive.png +0 -0
  438. data/vendor/local/share/gtk-doc/html/harfbuzz/up.png +0 -0
  439. data/vendor/local/share/gtk-doc/html/pango/PangoEngineLang.html +224 -0
  440. data/vendor/local/share/gtk-doc/html/pango/PangoEngineShape.html +255 -0
  441. data/vendor/local/share/gtk-doc/html/pango/PangoFcDecoder.html +246 -0
  442. data/vendor/local/share/gtk-doc/html/pango/PangoFcFont.html +500 -0
  443. data/vendor/local/share/gtk-doc/html/pango/PangoFcFontMap.html +1001 -0
  444. data/vendor/local/share/gtk-doc/html/pango/PangoMarkupFormat.html +301 -0
  445. data/vendor/local/share/gtk-doc/html/pango/PangoRenderer.html +1219 -0
  446. data/vendor/local/share/gtk-doc/html/pango/annotation-glossary.html +89 -0
  447. data/vendor/local/share/gtk-doc/html/pango/api-index-1-10.html +135 -0
  448. data/vendor/local/share/gtk-doc/html/pango/api-index-1-12.html +49 -0
  449. data/vendor/local/share/gtk-doc/html/pango/api-index-1-14.html +64 -0
  450. data/vendor/local/share/gtk-doc/html/pango/api-index-1-16.html +228 -0
  451. data/vendor/local/share/gtk-doc/html/pango/api-index-1-18.html +152 -0
  452. data/vendor/local/share/gtk-doc/html/pango/api-index-1-2.html +122 -0
  453. data/vendor/local/share/gtk-doc/html/pango/api-index-1-20.html +87 -0
  454. data/vendor/local/share/gtk-doc/html/pango/api-index-1-22.html +124 -0
  455. data/vendor/local/share/gtk-doc/html/pango/api-index-1-24.html +97 -0
  456. data/vendor/local/share/gtk-doc/html/pango/api-index-1-26.html +46 -0
  457. data/vendor/local/share/gtk-doc/html/pango/api-index-1-30.html +39 -0
  458. data/vendor/local/share/gtk-doc/html/pango/api-index-1-31-0.html +39 -0
  459. data/vendor/local/share/gtk-doc/html/pango/api-index-1-32-4.html +53 -0
  460. data/vendor/local/share/gtk-doc/html/pango/api-index-1-32.html +42 -0
  461. data/vendor/local/share/gtk-doc/html/pango/api-index-1-34.html +38 -0
  462. data/vendor/local/share/gtk-doc/html/pango/api-index-1-4.html +201 -0
  463. data/vendor/local/share/gtk-doc/html/pango/api-index-1-6.html +165 -0
  464. data/vendor/local/share/gtk-doc/html/pango/api-index-1-8.html +171 -0
  465. data/vendor/local/share/gtk-doc/html/pango/api-index-deprecated.html +284 -0
  466. data/vendor/local/share/gtk-doc/html/pango/api-index-full.html +2968 -0
  467. data/vendor/local/share/gtk-doc/html/pango/home.png +0 -0
  468. data/vendor/local/share/gtk-doc/html/pango/index.html +146 -0
  469. data/vendor/local/share/gtk-doc/html/pango/index.sgml +957 -0
  470. data/vendor/local/share/gtk-doc/html/pango/layout.gif +0 -0
  471. data/vendor/local/share/gtk-doc/html/pango/left-insensitive.png +0 -0
  472. data/vendor/local/share/gtk-doc/html/pango/left.png +0 -0
  473. data/vendor/local/share/gtk-doc/html/pango/lowlevel.html +68 -0
  474. data/vendor/local/share/gtk-doc/html/pango/pango-Bidirectional-Text.html +514 -0
  475. data/vendor/local/share/gtk-doc/html/pango/pango-Cairo-Rendering.html +1632 -0
  476. data/vendor/local/share/gtk-doc/html/pango/pango-CoreText-Fonts.html +115 -0
  477. data/vendor/local/share/gtk-doc/html/pango/pango-Coverage-Maps.html +508 -0
  478. data/vendor/local/share/gtk-doc/html/pango/pango-Engines.html +358 -0
  479. data/vendor/local/share/gtk-doc/html/pango/pango-Fonts.html +4154 -0
  480. data/vendor/local/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html +956 -0
  481. data/vendor/local/share/gtk-doc/html/pango/pango-Glyph-Storage.html +2627 -0
  482. data/vendor/local/share/gtk-doc/html/pango/pango-Layout-Objects.html +4153 -0
  483. data/vendor/local/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html +965 -0
  484. data/vendor/local/share/gtk-doc/html/pango/pango-Modules.html +331 -0
  485. data/vendor/local/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html +2202 -0
  486. data/vendor/local/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html +1430 -0
  487. data/vendor/local/share/gtk-doc/html/pango/pango-Tab-Stops.html +582 -0
  488. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Attributes.html +3356 -0
  489. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Processing.html +2079 -0
  490. data/vendor/local/share/gtk-doc/html/pango/pango-Version-Checking.html +325 -0
  491. data/vendor/local/share/gtk-doc/html/pango/pango-Vertical-Text.html +523 -0
  492. data/vendor/local/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html +1028 -0
  493. data/vendor/local/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html +1275 -0
  494. data/vendor/local/share/gtk-doc/html/pango/pango-hierarchy.html +91 -0
  495. data/vendor/local/share/gtk-doc/html/pango/pango-querymodules.html +131 -0
  496. data/vendor/local/share/gtk-doc/html/pango/pango.devhelp2 +786 -0
  497. data/vendor/local/share/gtk-doc/html/pango/pango.html +63 -0
  498. data/vendor/local/share/gtk-doc/html/pango/rendering.html +47 -0
  499. data/vendor/local/share/gtk-doc/html/pango/right-insensitive.png +0 -0
  500. data/vendor/local/share/gtk-doc/html/pango/right.png +0 -0
  501. data/vendor/local/share/gtk-doc/html/pango/rotated-text.png +0 -0
  502. data/vendor/local/share/gtk-doc/html/pango/style.css +476 -0
  503. data/vendor/local/share/gtk-doc/html/pango/tools.html +33 -0
  504. data/vendor/local/share/gtk-doc/html/pango/up-insensitive.png +0 -0
  505. data/vendor/local/share/gtk-doc/html/pango/up.png +0 -0
  506. data/vendor/local/share/icu/54.1/config/mh-mingw64 +158 -0
  507. data/vendor/local/share/icu/54.1/install-sh +251 -0
  508. data/vendor/local/share/icu/54.1/license.html +385 -0
  509. data/vendor/local/share/icu/54.1/mkinstalldirs +43 -0
  510. data/vendor/local/share/license/harfbuzz/AUTHORS +9 -0
  511. data/vendor/local/share/license/harfbuzz/COPYING +36 -0
  512. data/vendor/local/share/license/pango/AUTHORS +2 -0
  513. data/vendor/local/share/license/pango/COPYING +482 -0
  514. data/vendor/local/share/man/man1/derb.1 +196 -0
  515. data/vendor/local/share/man/man1/genbrk.1 +112 -0
  516. data/vendor/local/share/man/man1/gencfu.1 +91 -0
  517. data/vendor/local/share/man/man1/gencnval.1 +91 -0
  518. data/vendor/local/share/man/man1/gendict.1 +131 -0
  519. data/vendor/local/share/man/man1/genrb.1 +146 -0
  520. data/vendor/local/share/man/man1/icu-config.1 +288 -0
  521. data/vendor/local/share/man/man1/makeconv.1 +112 -0
  522. data/vendor/local/share/man/man1/pango-querymodules.1 +106 -0
  523. data/vendor/local/share/man/man1/pango-view.1 +1 -0
  524. data/vendor/local/share/man/man1/pkgdata.1 +258 -0
  525. data/vendor/local/share/man/man1/uconv.1 +443 -0
  526. data/vendor/local/share/man/man8/genccode.8 +106 -0
  527. data/vendor/local/share/man/man8/gencmn.8 +129 -0
  528. data/vendor/local/share/man/man8/gensprep.8 +102 -0
  529. data/vendor/local/share/man/man8/icupkg.8 +204 -0
  530. metadata +599 -0
@@ -0,0 +1,1169 @@
1
+ /*
2
+ *******************************************************************************
3
+ *
4
+ * Copyright (C) 2002-2012, International Business Machines
5
+ * Corporation and others. All Rights Reserved.
6
+ *
7
+ *******************************************************************************
8
+ * file name: utf_old.h
9
+ * encoding: US-ASCII
10
+ * tab size: 8 (not used)
11
+ * indentation:4
12
+ *
13
+ * created on: 2002sep21
14
+ * created by: Markus W. Scherer
15
+ */
16
+
17
+ /**
18
+ * \file
19
+ * \brief C API: Deprecated macros for Unicode string handling
20
+ */
21
+
22
+ /**
23
+ *
24
+ * The macros in utf_old.h are all deprecated and their use discouraged.
25
+ * Some of the design principles behind the set of UTF macros
26
+ * have changed or proved impractical.
27
+ * Almost all of the old "UTF macros" are at least renamed.
28
+ * If you are looking for a new equivalent to an old macro, please see the
29
+ * comment at the old one.
30
+ *
31
+ * Brief summary of reasons for deprecation:
32
+ * - Switch on UTF_SIZE (selection of UTF-8/16/32 default string processing)
33
+ * was impractical.
34
+ * - Switch on UTF_SAFE etc. (selection of unsafe/safe/strict default string processing)
35
+ * was of little use and impractical.
36
+ * - Whole classes of macros became obsolete outside of the UTF_SIZE/UTF_SAFE
37
+ * selection framework: UTF32_ macros (all trivial)
38
+ * and UTF_ default and intermediate macros (all aliases).
39
+ * - The selection framework also caused many macro aliases.
40
+ * - Change in Unicode standard: "irregular" sequences (3.0) became illegal (3.2).
41
+ * - Change of language in Unicode standard:
42
+ * Growing distinction between internal x-bit Unicode strings and external UTF-x
43
+ * forms, with the former more lenient.
44
+ * Suggests renaming of UTF16_ macros to U16_.
45
+ * - The prefix "UTF_" without a width number confused some users.
46
+ * - "Safe" append macros needed the addition of an error indicator output.
47
+ * - "Safe" UTF-8 macros used legitimate (if rarely used) code point values
48
+ * to indicate error conditions.
49
+ * - The use of the "_CHAR" infix for code point operations confused some users.
50
+ *
51
+ * More details:
52
+ *
53
+ * Until ICU 2.2, utf.h theoretically allowed to choose among UTF-8/16/32
54
+ * for string processing, and among unsafe/safe/strict default macros for that.
55
+ *
56
+ * It proved nearly impossible to write non-trivial, high-performance code
57
+ * that is UTF-generic.
58
+ * Unsafe default macros would be dangerous for default string processing,
59
+ * and the main reason for the "strict" versions disappeared:
60
+ * Between Unicode 3.0 and 3.2 all "irregular" UTF-8 sequences became illegal.
61
+ * The only other conditions that "strict" checked for were non-characters,
62
+ * which are valid during processing. Only during text input/output should they
63
+ * be checked, and at that time other well-formedness checks may be
64
+ * necessary or useful as well.
65
+ * This can still be done by using U16_NEXT and U_IS_UNICODE_NONCHAR
66
+ * or U_IS_UNICODE_CHAR.
67
+ *
68
+ * The old UTF8_..._SAFE macros also used some normal Unicode code points
69
+ * to indicate malformed sequences.
70
+ * The new UTF8_ macros without suffix use negative values instead.
71
+ *
72
+ * The entire contents of utf32.h was moved here without replacement
73
+ * because all those macros were trivial and
74
+ * were meaningful only in the framework of choosing the UTF size.
75
+ *
76
+ * See Jitterbug 2150 and its discussion on the ICU mailing list
77
+ * in September 2002.
78
+ *
79
+ * <hr>
80
+ *
81
+ * <em>Obsolete part</em> of pre-ICU 2.4 utf.h file documentation:
82
+ *
83
+ * <p>The original concept for these files was for ICU to allow
84
+ * in principle to set which UTF (UTF-8/16/32) is used internally
85
+ * by defining UTF_SIZE to either 8, 16, or 32. utf.h would then define the UChar type
86
+ * accordingly. UTF-16 was the default.</p>
87
+ *
88
+ * <p>This concept has been abandoned.
89
+ * A lot of the ICU source code assumes UChar strings are in UTF-16.
90
+ * This is especially true for low-level code like
91
+ * conversion, normalization, and collation.
92
+ * The utf.h header enforces the default of UTF-16.
93
+ * The UTF-8 and UTF-32 macros remain for now for completeness and backward compatibility.</p>
94
+ *
95
+ * <p>Accordingly, utf.h defines UChar to be an unsigned 16-bit integer. If this matches wchar_t, then
96
+ * UChar is defined to be exactly wchar_t, otherwise uint16_t.</p>
97
+ *
98
+ * <p>UChar32 is defined to be a signed 32-bit integer (int32_t), large enough for a 21-bit
99
+ * Unicode code point (Unicode scalar value, 0..0x10ffff).
100
+ * Before ICU 2.4, the definition of UChar32 was similarly platform-dependent as
101
+ * the definition of UChar. For details see the documentation for UChar32 itself.</p>
102
+ *
103
+ * <p>utf.h also defines a number of C macros for handling single Unicode code points and
104
+ * for using UTF Unicode strings. It includes utf8.h, utf16.h, and utf32.h for the actual
105
+ * implementations of those macros and then aliases one set of them (for UTF-16) for general use.
106
+ * The UTF-specific macros have the UTF size in the macro name prefixes (UTF16_...), while
107
+ * the general alias macros always begin with UTF_...</p>
108
+ *
109
+ * <p>Many string operations can be done with or without error checking.
110
+ * Where such a distinction is useful, there are two versions of the macros, "unsafe" and "safe"
111
+ * ones with ..._UNSAFE and ..._SAFE suffixes. The unsafe macros are fast but may cause
112
+ * program failures if the strings are not well-formed. The safe macros have an additional, boolean
113
+ * parameter "strict". If strict is FALSE, then only illegal sequences are detected.
114
+ * Otherwise, irregular sequences and non-characters are detected as well (like single surrogates).
115
+ * Safe macros return special error code points for illegal/irregular sequences:
116
+ * Typically, U+ffff, or values that would result in a code unit sequence of the same length
117
+ * as the erroneous input sequence.<br>
118
+ * Note that _UNSAFE macros have fewer parameters: They do not have the strictness parameter, and
119
+ * they do not have start/length parameters for boundary checking.</p>
120
+ *
121
+ * <p>Here, the macros are aliased in two steps:
122
+ * In the first step, the UTF-specific macros with UTF16_ prefix and _UNSAFE and _SAFE suffixes are
123
+ * aliased according to the UTF_SIZE to macros with UTF_ prefix and the same suffixes and signatures.
124
+ * Then, in a second step, the default, general alias macros are set to use either the unsafe or
125
+ * the safe/not strict (default) or the safe/strict macro;
126
+ * these general macros do not have a strictness parameter.</p>
127
+ *
128
+ * <p>It is possible to change the default choice for the general alias macros to be unsafe, safe/not strict or safe/strict.
129
+ * The default is safe/not strict. It is not recommended to select the unsafe macros as the basis for
130
+ * Unicode string handling in ICU! To select this, define UTF_SAFE, UTF_STRICT, or UTF_UNSAFE.</p>
131
+ *
132
+ * <p>For general use, one should use the default, general macros with UTF_ prefix and no _SAFE/_UNSAFE suffix.
133
+ * Only in some cases it may be necessary to control the choice of macro directly and use a less generic alias.
134
+ * For example, if it can be assumed that a string is well-formed and the index will stay within the bounds,
135
+ * then the _UNSAFE version may be used.
136
+ * If a UTF-8 string is to be processed, then the macros with UTF8_ prefixes need to be used.</p>
137
+ *
138
+ * <hr>
139
+ *
140
+ * @deprecated ICU 2.4. Use the macros in utf.h, utf16.h, utf8.h instead.
141
+ */
142
+
143
+ #ifndef __UTF_OLD_H__
144
+ #define __UTF_OLD_H__
145
+
146
+ #ifndef U_HIDE_DEPRECATED_API
147
+
148
+ #include "unicode/utf.h"
149
+ #include "unicode/utf8.h"
150
+ #include "unicode/utf16.h"
151
+
152
+ /* Formerly utf.h, part 1 --------------------------------------------------- */
153
+
154
+ #ifdef U_USE_UTF_DEPRECATES
155
+ /**
156
+ * Unicode string and array offset and index type.
157
+ * ICU always counts Unicode code units (UChars) for
158
+ * string offsets, indexes, and lengths, not Unicode code points.
159
+ *
160
+ * @obsolete ICU 2.6. Use int32_t directly instead since this API will be removed in that release.
161
+ */
162
+ typedef int32_t UTextOffset;
163
+ #endif
164
+
165
+ /** Number of bits in a Unicode string code unit - ICU uses 16-bit Unicode. @deprecated ICU 2.4. Obsolete, see utf_old.h. */
166
+ #define UTF_SIZE 16
167
+
168
+ /**
169
+ * The default choice for general Unicode string macros is to use the ..._SAFE macro implementations
170
+ * with strict=FALSE.
171
+ *
172
+ * @deprecated ICU 2.4. Obsolete, see utf_old.h.
173
+ */
174
+ #define UTF_SAFE
175
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
176
+ #undef UTF_UNSAFE
177
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
178
+ #undef UTF_STRICT
179
+
180
+ /**
181
+ * UTF8_ERROR_VALUE_1 and UTF8_ERROR_VALUE_2 are special error values for UTF-8,
182
+ * which need 1 or 2 bytes in UTF-8:
183
+ * \code
184
+ * U+0015 = NAK = Negative Acknowledge, C0 control character
185
+ * U+009f = highest C1 control character
186
+ * \endcode
187
+ *
188
+ * These are used by UTF8_..._SAFE macros so that they can return an error value
189
+ * that needs the same number of code units (bytes) as were seen by
190
+ * a macro. They should be tested with UTF_IS_ERROR() or UTF_IS_VALID().
191
+ *
192
+ * @deprecated ICU 2.4. Obsolete, see utf_old.h.
193
+ */
194
+ #define UTF8_ERROR_VALUE_1 0x15
195
+
196
+ /**
197
+ * See documentation on UTF8_ERROR_VALUE_1 for details.
198
+ *
199
+ * @deprecated ICU 2.4. Obsolete, see utf_old.h.
200
+ */
201
+ #define UTF8_ERROR_VALUE_2 0x9f
202
+
203
+ /**
204
+ * Error value for all UTFs. This code point value will be set by macros with error
205
+ * checking if an error is detected.
206
+ *
207
+ * @deprecated ICU 2.4. Obsolete, see utf_old.h.
208
+ */
209
+ #define UTF_ERROR_VALUE 0xffff
210
+
211
+ /**
212
+ * Is a given 32-bit code an error value
213
+ * as returned by one of the macros for any UTF?
214
+ *
215
+ * @deprecated ICU 2.4. Obsolete, see utf_old.h.
216
+ */
217
+ #define UTF_IS_ERROR(c) \
218
+ (((c)&0xfffe)==0xfffe || (c)==UTF8_ERROR_VALUE_1 || (c)==UTF8_ERROR_VALUE_2)
219
+
220
+ /**
221
+ * This is a combined macro: Is c a valid Unicode value _and_ not an error code?
222
+ *
223
+ * @deprecated ICU 2.4. Obsolete, see utf_old.h.
224
+ */
225
+ #define UTF_IS_VALID(c) \
226
+ (UTF_IS_UNICODE_CHAR(c) && \
227
+ (c)!=UTF8_ERROR_VALUE_1 && (c)!=UTF8_ERROR_VALUE_2)
228
+
229
+ /**
230
+ * Is this code unit or code point a surrogate (U+d800..U+dfff)?
231
+ * @deprecated ICU 2.4. Renamed to U_IS_SURROGATE and U16_IS_SURROGATE, see utf_old.h.
232
+ */
233
+ #define UTF_IS_SURROGATE(uchar) (((uchar)&0xfffff800)==0xd800)
234
+
235
+ /**
236
+ * Is a given 32-bit code point a Unicode noncharacter?
237
+ *
238
+ * @deprecated ICU 2.4. Renamed to U_IS_UNICODE_NONCHAR, see utf_old.h.
239
+ */
240
+ #define UTF_IS_UNICODE_NONCHAR(c) \
241
+ ((c)>=0xfdd0 && \
242
+ ((uint32_t)(c)<=0xfdef || ((c)&0xfffe)==0xfffe) && \
243
+ (uint32_t)(c)<=0x10ffff)
244
+
245
+ /**
246
+ * Is a given 32-bit value a Unicode code point value (0..U+10ffff)
247
+ * that can be assigned a character?
248
+ *
249
+ * Code points that are not characters include:
250
+ * - single surrogate code points (U+d800..U+dfff, 2048 code points)
251
+ * - the last two code points on each plane (U+__fffe and U+__ffff, 34 code points)
252
+ * - U+fdd0..U+fdef (new with Unicode 3.1, 32 code points)
253
+ * - the highest Unicode code point value is U+10ffff
254
+ *
255
+ * This means that all code points below U+d800 are character code points,
256
+ * and that boundary is tested first for performance.
257
+ *
258
+ * @deprecated ICU 2.4. Renamed to U_IS_UNICODE_CHAR, see utf_old.h.
259
+ */
260
+ #define UTF_IS_UNICODE_CHAR(c) \
261
+ ((uint32_t)(c)<0xd800 || \
262
+ ((uint32_t)(c)>0xdfff && \
263
+ (uint32_t)(c)<=0x10ffff && \
264
+ !UTF_IS_UNICODE_NONCHAR(c)))
265
+
266
+ /* Formerly utf8.h ---------------------------------------------------------- */
267
+
268
+ /**
269
+ * Count the trail bytes for a UTF-8 lead byte.
270
+ * @deprecated ICU 2.4. Renamed to U8_COUNT_TRAIL_BYTES, see utf_old.h.
271
+ */
272
+ #define UTF8_COUNT_TRAIL_BYTES(leadByte) (utf8_countTrailBytes[(uint8_t)leadByte])
273
+
274
+ /**
275
+ * Mask a UTF-8 lead byte, leave only the lower bits that form part of the code point value.
276
+ * @deprecated ICU 2.4. Renamed to U8_MASK_LEAD_BYTE, see utf_old.h.
277
+ */
278
+ #define UTF8_MASK_LEAD_BYTE(leadByte, countTrailBytes) ((leadByte)&=(1<<(6-(countTrailBytes)))-1)
279
+
280
+ /** Is this this code point a single code unit (byte)? @deprecated ICU 2.4. Renamed to U8_IS_SINGLE, see utf_old.h. */
281
+ #define UTF8_IS_SINGLE(uchar) (((uchar)&0x80)==0)
282
+ /** Is this this code unit the lead code unit (byte) of a code point? @deprecated ICU 2.4. Renamed to U8_IS_LEAD, see utf_old.h. */
283
+ #define UTF8_IS_LEAD(uchar) ((uint8_t)((uchar)-0xc0)<0x3e)
284
+ /** Is this this code unit a trailing code unit (byte) of a code point? @deprecated ICU 2.4. Renamed to U8_IS_TRAIL, see utf_old.h. */
285
+ #define UTF8_IS_TRAIL(uchar) (((uchar)&0xc0)==0x80)
286
+
287
+ /** Does this scalar Unicode value need multiple code units for storage? @deprecated ICU 2.4. Use U8_LENGTH or test ((uint32_t)(c)>0x7f) instead, see utf_old.h. */
288
+ #define UTF8_NEED_MULTIPLE_UCHAR(c) ((uint32_t)(c)>0x7f)
289
+
290
+ /**
291
+ * Given the lead character, how many bytes are taken by this code point.
292
+ * ICU does not deal with code points >0x10ffff
293
+ * unless necessary for advancing in the byte stream.
294
+ *
295
+ * These length macros take into account that for values >0x10ffff
296
+ * the UTF8_APPEND_CHAR_SAFE macros would write the error code point 0xffff
297
+ * with 3 bytes.
298
+ * Code point comparisons need to be in uint32_t because UChar32
299
+ * may be a signed type, and negative values must be recognized.
300
+ *
301
+ * @deprecated ICU 2.4. Use U8_LENGTH instead, see utf.h.
302
+ */
303
+ #if 1
304
+ # define UTF8_CHAR_LENGTH(c) \
305
+ ((uint32_t)(c)<=0x7f ? 1 : \
306
+ ((uint32_t)(c)<=0x7ff ? 2 : \
307
+ ((uint32_t)((c)-0x10000)>0xfffff ? 3 : 4) \
308
+ ) \
309
+ )
310
+ #else
311
+ # define UTF8_CHAR_LENGTH(c) \
312
+ ((uint32_t)(c)<=0x7f ? 1 : \
313
+ ((uint32_t)(c)<=0x7ff ? 2 : \
314
+ ((uint32_t)(c)<=0xffff ? 3 : \
315
+ ((uint32_t)(c)<=0x10ffff ? 4 : \
316
+ ((uint32_t)(c)<=0x3ffffff ? 5 : \
317
+ ((uint32_t)(c)<=0x7fffffff ? 6 : 3) \
318
+ ) \
319
+ ) \
320
+ ) \
321
+ ) \
322
+ )
323
+ #endif
324
+
325
+ /** The maximum number of bytes per code point. @deprecated ICU 2.4. Renamed to U8_MAX_LENGTH, see utf_old.h. */
326
+ #define UTF8_MAX_CHAR_LENGTH 4
327
+
328
+ /** Average number of code units compared to UTF-16. @deprecated ICU 2.4. Obsolete, see utf_old.h. */
329
+ #define UTF8_ARRAY_SIZE(size) ((5*(size))/2)
330
+
331
+ /** @deprecated ICU 2.4. Renamed to U8_GET_UNSAFE, see utf_old.h. */
332
+ #define UTF8_GET_CHAR_UNSAFE(s, i, c) { \
333
+ int32_t _utf8_get_char_unsafe_index=(int32_t)(i); \
334
+ UTF8_SET_CHAR_START_UNSAFE(s, _utf8_get_char_unsafe_index); \
335
+ UTF8_NEXT_CHAR_UNSAFE(s, _utf8_get_char_unsafe_index, c); \
336
+ }
337
+
338
+ /** @deprecated ICU 2.4. Use U8_GET instead, see utf_old.h. */
339
+ #define UTF8_GET_CHAR_SAFE(s, start, i, length, c, strict) { \
340
+ int32_t _utf8_get_char_safe_index=(int32_t)(i); \
341
+ UTF8_SET_CHAR_START_SAFE(s, start, _utf8_get_char_safe_index); \
342
+ UTF8_NEXT_CHAR_SAFE(s, _utf8_get_char_safe_index, length, c, strict); \
343
+ }
344
+
345
+ /** @deprecated ICU 2.4. Renamed to U8_NEXT_UNSAFE, see utf_old.h. */
346
+ #define UTF8_NEXT_CHAR_UNSAFE(s, i, c) { \
347
+ (c)=(s)[(i)++]; \
348
+ if((uint8_t)((c)-0xc0)<0x35) { \
349
+ uint8_t __count=UTF8_COUNT_TRAIL_BYTES(c); \
350
+ UTF8_MASK_LEAD_BYTE(c, __count); \
351
+ switch(__count) { \
352
+ /* each following branch falls through to the next one */ \
353
+ case 3: \
354
+ (c)=((c)<<6)|((s)[(i)++]&0x3f); \
355
+ case 2: \
356
+ (c)=((c)<<6)|((s)[(i)++]&0x3f); \
357
+ case 1: \
358
+ (c)=((c)<<6)|((s)[(i)++]&0x3f); \
359
+ /* no other branches to optimize switch() */ \
360
+ break; \
361
+ } \
362
+ } \
363
+ }
364
+
365
+ /** @deprecated ICU 2.4. Renamed to U8_APPEND_UNSAFE, see utf_old.h. */
366
+ #define UTF8_APPEND_CHAR_UNSAFE(s, i, c) { \
367
+ if((uint32_t)(c)<=0x7f) { \
368
+ (s)[(i)++]=(uint8_t)(c); \
369
+ } else { \
370
+ if((uint32_t)(c)<=0x7ff) { \
371
+ (s)[(i)++]=(uint8_t)(((c)>>6)|0xc0); \
372
+ } else { \
373
+ if((uint32_t)(c)<=0xffff) { \
374
+ (s)[(i)++]=(uint8_t)(((c)>>12)|0xe0); \
375
+ } else { \
376
+ (s)[(i)++]=(uint8_t)(((c)>>18)|0xf0); \
377
+ (s)[(i)++]=(uint8_t)((((c)>>12)&0x3f)|0x80); \
378
+ } \
379
+ (s)[(i)++]=(uint8_t)((((c)>>6)&0x3f)|0x80); \
380
+ } \
381
+ (s)[(i)++]=(uint8_t)(((c)&0x3f)|0x80); \
382
+ } \
383
+ }
384
+
385
+ /** @deprecated ICU 2.4. Renamed to U8_FWD_1_UNSAFE, see utf_old.h. */
386
+ #define UTF8_FWD_1_UNSAFE(s, i) { \
387
+ (i)+=1+UTF8_COUNT_TRAIL_BYTES((s)[i]); \
388
+ }
389
+
390
+ /** @deprecated ICU 2.4. Renamed to U8_FWD_N_UNSAFE, see utf_old.h. */
391
+ #define UTF8_FWD_N_UNSAFE(s, i, n) { \
392
+ int32_t __N=(n); \
393
+ while(__N>0) { \
394
+ UTF8_FWD_1_UNSAFE(s, i); \
395
+ --__N; \
396
+ } \
397
+ }
398
+
399
+ /** @deprecated ICU 2.4. Renamed to U8_SET_CP_START_UNSAFE, see utf_old.h. */
400
+ #define UTF8_SET_CHAR_START_UNSAFE(s, i) { \
401
+ while(UTF8_IS_TRAIL((s)[i])) { --(i); } \
402
+ }
403
+
404
+ /** @deprecated ICU 2.4. Use U8_NEXT instead, see utf_old.h. */
405
+ #define UTF8_NEXT_CHAR_SAFE(s, i, length, c, strict) { \
406
+ (c)=(s)[(i)++]; \
407
+ if((c)>=0x80) { \
408
+ if(UTF8_IS_LEAD(c)) { \
409
+ (c)=utf8_nextCharSafeBody(s, &(i), (int32_t)(length), c, strict); \
410
+ } else { \
411
+ (c)=UTF8_ERROR_VALUE_1; \
412
+ } \
413
+ } \
414
+ }
415
+
416
+ /** @deprecated ICU 2.4. Use U8_APPEND instead, see utf_old.h. */
417
+ #define UTF8_APPEND_CHAR_SAFE(s, i, length, c) { \
418
+ if((uint32_t)(c)<=0x7f) { \
419
+ (s)[(i)++]=(uint8_t)(c); \
420
+ } else { \
421
+ (i)=utf8_appendCharSafeBody(s, (int32_t)(i), (int32_t)(length), c, NULL); \
422
+ } \
423
+ }
424
+
425
+ /** @deprecated ICU 2.4. Renamed to U8_FWD_1, see utf_old.h. */
426
+ #define UTF8_FWD_1_SAFE(s, i, length) U8_FWD_1(s, i, length)
427
+
428
+ /** @deprecated ICU 2.4. Renamed to U8_FWD_N, see utf_old.h. */
429
+ #define UTF8_FWD_N_SAFE(s, i, length, n) U8_FWD_N(s, i, length, n)
430
+
431
+ /** @deprecated ICU 2.4. Renamed to U8_SET_CP_START, see utf_old.h. */
432
+ #define UTF8_SET_CHAR_START_SAFE(s, start, i) U8_SET_CP_START(s, start, i)
433
+
434
+ /** @deprecated ICU 2.4. Renamed to U8_PREV_UNSAFE, see utf_old.h. */
435
+ #define UTF8_PREV_CHAR_UNSAFE(s, i, c) { \
436
+ (c)=(s)[--(i)]; \
437
+ if(UTF8_IS_TRAIL(c)) { \
438
+ uint8_t __b, __count=1, __shift=6; \
439
+ \
440
+ /* c is a trail byte */ \
441
+ (c)&=0x3f; \
442
+ for(;;) { \
443
+ __b=(s)[--(i)]; \
444
+ if(__b>=0xc0) { \
445
+ UTF8_MASK_LEAD_BYTE(__b, __count); \
446
+ (c)|=(UChar32)__b<<__shift; \
447
+ break; \
448
+ } else { \
449
+ (c)|=(UChar32)(__b&0x3f)<<__shift; \
450
+ ++__count; \
451
+ __shift+=6; \
452
+ } \
453
+ } \
454
+ } \
455
+ }
456
+
457
+ /** @deprecated ICU 2.4. Renamed to U8_BACK_1_UNSAFE, see utf_old.h. */
458
+ #define UTF8_BACK_1_UNSAFE(s, i) { \
459
+ while(UTF8_IS_TRAIL((s)[--(i)])) {} \
460
+ }
461
+
462
+ /** @deprecated ICU 2.4. Renamed to U8_BACK_N_UNSAFE, see utf_old.h. */
463
+ #define UTF8_BACK_N_UNSAFE(s, i, n) { \
464
+ int32_t __N=(n); \
465
+ while(__N>0) { \
466
+ UTF8_BACK_1_UNSAFE(s, i); \
467
+ --__N; \
468
+ } \
469
+ }
470
+
471
+ /** @deprecated ICU 2.4. Renamed to U8_SET_CP_LIMIT_UNSAFE, see utf_old.h. */
472
+ #define UTF8_SET_CHAR_LIMIT_UNSAFE(s, i) { \
473
+ UTF8_BACK_1_UNSAFE(s, i); \
474
+ UTF8_FWD_1_UNSAFE(s, i); \
475
+ }
476
+
477
+ /** @deprecated ICU 2.4. Use U8_PREV instead, see utf_old.h. */
478
+ #define UTF8_PREV_CHAR_SAFE(s, start, i, c, strict) { \
479
+ (c)=(s)[--(i)]; \
480
+ if((c)>=0x80) { \
481
+ if((c)<=0xbf) { \
482
+ (c)=utf8_prevCharSafeBody(s, start, &(i), c, strict); \
483
+ } else { \
484
+ (c)=UTF8_ERROR_VALUE_1; \
485
+ } \
486
+ } \
487
+ }
488
+
489
+ /** @deprecated ICU 2.4. Renamed to U8_BACK_1, see utf_old.h. */
490
+ #define UTF8_BACK_1_SAFE(s, start, i) U8_BACK_1(s, start, i)
491
+
492
+ /** @deprecated ICU 2.4. Renamed to U8_BACK_N, see utf_old.h. */
493
+ #define UTF8_BACK_N_SAFE(s, start, i, n) U8_BACK_N(s, start, i, n)
494
+
495
+ /** @deprecated ICU 2.4. Renamed to U8_SET_CP_LIMIT, see utf_old.h. */
496
+ #define UTF8_SET_CHAR_LIMIT_SAFE(s, start, i, length) U8_SET_CP_LIMIT(s, start, i, length)
497
+
498
+ /* Formerly utf16.h --------------------------------------------------------- */
499
+
500
+ /** Is uchar a first/lead surrogate? @deprecated ICU 2.4. Renamed to U_IS_LEAD and U16_IS_LEAD, see utf_old.h. */
501
+ #define UTF_IS_FIRST_SURROGATE(uchar) (((uchar)&0xfffffc00)==0xd800)
502
+
503
+ /** Is uchar a second/trail surrogate? @deprecated ICU 2.4. Renamed to U_IS_TRAIL and U16_IS_TRAIL, see utf_old.h. */
504
+ #define UTF_IS_SECOND_SURROGATE(uchar) (((uchar)&0xfffffc00)==0xdc00)
505
+
506
+ /** Assuming c is a surrogate, is it a first/lead surrogate? @deprecated ICU 2.4. Renamed to U_IS_SURROGATE_LEAD and U16_IS_SURROGATE_LEAD, see utf_old.h. */
507
+ #define UTF_IS_SURROGATE_FIRST(c) (((c)&0x400)==0)
508
+
509
+ /** Helper constant for UTF16_GET_PAIR_VALUE. @deprecated ICU 2.4. Renamed to U16_SURROGATE_OFFSET, see utf_old.h. */
510
+ #define UTF_SURROGATE_OFFSET ((0xd800<<10UL)+0xdc00-0x10000)
511
+
512
+ /** Get the UTF-32 value from the surrogate code units. @deprecated ICU 2.4. Renamed to U16_GET_SUPPLEMENTARY, see utf_old.h. */
513
+ #define UTF16_GET_PAIR_VALUE(first, second) \
514
+ (((first)<<10UL)+(second)-UTF_SURROGATE_OFFSET)
515
+
516
+ /** @deprecated ICU 2.4. Renamed to U16_LEAD, see utf_old.h. */
517
+ #define UTF_FIRST_SURROGATE(supplementary) (UChar)(((supplementary)>>10)+0xd7c0)
518
+
519
+ /** @deprecated ICU 2.4. Renamed to U16_TRAIL, see utf_old.h. */
520
+ #define UTF_SECOND_SURROGATE(supplementary) (UChar)(((supplementary)&0x3ff)|0xdc00)
521
+
522
+ /** @deprecated ICU 2.4. Renamed to U16_LEAD, see utf_old.h. */
523
+ #define UTF16_LEAD(supplementary) UTF_FIRST_SURROGATE(supplementary)
524
+
525
+ /** @deprecated ICU 2.4. Renamed to U16_TRAIL, see utf_old.h. */
526
+ #define UTF16_TRAIL(supplementary) UTF_SECOND_SURROGATE(supplementary)
527
+
528
+ /** @deprecated ICU 2.4. Renamed to U16_IS_SINGLE, see utf_old.h. */
529
+ #define UTF16_IS_SINGLE(uchar) !UTF_IS_SURROGATE(uchar)
530
+
531
+ /** @deprecated ICU 2.4. Renamed to U16_IS_LEAD, see utf_old.h. */
532
+ #define UTF16_IS_LEAD(uchar) UTF_IS_FIRST_SURROGATE(uchar)
533
+
534
+ /** @deprecated ICU 2.4. Renamed to U16_IS_TRAIL, see utf_old.h. */
535
+ #define UTF16_IS_TRAIL(uchar) UTF_IS_SECOND_SURROGATE(uchar)
536
+
537
+ /** Does this scalar Unicode value need multiple code units for storage? @deprecated ICU 2.4. Use U16_LENGTH or test ((uint32_t)(c)>0xffff) instead, see utf_old.h. */
538
+ #define UTF16_NEED_MULTIPLE_UCHAR(c) ((uint32_t)(c)>0xffff)
539
+
540
+ /** @deprecated ICU 2.4. Renamed to U16_LENGTH, see utf_old.h. */
541
+ #define UTF16_CHAR_LENGTH(c) ((uint32_t)(c)<=0xffff ? 1 : 2)
542
+
543
+ /** @deprecated ICU 2.4. Renamed to U16_MAX_LENGTH, see utf_old.h. */
544
+ #define UTF16_MAX_CHAR_LENGTH 2
545
+
546
+ /** Average number of code units compared to UTF-16. @deprecated ICU 2.4. Obsolete, see utf_old.h. */
547
+ #define UTF16_ARRAY_SIZE(size) (size)
548
+
549
+ /**
550
+ * Get a single code point from an offset that points to any
551
+ * of the code units that belong to that code point.
552
+ * Assume 0<=i<length.
553
+ *
554
+ * This could be used for iteration together with
555
+ * UTF16_CHAR_LENGTH() and UTF_IS_ERROR(),
556
+ * but the use of UTF16_NEXT_CHAR[_UNSAFE]() and
557
+ * UTF16_PREV_CHAR[_UNSAFE]() is more efficient for that.
558
+ * @deprecated ICU 2.4. Renamed to U16_GET_UNSAFE, see utf_old.h.
559
+ */
560
+ #define UTF16_GET_CHAR_UNSAFE(s, i, c) { \
561
+ (c)=(s)[i]; \
562
+ if(UTF_IS_SURROGATE(c)) { \
563
+ if(UTF_IS_SURROGATE_FIRST(c)) { \
564
+ (c)=UTF16_GET_PAIR_VALUE((c), (s)[(i)+1]); \
565
+ } else { \
566
+ (c)=UTF16_GET_PAIR_VALUE((s)[(i)-1], (c)); \
567
+ } \
568
+ } \
569
+ }
570
+
571
+ /** @deprecated ICU 2.4. Use U16_GET instead, see utf_old.h. */
572
+ #define UTF16_GET_CHAR_SAFE(s, start, i, length, c, strict) { \
573
+ (c)=(s)[i]; \
574
+ if(UTF_IS_SURROGATE(c)) { \
575
+ uint16_t __c2; \
576
+ if(UTF_IS_SURROGATE_FIRST(c)) { \
577
+ if((i)+1<(length) && UTF_IS_SECOND_SURROGATE(__c2=(s)[(i)+1])) { \
578
+ (c)=UTF16_GET_PAIR_VALUE((c), __c2); \
579
+ /* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() and UTF_IS_UNICODE_CHAR() */ \
580
+ } else if(strict) {\
581
+ /* unmatched first surrogate */ \
582
+ (c)=UTF_ERROR_VALUE; \
583
+ } \
584
+ } else { \
585
+ if((i)-1>=(start) && UTF_IS_FIRST_SURROGATE(__c2=(s)[(i)-1])) { \
586
+ (c)=UTF16_GET_PAIR_VALUE(__c2, (c)); \
587
+ /* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() and UTF_IS_UNICODE_CHAR() */ \
588
+ } else if(strict) {\
589
+ /* unmatched second surrogate */ \
590
+ (c)=UTF_ERROR_VALUE; \
591
+ } \
592
+ } \
593
+ } else if((strict) && !UTF_IS_UNICODE_CHAR(c)) { \
594
+ (c)=UTF_ERROR_VALUE; \
595
+ } \
596
+ }
597
+
598
+ /** @deprecated ICU 2.4. Renamed to U16_NEXT_UNSAFE, see utf_old.h. */
599
+ #define UTF16_NEXT_CHAR_UNSAFE(s, i, c) { \
600
+ (c)=(s)[(i)++]; \
601
+ if(UTF_IS_FIRST_SURROGATE(c)) { \
602
+ (c)=UTF16_GET_PAIR_VALUE((c), (s)[(i)++]); \
603
+ } \
604
+ }
605
+
606
+ /** @deprecated ICU 2.4. Renamed to U16_APPEND_UNSAFE, see utf_old.h. */
607
+ #define UTF16_APPEND_CHAR_UNSAFE(s, i, c) { \
608
+ if((uint32_t)(c)<=0xffff) { \
609
+ (s)[(i)++]=(uint16_t)(c); \
610
+ } else { \
611
+ (s)[(i)++]=(uint16_t)(((c)>>10)+0xd7c0); \
612
+ (s)[(i)++]=(uint16_t)(((c)&0x3ff)|0xdc00); \
613
+ } \
614
+ }
615
+
616
+ /** @deprecated ICU 2.4. Renamed to U16_FWD_1_UNSAFE, see utf_old.h. */
617
+ #define UTF16_FWD_1_UNSAFE(s, i) { \
618
+ if(UTF_IS_FIRST_SURROGATE((s)[(i)++])) { \
619
+ ++(i); \
620
+ } \
621
+ }
622
+
623
+ /** @deprecated ICU 2.4. Renamed to U16_FWD_N_UNSAFE, see utf_old.h. */
624
+ #define UTF16_FWD_N_UNSAFE(s, i, n) { \
625
+ int32_t __N=(n); \
626
+ while(__N>0) { \
627
+ UTF16_FWD_1_UNSAFE(s, i); \
628
+ --__N; \
629
+ } \
630
+ }
631
+
632
+ /** @deprecated ICU 2.4. Renamed to U16_SET_CP_START_UNSAFE, see utf_old.h. */
633
+ #define UTF16_SET_CHAR_START_UNSAFE(s, i) { \
634
+ if(UTF_IS_SECOND_SURROGATE((s)[i])) { \
635
+ --(i); \
636
+ } \
637
+ }
638
+
639
+ /** @deprecated ICU 2.4. Use U16_NEXT instead, see utf_old.h. */
640
+ #define UTF16_NEXT_CHAR_SAFE(s, i, length, c, strict) { \
641
+ (c)=(s)[(i)++]; \
642
+ if(UTF_IS_FIRST_SURROGATE(c)) { \
643
+ uint16_t __c2; \
644
+ if((i)<(length) && UTF_IS_SECOND_SURROGATE(__c2=(s)[(i)])) { \
645
+ ++(i); \
646
+ (c)=UTF16_GET_PAIR_VALUE((c), __c2); \
647
+ /* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() and UTF_IS_UNICODE_CHAR() */ \
648
+ } else if(strict) {\
649
+ /* unmatched first surrogate */ \
650
+ (c)=UTF_ERROR_VALUE; \
651
+ } \
652
+ } else if((strict) && !UTF_IS_UNICODE_CHAR(c)) { \
653
+ /* unmatched second surrogate or other non-character */ \
654
+ (c)=UTF_ERROR_VALUE; \
655
+ } \
656
+ }
657
+
658
+ /** @deprecated ICU 2.4. Use U16_APPEND instead, see utf_old.h. */
659
+ #define UTF16_APPEND_CHAR_SAFE(s, i, length, c) { \
660
+ if((uint32_t)(c)<=0xffff) { \
661
+ (s)[(i)++]=(uint16_t)(c); \
662
+ } else if((uint32_t)(c)<=0x10ffff) { \
663
+ if((i)+1<(length)) { \
664
+ (s)[(i)++]=(uint16_t)(((c)>>10)+0xd7c0); \
665
+ (s)[(i)++]=(uint16_t)(((c)&0x3ff)|0xdc00); \
666
+ } else /* not enough space */ { \
667
+ (s)[(i)++]=UTF_ERROR_VALUE; \
668
+ } \
669
+ } else /* c>0x10ffff, write error value */ { \
670
+ (s)[(i)++]=UTF_ERROR_VALUE; \
671
+ } \
672
+ }
673
+
674
+ /** @deprecated ICU 2.4. Renamed to U16_FWD_1, see utf_old.h. */
675
+ #define UTF16_FWD_1_SAFE(s, i, length) U16_FWD_1(s, i, length)
676
+
677
+ /** @deprecated ICU 2.4. Renamed to U16_FWD_N, see utf_old.h. */
678
+ #define UTF16_FWD_N_SAFE(s, i, length, n) U16_FWD_N(s, i, length, n)
679
+
680
+ /** @deprecated ICU 2.4. Renamed to U16_SET_CP_START, see utf_old.h. */
681
+ #define UTF16_SET_CHAR_START_SAFE(s, start, i) U16_SET_CP_START(s, start, i)
682
+
683
+ /** @deprecated ICU 2.4. Renamed to U16_PREV_UNSAFE, see utf_old.h. */
684
+ #define UTF16_PREV_CHAR_UNSAFE(s, i, c) { \
685
+ (c)=(s)[--(i)]; \
686
+ if(UTF_IS_SECOND_SURROGATE(c)) { \
687
+ (c)=UTF16_GET_PAIR_VALUE((s)[--(i)], (c)); \
688
+ } \
689
+ }
690
+
691
+ /** @deprecated ICU 2.4. Renamed to U16_BACK_1_UNSAFE, see utf_old.h. */
692
+ #define UTF16_BACK_1_UNSAFE(s, i) { \
693
+ if(UTF_IS_SECOND_SURROGATE((s)[--(i)])) { \
694
+ --(i); \
695
+ } \
696
+ }
697
+
698
+ /** @deprecated ICU 2.4. Renamed to U16_BACK_N_UNSAFE, see utf_old.h. */
699
+ #define UTF16_BACK_N_UNSAFE(s, i, n) { \
700
+ int32_t __N=(n); \
701
+ while(__N>0) { \
702
+ UTF16_BACK_1_UNSAFE(s, i); \
703
+ --__N; \
704
+ } \
705
+ }
706
+
707
+ /** @deprecated ICU 2.4. Renamed to U16_SET_CP_LIMIT_UNSAFE, see utf_old.h. */
708
+ #define UTF16_SET_CHAR_LIMIT_UNSAFE(s, i) { \
709
+ if(UTF_IS_FIRST_SURROGATE((s)[(i)-1])) { \
710
+ ++(i); \
711
+ } \
712
+ }
713
+
714
+ /** @deprecated ICU 2.4. Use U16_PREV instead, see utf_old.h. */
715
+ #define UTF16_PREV_CHAR_SAFE(s, start, i, c, strict) { \
716
+ (c)=(s)[--(i)]; \
717
+ if(UTF_IS_SECOND_SURROGATE(c)) { \
718
+ uint16_t __c2; \
719
+ if((i)>(start) && UTF_IS_FIRST_SURROGATE(__c2=(s)[(i)-1])) { \
720
+ --(i); \
721
+ (c)=UTF16_GET_PAIR_VALUE(__c2, (c)); \
722
+ /* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() and UTF_IS_UNICODE_CHAR() */ \
723
+ } else if(strict) {\
724
+ /* unmatched second surrogate */ \
725
+ (c)=UTF_ERROR_VALUE; \
726
+ } \
727
+ } else if((strict) && !UTF_IS_UNICODE_CHAR(c)) { \
728
+ /* unmatched first surrogate or other non-character */ \
729
+ (c)=UTF_ERROR_VALUE; \
730
+ } \
731
+ }
732
+
733
+ /** @deprecated ICU 2.4. Renamed to U16_BACK_1, see utf_old.h. */
734
+ #define UTF16_BACK_1_SAFE(s, start, i) U16_BACK_1(s, start, i)
735
+
736
+ /** @deprecated ICU 2.4. Renamed to U16_BACK_N, see utf_old.h. */
737
+ #define UTF16_BACK_N_SAFE(s, start, i, n) U16_BACK_N(s, start, i, n)
738
+
739
+ /** @deprecated ICU 2.4. Renamed to U16_SET_CP_LIMIT, see utf_old.h. */
740
+ #define UTF16_SET_CHAR_LIMIT_SAFE(s, start, i, length) U16_SET_CP_LIMIT(s, start, i, length)
741
+
742
+ /* Formerly utf32.h --------------------------------------------------------- */
743
+
744
+ /*
745
+ * Old documentation:
746
+ *
747
+ * This file defines macros to deal with UTF-32 code units and code points.
748
+ * Signatures and semantics are the same as for the similarly named macros
749
+ * in utf16.h.
750
+ * utf32.h is included by utf.h after unicode/umachine.h</p>
751
+ * and some common definitions.
752
+ * <p><b>Usage:</b> ICU coding guidelines for if() statements should be followed when using these macros.
753
+ * Compound statements (curly braces {}) must be used for if-else-while...
754
+ * bodies and all macro statements should be terminated with semicolon.</p>
755
+ */
756
+
757
+ /* internal definitions ----------------------------------------------------- */
758
+
759
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
760
+ #define UTF32_IS_SAFE(c, strict) \
761
+ (!(strict) ? \
762
+ (uint32_t)(c)<=0x10ffff : \
763
+ UTF_IS_UNICODE_CHAR(c))
764
+
765
+ /*
766
+ * For the semantics of all of these macros, see utf16.h.
767
+ * The UTF-32 versions are trivial because any code point is
768
+ * encoded using exactly one code unit.
769
+ */
770
+
771
+ /* single-code point definitions -------------------------------------------- */
772
+
773
+ /* classes of code unit values */
774
+
775
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
776
+ #define UTF32_IS_SINGLE(uchar) 1
777
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
778
+ #define UTF32_IS_LEAD(uchar) 0
779
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
780
+ #define UTF32_IS_TRAIL(uchar) 0
781
+
782
+ /* number of code units per code point */
783
+
784
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
785
+ #define UTF32_NEED_MULTIPLE_UCHAR(c) 0
786
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
787
+ #define UTF32_CHAR_LENGTH(c) 1
788
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
789
+ #define UTF32_MAX_CHAR_LENGTH 1
790
+
791
+ /* average number of code units compared to UTF-16 */
792
+
793
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
794
+ #define UTF32_ARRAY_SIZE(size) (size)
795
+
796
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
797
+ #define UTF32_GET_CHAR_UNSAFE(s, i, c) { \
798
+ (c)=(s)[i]; \
799
+ }
800
+
801
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
802
+ #define UTF32_GET_CHAR_SAFE(s, start, i, length, c, strict) { \
803
+ (c)=(s)[i]; \
804
+ if(!UTF32_IS_SAFE(c, strict)) { \
805
+ (c)=UTF_ERROR_VALUE; \
806
+ } \
807
+ }
808
+
809
+ /* definitions with forward iteration --------------------------------------- */
810
+
811
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
812
+ #define UTF32_NEXT_CHAR_UNSAFE(s, i, c) { \
813
+ (c)=(s)[(i)++]; \
814
+ }
815
+
816
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
817
+ #define UTF32_APPEND_CHAR_UNSAFE(s, i, c) { \
818
+ (s)[(i)++]=(c); \
819
+ }
820
+
821
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
822
+ #define UTF32_FWD_1_UNSAFE(s, i) { \
823
+ ++(i); \
824
+ }
825
+
826
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
827
+ #define UTF32_FWD_N_UNSAFE(s, i, n) { \
828
+ (i)+=(n); \
829
+ }
830
+
831
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
832
+ #define UTF32_SET_CHAR_START_UNSAFE(s, i) { \
833
+ }
834
+
835
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
836
+ #define UTF32_NEXT_CHAR_SAFE(s, i, length, c, strict) { \
837
+ (c)=(s)[(i)++]; \
838
+ if(!UTF32_IS_SAFE(c, strict)) { \
839
+ (c)=UTF_ERROR_VALUE; \
840
+ } \
841
+ }
842
+
843
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
844
+ #define UTF32_APPEND_CHAR_SAFE(s, i, length, c) { \
845
+ if((uint32_t)(c)<=0x10ffff) { \
846
+ (s)[(i)++]=(c); \
847
+ } else /* c>0x10ffff, write 0xfffd */ { \
848
+ (s)[(i)++]=0xfffd; \
849
+ } \
850
+ }
851
+
852
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
853
+ #define UTF32_FWD_1_SAFE(s, i, length) { \
854
+ ++(i); \
855
+ }
856
+
857
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
858
+ #define UTF32_FWD_N_SAFE(s, i, length, n) { \
859
+ if(((i)+=(n))>(length)) { \
860
+ (i)=(length); \
861
+ } \
862
+ }
863
+
864
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
865
+ #define UTF32_SET_CHAR_START_SAFE(s, start, i) { \
866
+ }
867
+
868
+ /* definitions with backward iteration -------------------------------------- */
869
+
870
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
871
+ #define UTF32_PREV_CHAR_UNSAFE(s, i, c) { \
872
+ (c)=(s)[--(i)]; \
873
+ }
874
+
875
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
876
+ #define UTF32_BACK_1_UNSAFE(s, i) { \
877
+ --(i); \
878
+ }
879
+
880
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
881
+ #define UTF32_BACK_N_UNSAFE(s, i, n) { \
882
+ (i)-=(n); \
883
+ }
884
+
885
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
886
+ #define UTF32_SET_CHAR_LIMIT_UNSAFE(s, i) { \
887
+ }
888
+
889
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
890
+ #define UTF32_PREV_CHAR_SAFE(s, start, i, c, strict) { \
891
+ (c)=(s)[--(i)]; \
892
+ if(!UTF32_IS_SAFE(c, strict)) { \
893
+ (c)=UTF_ERROR_VALUE; \
894
+ } \
895
+ }
896
+
897
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
898
+ #define UTF32_BACK_1_SAFE(s, start, i) { \
899
+ --(i); \
900
+ }
901
+
902
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
903
+ #define UTF32_BACK_N_SAFE(s, start, i, n) { \
904
+ (i)-=(n); \
905
+ if((i)<(start)) { \
906
+ (i)=(start); \
907
+ } \
908
+ }
909
+
910
+ /** @deprecated ICU 2.4. Obsolete, see utf_old.h. */
911
+ #define UTF32_SET_CHAR_LIMIT_SAFE(s, i, length) { \
912
+ }
913
+
914
+ /* Formerly utf.h, part 2 --------------------------------------------------- */
915
+
916
+ /**
917
+ * Estimate the number of code units for a string based on the number of UTF-16 code units.
918
+ *
919
+ * @deprecated ICU 2.4. Obsolete, see utf_old.h.
920
+ */
921
+ #define UTF_ARRAY_SIZE(size) UTF16_ARRAY_SIZE(size)
922
+
923
+ /** @deprecated ICU 2.4. Renamed to U16_GET_UNSAFE, see utf_old.h. */
924
+ #define UTF_GET_CHAR_UNSAFE(s, i, c) UTF16_GET_CHAR_UNSAFE(s, i, c)
925
+
926
+ /** @deprecated ICU 2.4. Use U16_GET instead, see utf_old.h. */
927
+ #define UTF_GET_CHAR_SAFE(s, start, i, length, c, strict) UTF16_GET_CHAR_SAFE(s, start, i, length, c, strict)
928
+
929
+
930
+ /** @deprecated ICU 2.4. Renamed to U16_NEXT_UNSAFE, see utf_old.h. */
931
+ #define UTF_NEXT_CHAR_UNSAFE(s, i, c) UTF16_NEXT_CHAR_UNSAFE(s, i, c)
932
+
933
+ /** @deprecated ICU 2.4. Use U16_NEXT instead, see utf_old.h. */
934
+ #define UTF_NEXT_CHAR_SAFE(s, i, length, c, strict) UTF16_NEXT_CHAR_SAFE(s, i, length, c, strict)
935
+
936
+
937
+ /** @deprecated ICU 2.4. Renamed to U16_APPEND_UNSAFE, see utf_old.h. */
938
+ #define UTF_APPEND_CHAR_UNSAFE(s, i, c) UTF16_APPEND_CHAR_UNSAFE(s, i, c)
939
+
940
+ /** @deprecated ICU 2.4. Use U16_APPEND instead, see utf_old.h. */
941
+ #define UTF_APPEND_CHAR_SAFE(s, i, length, c) UTF16_APPEND_CHAR_SAFE(s, i, length, c)
942
+
943
+
944
+ /** @deprecated ICU 2.4. Renamed to U16_FWD_1_UNSAFE, see utf_old.h. */
945
+ #define UTF_FWD_1_UNSAFE(s, i) UTF16_FWD_1_UNSAFE(s, i)
946
+
947
+ /** @deprecated ICU 2.4. Renamed to U16_FWD_1, see utf_old.h. */
948
+ #define UTF_FWD_1_SAFE(s, i, length) UTF16_FWD_1_SAFE(s, i, length)
949
+
950
+
951
+ /** @deprecated ICU 2.4. Renamed to U16_FWD_N_UNSAFE, see utf_old.h. */
952
+ #define UTF_FWD_N_UNSAFE(s, i, n) UTF16_FWD_N_UNSAFE(s, i, n)
953
+
954
+ /** @deprecated ICU 2.4. Renamed to U16_FWD_N, see utf_old.h. */
955
+ #define UTF_FWD_N_SAFE(s, i, length, n) UTF16_FWD_N_SAFE(s, i, length, n)
956
+
957
+
958
+ /** @deprecated ICU 2.4. Renamed to U16_SET_CP_START_UNSAFE, see utf_old.h. */
959
+ #define UTF_SET_CHAR_START_UNSAFE(s, i) UTF16_SET_CHAR_START_UNSAFE(s, i)
960
+
961
+ /** @deprecated ICU 2.4. Renamed to U16_SET_CP_START, see utf_old.h. */
962
+ #define UTF_SET_CHAR_START_SAFE(s, start, i) UTF16_SET_CHAR_START_SAFE(s, start, i)
963
+
964
+
965
+ /** @deprecated ICU 2.4. Renamed to U16_PREV_UNSAFE, see utf_old.h. */
966
+ #define UTF_PREV_CHAR_UNSAFE(s, i, c) UTF16_PREV_CHAR_UNSAFE(s, i, c)
967
+
968
+ /** @deprecated ICU 2.4. Use U16_PREV instead, see utf_old.h. */
969
+ #define UTF_PREV_CHAR_SAFE(s, start, i, c, strict) UTF16_PREV_CHAR_SAFE(s, start, i, c, strict)
970
+
971
+
972
+ /** @deprecated ICU 2.4. Renamed to U16_BACK_1_UNSAFE, see utf_old.h. */
973
+ #define UTF_BACK_1_UNSAFE(s, i) UTF16_BACK_1_UNSAFE(s, i)
974
+
975
+ /** @deprecated ICU 2.4. Renamed to U16_BACK_1, see utf_old.h. */
976
+ #define UTF_BACK_1_SAFE(s, start, i) UTF16_BACK_1_SAFE(s, start, i)
977
+
978
+
979
+ /** @deprecated ICU 2.4. Renamed to U16_BACK_N_UNSAFE, see utf_old.h. */
980
+ #define UTF_BACK_N_UNSAFE(s, i, n) UTF16_BACK_N_UNSAFE(s, i, n)
981
+
982
+ /** @deprecated ICU 2.4. Renamed to U16_BACK_N, see utf_old.h. */
983
+ #define UTF_BACK_N_SAFE(s, start, i, n) UTF16_BACK_N_SAFE(s, start, i, n)
984
+
985
+
986
+ /** @deprecated ICU 2.4. Renamed to U16_SET_CP_LIMIT_UNSAFE, see utf_old.h. */
987
+ #define UTF_SET_CHAR_LIMIT_UNSAFE(s, i) UTF16_SET_CHAR_LIMIT_UNSAFE(s, i)
988
+
989
+ /** @deprecated ICU 2.4. Renamed to U16_SET_CP_LIMIT, see utf_old.h. */
990
+ #define UTF_SET_CHAR_LIMIT_SAFE(s, start, i, length) UTF16_SET_CHAR_LIMIT_SAFE(s, start, i, length)
991
+
992
+ /* Define default macros (UTF-16 "safe") ------------------------------------ */
993
+
994
+ /**
995
+ * Does this code unit alone encode a code point (BMP, not a surrogate)?
996
+ * Same as UTF16_IS_SINGLE.
997
+ * @deprecated ICU 2.4. Renamed to U_IS_SINGLE and U16_IS_SINGLE, see utf_old.h.
998
+ */
999
+ #define UTF_IS_SINGLE(uchar) U16_IS_SINGLE(uchar)
1000
+
1001
+ /**
1002
+ * Is this code unit the first one of several (a lead surrogate)?
1003
+ * Same as UTF16_IS_LEAD.
1004
+ * @deprecated ICU 2.4. Renamed to U_IS_LEAD and U16_IS_LEAD, see utf_old.h.
1005
+ */
1006
+ #define UTF_IS_LEAD(uchar) U16_IS_LEAD(uchar)
1007
+
1008
+ /**
1009
+ * Is this code unit one of several but not the first one (a trail surrogate)?
1010
+ * Same as UTF16_IS_TRAIL.
1011
+ * @deprecated ICU 2.4. Renamed to U_IS_TRAIL and U16_IS_TRAIL, see utf_old.h.
1012
+ */
1013
+ #define UTF_IS_TRAIL(uchar) U16_IS_TRAIL(uchar)
1014
+
1015
+ /**
1016
+ * Does this code point require multiple code units (is it a supplementary code point)?
1017
+ * Same as UTF16_NEED_MULTIPLE_UCHAR.
1018
+ * @deprecated ICU 2.4. Use U16_LENGTH or test ((uint32_t)(c)>0xffff) instead.
1019
+ */
1020
+ #define UTF_NEED_MULTIPLE_UCHAR(c) UTF16_NEED_MULTIPLE_UCHAR(c)
1021
+
1022
+ /**
1023
+ * How many code units are used to encode this code point (1 or 2)?
1024
+ * Same as UTF16_CHAR_LENGTH.
1025
+ * @deprecated ICU 2.4. Renamed to U16_LENGTH, see utf_old.h.
1026
+ */
1027
+ #define UTF_CHAR_LENGTH(c) U16_LENGTH(c)
1028
+
1029
+ /**
1030
+ * How many code units are used at most for any Unicode code point (2)?
1031
+ * Same as UTF16_MAX_CHAR_LENGTH.
1032
+ * @deprecated ICU 2.4. Renamed to U16_MAX_LENGTH, see utf_old.h.
1033
+ */
1034
+ #define UTF_MAX_CHAR_LENGTH U16_MAX_LENGTH
1035
+
1036
+ /**
1037
+ * Set c to the code point that contains the code unit i.
1038
+ * i could point to the lead or the trail surrogate for the code point.
1039
+ * i is not modified.
1040
+ * Same as UTF16_GET_CHAR.
1041
+ * \pre 0<=i<length
1042
+ *
1043
+ * @deprecated ICU 2.4. Renamed to U16_GET, see utf_old.h.
1044
+ */
1045
+ #define UTF_GET_CHAR(s, start, i, length, c) U16_GET(s, start, i, length, c)
1046
+
1047
+ /**
1048
+ * Set c to the code point that starts at code unit i
1049
+ * and advance i to beyond the code units of this code point (post-increment).
1050
+ * i must point to the first code unit of a code point.
1051
+ * Otherwise c is set to the trail unit (surrogate) itself.
1052
+ * Same as UTF16_NEXT_CHAR.
1053
+ * \pre 0<=i<length
1054
+ * \post 0<i<=length
1055
+ *
1056
+ * @deprecated ICU 2.4. Renamed to U16_NEXT, see utf_old.h.
1057
+ */
1058
+ #define UTF_NEXT_CHAR(s, i, length, c) U16_NEXT(s, i, length, c)
1059
+
1060
+ /**
1061
+ * Append the code units of code point c to the string at index i
1062
+ * and advance i to beyond the new code units (post-increment).
1063
+ * The code units beginning at index i will be overwritten.
1064
+ * Same as UTF16_APPEND_CHAR.
1065
+ * \pre 0<=c<=0x10ffff
1066
+ * \pre 0<=i<length
1067
+ * \post 0<i<=length
1068
+ *
1069
+ * @deprecated ICU 2.4. Use U16_APPEND instead, see utf_old.h.
1070
+ */
1071
+ #define UTF_APPEND_CHAR(s, i, length, c) UTF16_APPEND_CHAR_SAFE(s, i, length, c)
1072
+
1073
+ /**
1074
+ * Advance i to beyond the code units of the code point that begins at i.
1075
+ * I.e., advance i by one code point.
1076
+ * Same as UTF16_FWD_1.
1077
+ * \pre 0<=i<length
1078
+ * \post 0<i<=length
1079
+ *
1080
+ * @deprecated ICU 2.4. Renamed to U16_FWD_1, see utf_old.h.
1081
+ */
1082
+ #define UTF_FWD_1(s, i, length) U16_FWD_1(s, i, length)
1083
+
1084
+ /**
1085
+ * Advance i to beyond the code units of the n code points where the first one begins at i.
1086
+ * I.e., advance i by n code points.
1087
+ * Same as UT16_FWD_N.
1088
+ * \pre 0<=i<length
1089
+ * \post 0<i<=length
1090
+ *
1091
+ * @deprecated ICU 2.4. Renamed to U16_FWD_N, see utf_old.h.
1092
+ */
1093
+ #define UTF_FWD_N(s, i, length, n) U16_FWD_N(s, i, length, n)
1094
+
1095
+ /**
1096
+ * Take the random-access index i and adjust it so that it points to the beginning
1097
+ * of a code point.
1098
+ * The input index points to any code unit of a code point and is moved to point to
1099
+ * the first code unit of the same code point. i is never incremented.
1100
+ * In other words, if i points to a trail surrogate that is preceded by a matching
1101
+ * lead surrogate, then i is decremented. Otherwise it is not modified.
1102
+ * This can be used to start an iteration with UTF_NEXT_CHAR() from a random index.
1103
+ * Same as UTF16_SET_CHAR_START.
1104
+ * \pre start<=i<length
1105
+ * \post start<=i<length
1106
+ *
1107
+ * @deprecated ICU 2.4. Renamed to U16_SET_CP_START, see utf_old.h.
1108
+ */
1109
+ #define UTF_SET_CHAR_START(s, start, i) U16_SET_CP_START(s, start, i)
1110
+
1111
+ /**
1112
+ * Set c to the code point that has code units before i
1113
+ * and move i backward (towards the beginning of the string)
1114
+ * to the first code unit of this code point (pre-increment).
1115
+ * i must point to the first code unit after the last unit of a code point (i==length is allowed).
1116
+ * Same as UTF16_PREV_CHAR.
1117
+ * \pre start<i<=length
1118
+ * \post start<=i<length
1119
+ *
1120
+ * @deprecated ICU 2.4. Renamed to U16_PREV, see utf_old.h.
1121
+ */
1122
+ #define UTF_PREV_CHAR(s, start, i, c) U16_PREV(s, start, i, c)
1123
+
1124
+ /**
1125
+ * Move i backward (towards the beginning of the string)
1126
+ * to the first code unit of the code point that has code units before i.
1127
+ * I.e., move i backward by one code point.
1128
+ * i must point to the first code unit after the last unit of a code point (i==length is allowed).
1129
+ * Same as UTF16_BACK_1.
1130
+ * \pre start<i<=length
1131
+ * \post start<=i<length
1132
+ *
1133
+ * @deprecated ICU 2.4. Renamed to U16_BACK_1, see utf_old.h.
1134
+ */
1135
+ #define UTF_BACK_1(s, start, i) U16_BACK_1(s, start, i)
1136
+
1137
+ /**
1138
+ * Move i backward (towards the beginning of the string)
1139
+ * to the first code unit of the n code points that have code units before i.
1140
+ * I.e., move i backward by n code points.
1141
+ * i must point to the first code unit after the last unit of a code point (i==length is allowed).
1142
+ * Same as UTF16_BACK_N.
1143
+ * \pre start<i<=length
1144
+ * \post start<=i<length
1145
+ *
1146
+ * @deprecated ICU 2.4. Renamed to U16_BACK_N, see utf_old.h.
1147
+ */
1148
+ #define UTF_BACK_N(s, start, i, n) U16_BACK_N(s, start, i, n)
1149
+
1150
+ /**
1151
+ * Take the random-access index i and adjust it so that it points beyond
1152
+ * a code point. The input index points beyond any code unit
1153
+ * of a code point and is moved to point beyond the last code unit of the same
1154
+ * code point. i is never decremented.
1155
+ * In other words, if i points to a trail surrogate that is preceded by a matching
1156
+ * lead surrogate, then i is incremented. Otherwise it is not modified.
1157
+ * This can be used to start an iteration with UTF_PREV_CHAR() from a random index.
1158
+ * Same as UTF16_SET_CHAR_LIMIT.
1159
+ * \pre start<i<=length
1160
+ * \post start<i<=length
1161
+ *
1162
+ * @deprecated ICU 2.4. Renamed to U16_SET_CP_LIMIT, see utf_old.h.
1163
+ */
1164
+ #define UTF_SET_CHAR_LIMIT(s, start, i, length) U16_SET_CP_LIMIT(s, start, i, length)
1165
+
1166
+ #endif /* U_HIDE_DEPRECATED_API */
1167
+
1168
+ #endif
1169
+