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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,208 @@
1
+ /*
2
+ *******************************************************************************
3
+ * Copyright (C) 1996-2014, International Business Machines Corporation and
4
+ * others. All Rights Reserved.
5
+ *******************************************************************************
6
+ */
7
+
8
+ #ifndef CANITER_H
9
+ #define CANITER_H
10
+
11
+ #include "unicode/utypes.h"
12
+
13
+ #if !UCONFIG_NO_NORMALIZATION
14
+
15
+ #include "unicode/uobject.h"
16
+ #include "unicode/unistr.h"
17
+
18
+ /**
19
+ * \file
20
+ * \brief C++ API: Canonical Iterator
21
+ */
22
+
23
+ /** Should permutation skip characters with combining class zero
24
+ * Should be either TRUE or FALSE. This is a compile time option
25
+ * @stable ICU 2.4
26
+ */
27
+ #ifndef CANITER_SKIP_ZEROES
28
+ #define CANITER_SKIP_ZEROES TRUE
29
+ #endif
30
+
31
+ U_NAMESPACE_BEGIN
32
+
33
+ class Hashtable;
34
+ class Normalizer2;
35
+ class Normalizer2Impl;
36
+
37
+ /**
38
+ * This class allows one to iterate through all the strings that are canonically equivalent to a given
39
+ * string. For example, here are some sample results:
40
+ Results for: {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
41
+ 1: \\u0041\\u030A\\u0064\\u0307\\u0327
42
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
43
+ 2: \\u0041\\u030A\\u0064\\u0327\\u0307
44
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
45
+ 3: \\u0041\\u030A\\u1E0B\\u0327
46
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
47
+ 4: \\u0041\\u030A\\u1E11\\u0307
48
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
49
+ 5: \\u00C5\\u0064\\u0307\\u0327
50
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
51
+ 6: \\u00C5\\u0064\\u0327\\u0307
52
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
53
+ 7: \\u00C5\\u1E0B\\u0327
54
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
55
+ 8: \\u00C5\\u1E11\\u0307
56
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
57
+ 9: \\u212B\\u0064\\u0307\\u0327
58
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
59
+ 10: \\u212B\\u0064\\u0327\\u0307
60
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
61
+ 11: \\u212B\\u1E0B\\u0327
62
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
63
+ 12: \\u212B\\u1E11\\u0307
64
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
65
+ *<br>Note: the code is intended for use with small strings, and is not suitable for larger ones,
66
+ * since it has not been optimized for that situation.
67
+ * Note, CanonicalIterator is not intended to be subclassed.
68
+ * @author M. Davis
69
+ * @author C++ port by V. Weinstein
70
+ * @stable ICU 2.4
71
+ */
72
+ class U_COMMON_API CanonicalIterator U_FINAL : public UObject {
73
+ public:
74
+ /**
75
+ * Construct a CanonicalIterator object
76
+ * @param source string to get results for
77
+ * @param status Fill-in parameter which receives the status of this operation.
78
+ * @stable ICU 2.4
79
+ */
80
+ CanonicalIterator(const UnicodeString &source, UErrorCode &status);
81
+
82
+ /** Destructor
83
+ * Cleans pieces
84
+ * @stable ICU 2.4
85
+ */
86
+ virtual ~CanonicalIterator();
87
+
88
+ /**
89
+ * Gets the NFD form of the current source we are iterating over.
90
+ * @return gets the source: NOTE: it is the NFD form of source
91
+ * @stable ICU 2.4
92
+ */
93
+ UnicodeString getSource();
94
+
95
+ /**
96
+ * Resets the iterator so that one can start again from the beginning.
97
+ * @stable ICU 2.4
98
+ */
99
+ void reset();
100
+
101
+ /**
102
+ * Get the next canonically equivalent string.
103
+ * <br><b>Warning: The strings are not guaranteed to be in any particular order.</b>
104
+ * @return the next string that is canonically equivalent. A bogus string is returned when
105
+ * the iteration is done.
106
+ * @stable ICU 2.4
107
+ */
108
+ UnicodeString next();
109
+
110
+ /**
111
+ * Set a new source for this iterator. Allows object reuse.
112
+ * @param newSource the source string to iterate against. This allows the same iterator to be used
113
+ * while changing the source string, saving object creation.
114
+ * @param status Fill-in parameter which receives the status of this operation.
115
+ * @stable ICU 2.4
116
+ */
117
+ void setSource(const UnicodeString &newSource, UErrorCode &status);
118
+
119
+ #ifndef U_HIDE_INTERNAL_API
120
+ /**
121
+ * Dumb recursive implementation of permutation.
122
+ * TODO: optimize
123
+ * @param source the string to find permutations for
124
+ * @param skipZeros determine if skip zeros
125
+ * @param result the results in a set.
126
+ * @param status Fill-in parameter which receives the status of this operation.
127
+ * @internal
128
+ */
129
+ static void U_EXPORT2 permute(UnicodeString &source, UBool skipZeros, Hashtable *result, UErrorCode &status);
130
+ #endif /* U_HIDE_INTERNAL_API */
131
+
132
+ /**
133
+ * ICU "poor man's RTTI", returns a UClassID for this class.
134
+ *
135
+ * @stable ICU 2.2
136
+ */
137
+ static UClassID U_EXPORT2 getStaticClassID();
138
+
139
+ /**
140
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
141
+ *
142
+ * @stable ICU 2.2
143
+ */
144
+ virtual UClassID getDynamicClassID() const;
145
+
146
+ private:
147
+ // ===================== PRIVATES ==============================
148
+ // private default constructor
149
+ CanonicalIterator();
150
+
151
+
152
+ /**
153
+ * Copy constructor. Private for now.
154
+ * @internal
155
+ */
156
+ CanonicalIterator(const CanonicalIterator& other);
157
+
158
+ /**
159
+ * Assignment operator. Private for now.
160
+ * @internal
161
+ */
162
+ CanonicalIterator& operator=(const CanonicalIterator& other);
163
+
164
+ // fields
165
+ UnicodeString source;
166
+ UBool done;
167
+
168
+ // 2 dimensional array holds the pieces of the string with
169
+ // their different canonically equivalent representations
170
+ UnicodeString **pieces;
171
+ int32_t pieces_length;
172
+ int32_t *pieces_lengths;
173
+
174
+ // current is used in iterating to combine pieces
175
+ int32_t *current;
176
+ int32_t current_length;
177
+
178
+ // transient fields
179
+ UnicodeString buffer;
180
+
181
+ const Normalizer2 &nfd;
182
+ const Normalizer2Impl &nfcImpl;
183
+
184
+ // we have a segment, in NFD. Find all the strings that are canonically equivalent to it.
185
+ UnicodeString *getEquivalents(const UnicodeString &segment, int32_t &result_len, UErrorCode &status); //private String[] getEquivalents(String segment)
186
+
187
+ //Set getEquivalents2(String segment);
188
+ Hashtable *getEquivalents2(Hashtable *fillinResult, const UChar *segment, int32_t segLen, UErrorCode &status);
189
+ //Hashtable *getEquivalents2(const UnicodeString &segment, int32_t segLen, UErrorCode &status);
190
+
191
+ /**
192
+ * See if the decomposition of cp2 is at segment starting at segmentPos
193
+ * (with canonical rearrangment!)
194
+ * If so, take the remainder, and return the equivalents
195
+ */
196
+ //Set extract(int comp, String segment, int segmentPos, StringBuffer buffer);
197
+ Hashtable *extract(Hashtable *fillinResult, UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
198
+ //Hashtable *extract(UChar32 comp, const UnicodeString &segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
199
+
200
+ void cleanPieces();
201
+
202
+ };
203
+
204
+ U_NAMESPACE_END
205
+
206
+ #endif /* #if !UCONFIG_NO_NORMALIZATION */
207
+
208
+ #endif
@@ -0,0 +1,722 @@
1
+ /*
2
+ ********************************************************************
3
+ *
4
+ * Copyright (C) 1997-2011, International Business Machines
5
+ * Corporation and others. All Rights Reserved.
6
+ *
7
+ ********************************************************************
8
+ */
9
+
10
+ #ifndef CHARITER_H
11
+ #define CHARITER_H
12
+
13
+ #include "unicode/utypes.h"
14
+ #include "unicode/uobject.h"
15
+ #include "unicode/unistr.h"
16
+ /**
17
+ * \file
18
+ * \brief C++ API: Character Iterator
19
+ */
20
+
21
+ U_NAMESPACE_BEGIN
22
+ /**
23
+ * Abstract class that defines an API for forward-only iteration
24
+ * on text objects.
25
+ * This is a minimal interface for iteration without random access
26
+ * or backwards iteration. It is especially useful for wrapping
27
+ * streams with converters into an object for collation or
28
+ * normalization.
29
+ *
30
+ * <p>Characters can be accessed in two ways: as code units or as
31
+ * code points.
32
+ * Unicode code points are 21-bit integers and are the scalar values
33
+ * of Unicode characters. ICU uses the type UChar32 for them.
34
+ * Unicode code units are the storage units of a given
35
+ * Unicode/UCS Transformation Format (a character encoding scheme).
36
+ * With UTF-16, all code points can be represented with either one
37
+ * or two code units ("surrogates").
38
+ * String storage is typically based on code units, while properties
39
+ * of characters are typically determined using code point values.
40
+ * Some processes may be designed to work with sequences of code units,
41
+ * or it may be known that all characters that are important to an
42
+ * algorithm can be represented with single code units.
43
+ * Other processes will need to use the code point access functions.</p>
44
+ *
45
+ * <p>ForwardCharacterIterator provides nextPostInc() to access
46
+ * a code unit and advance an internal position into the text object,
47
+ * similar to a <code>return text[position++]</code>.<br>
48
+ * It provides next32PostInc() to access a code point and advance an internal
49
+ * position.</p>
50
+ *
51
+ * <p>next32PostInc() assumes that the current position is that of
52
+ * the beginning of a code point, i.e., of its first code unit.
53
+ * After next32PostInc(), this will be true again.
54
+ * In general, access to code units and code points in the same
55
+ * iteration loop should not be mixed. In UTF-16, if the current position
56
+ * is on a second code unit (Low Surrogate), then only that code unit
57
+ * is returned even by next32PostInc().</p>
58
+ *
59
+ * <p>For iteration with either function, there are two ways to
60
+ * check for the end of the iteration. When there are no more
61
+ * characters in the text object:
62
+ * <ul>
63
+ * <li>The hasNext() function returns FALSE.</li>
64
+ * <li>nextPostInc() and next32PostInc() return DONE
65
+ * when one attempts to read beyond the end of the text object.</li>
66
+ * </ul>
67
+ *
68
+ * Example:
69
+ * \code
70
+ * void function1(ForwardCharacterIterator &it) {
71
+ * UChar32 c;
72
+ * while(it.hasNext()) {
73
+ * c=it.next32PostInc();
74
+ * // use c
75
+ * }
76
+ * }
77
+ *
78
+ * void function1(ForwardCharacterIterator &it) {
79
+ * UChar c;
80
+ * while((c=it.nextPostInc())!=ForwardCharacterIterator::DONE) {
81
+ * // use c
82
+ * }
83
+ * }
84
+ * \endcode
85
+ * </p>
86
+ *
87
+ * @stable ICU 2.0
88
+ */
89
+ class U_COMMON_API ForwardCharacterIterator : public UObject {
90
+ public:
91
+ /**
92
+ * Value returned by most of ForwardCharacterIterator's functions
93
+ * when the iterator has reached the limits of its iteration.
94
+ * @stable ICU 2.0
95
+ */
96
+ enum { DONE = 0xffff };
97
+
98
+ /**
99
+ * Destructor.
100
+ * @stable ICU 2.0
101
+ */
102
+ virtual ~ForwardCharacterIterator();
103
+
104
+ /**
105
+ * Returns true when both iterators refer to the same
106
+ * character in the same character-storage object.
107
+ * @param that The ForwardCharacterIterator to be compared for equality
108
+ * @return true when both iterators refer to the same
109
+ * character in the same character-storage object
110
+ * @stable ICU 2.0
111
+ */
112
+ virtual UBool operator==(const ForwardCharacterIterator& that) const = 0;
113
+
114
+ /**
115
+ * Returns true when the iterators refer to different
116
+ * text-storage objects, or to different characters in the
117
+ * same text-storage object.
118
+ * @param that The ForwardCharacterIterator to be compared for inequality
119
+ * @return true when the iterators refer to different
120
+ * text-storage objects, or to different characters in the
121
+ * same text-storage object
122
+ * @stable ICU 2.0
123
+ */
124
+ inline UBool operator!=(const ForwardCharacterIterator& that) const;
125
+
126
+ /**
127
+ * Generates a hash code for this iterator.
128
+ * @return the hash code.
129
+ * @stable ICU 2.0
130
+ */
131
+ virtual int32_t hashCode(void) const = 0;
132
+
133
+ /**
134
+ * Returns a UClassID for this ForwardCharacterIterator ("poor man's
135
+ * RTTI").<P> Despite the fact that this function is public,
136
+ * DO NOT CONSIDER IT PART OF CHARACTERITERATOR'S API!
137
+ * @return a UClassID for this ForwardCharacterIterator
138
+ * @stable ICU 2.0
139
+ */
140
+ virtual UClassID getDynamicClassID(void) const = 0;
141
+
142
+ /**
143
+ * Gets the current code unit for returning and advances to the next code unit
144
+ * in the iteration range
145
+ * (toward endIndex()). If there are
146
+ * no more code units to return, returns DONE.
147
+ * @return the current code unit.
148
+ * @stable ICU 2.0
149
+ */
150
+ virtual UChar nextPostInc(void) = 0;
151
+
152
+ /**
153
+ * Gets the current code point for returning and advances to the next code point
154
+ * in the iteration range
155
+ * (toward endIndex()). If there are
156
+ * no more code points to return, returns DONE.
157
+ * @return the current code point.
158
+ * @stable ICU 2.0
159
+ */
160
+ virtual UChar32 next32PostInc(void) = 0;
161
+
162
+ /**
163
+ * Returns FALSE if there are no more code units or code points
164
+ * at or after the current position in the iteration range.
165
+ * This is used with nextPostInc() or next32PostInc() in forward
166
+ * iteration.
167
+ * @returns FALSE if there are no more code units or code points
168
+ * at or after the current position in the iteration range.
169
+ * @stable ICU 2.0
170
+ */
171
+ virtual UBool hasNext() = 0;
172
+
173
+ protected:
174
+ /** Default constructor to be overridden in the implementing class. @stable ICU 2.0*/
175
+ ForwardCharacterIterator();
176
+
177
+ /** Copy constructor to be overridden in the implementing class. @stable ICU 2.0*/
178
+ ForwardCharacterIterator(const ForwardCharacterIterator &other);
179
+
180
+ /**
181
+ * Assignment operator to be overridden in the implementing class.
182
+ * @stable ICU 2.0
183
+ */
184
+ ForwardCharacterIterator &operator=(const ForwardCharacterIterator&) { return *this; }
185
+ };
186
+
187
+ /**
188
+ * Abstract class that defines an API for iteration
189
+ * on text objects.
190
+ * This is an interface for forward and backward iteration
191
+ * and random access into a text object.
192
+ *
193
+ * <p>The API provides backward compatibility to the Java and older ICU
194
+ * CharacterIterator classes but extends them significantly:
195
+ * <ol>
196
+ * <li>CharacterIterator is now a subclass of ForwardCharacterIterator.</li>
197
+ * <li>While the old API functions provided forward iteration with
198
+ * "pre-increment" semantics, the new one also provides functions
199
+ * with "post-increment" semantics. They are more efficient and should
200
+ * be the preferred iterator functions for new implementations.
201
+ * The backward iteration always had "pre-decrement" semantics, which
202
+ * are efficient.</li>
203
+ * <li>Just like ForwardCharacterIterator, it provides access to
204
+ * both code units and code points. Code point access versions are available
205
+ * for the old and the new iteration semantics.</li>
206
+ * <li>There are new functions for setting and moving the current position
207
+ * without returning a character, for efficiency.</li>
208
+ * </ol>
209
+ *
210
+ * See ForwardCharacterIterator for examples for using the new forward iteration
211
+ * functions. For backward iteration, there is also a hasPrevious() function
212
+ * that can be used analogously to hasNext().
213
+ * The old functions work as before and are shown below.</p>
214
+ *
215
+ * <p>Examples for some of the new functions:</p>
216
+ *
217
+ * Forward iteration with hasNext():
218
+ * \code
219
+ * void forward1(CharacterIterator &it) {
220
+ * UChar32 c;
221
+ * for(it.setToStart(); it.hasNext();) {
222
+ * c=it.next32PostInc();
223
+ * // use c
224
+ * }
225
+ * }
226
+ * \endcode
227
+ * Forward iteration more similar to loops with the old forward iteration,
228
+ * showing a way to convert simple for() loops:
229
+ * \code
230
+ * void forward2(CharacterIterator &it) {
231
+ * UChar c;
232
+ * for(c=it.firstPostInc(); c!=CharacterIterator::DONE; c=it.nextPostInc()) {
233
+ * // use c
234
+ * }
235
+ * }
236
+ * \endcode
237
+ * Backward iteration with setToEnd() and hasPrevious():
238
+ * \code
239
+ * void backward1(CharacterIterator &it) {
240
+ * UChar32 c;
241
+ * for(it.setToEnd(); it.hasPrevious();) {
242
+ * c=it.previous32();
243
+ * // use c
244
+ * }
245
+ * }
246
+ * \endcode
247
+ * Backward iteration with a more traditional for() loop:
248
+ * \code
249
+ * void backward2(CharacterIterator &it) {
250
+ * UChar c;
251
+ * for(c=it.last(); c!=CharacterIterator::DONE; c=it.previous()) {
252
+ * // use c
253
+ * }
254
+ * }
255
+ * \endcode
256
+ *
257
+ * Example for random access:
258
+ * \code
259
+ * void random(CharacterIterator &it) {
260
+ * // set to the third code point from the beginning
261
+ * it.move32(3, CharacterIterator::kStart);
262
+ * // get a code point from here without moving the position
263
+ * UChar32 c=it.current32();
264
+ * // get the position
265
+ * int32_t pos=it.getIndex();
266
+ * // get the previous code unit
267
+ * UChar u=it.previous();
268
+ * // move back one more code unit
269
+ * it.move(-1, CharacterIterator::kCurrent);
270
+ * // set the position back to where it was
271
+ * // and read the same code point c and move beyond it
272
+ * it.setIndex(pos);
273
+ * if(c!=it.next32PostInc()) {
274
+ * exit(1); // CharacterIterator inconsistent
275
+ * }
276
+ * }
277
+ * \endcode
278
+ *
279
+ * <p>Examples, especially for the old API:</p>
280
+ *
281
+ * Function processing characters, in this example simple output
282
+ * <pre>
283
+ * \code
284
+ * void processChar( UChar c )
285
+ * {
286
+ * cout << " " << c;
287
+ * }
288
+ * \endcode
289
+ * </pre>
290
+ * Traverse the text from start to finish
291
+ * <pre>
292
+ * \code
293
+ * void traverseForward(CharacterIterator& iter)
294
+ * {
295
+ * for(UChar c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
296
+ * processChar(c);
297
+ * }
298
+ * }
299
+ * \endcode
300
+ * </pre>
301
+ * Traverse the text backwards, from end to start
302
+ * <pre>
303
+ * \code
304
+ * void traverseBackward(CharacterIterator& iter)
305
+ * {
306
+ * for(UChar c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {
307
+ * processChar(c);
308
+ * }
309
+ * }
310
+ * \endcode
311
+ * </pre>
312
+ * Traverse both forward and backward from a given position in the text.
313
+ * Calls to notBoundary() in this example represents some additional stopping criteria.
314
+ * <pre>
315
+ * \code
316
+ * void traverseOut(CharacterIterator& iter, int32_t pos)
317
+ * {
318
+ * UChar c;
319
+ * for (c = iter.setIndex(pos);
320
+ * c != CharacterIterator.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c));
321
+ * c = iter.next()) {}
322
+ * int32_t end = iter.getIndex();
323
+ * for (c = iter.setIndex(pos);
324
+ * c != CharacterIterator.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c));
325
+ * c = iter.previous()) {}
326
+ * int32_t start = iter.getIndex() + 1;
327
+ *
328
+ * cout << "start: " << start << " end: " << end << endl;
329
+ * for (c = iter.setIndex(start); iter.getIndex() < end; c = iter.next() ) {
330
+ * processChar(c);
331
+ * }
332
+ * }
333
+ * \endcode
334
+ * </pre>
335
+ * Creating a StringCharacterIterator and calling the test functions
336
+ * <pre>
337
+ * \code
338
+ * void CharacterIterator_Example( void )
339
+ * {
340
+ * cout << endl << "===== CharacterIterator_Example: =====" << endl;
341
+ * UnicodeString text("Ein kleiner Satz.");
342
+ * StringCharacterIterator iterator(text);
343
+ * cout << "----- traverseForward: -----------" << endl;
344
+ * traverseForward( iterator );
345
+ * cout << endl << endl << "----- traverseBackward: ----------" << endl;
346
+ * traverseBackward( iterator );
347
+ * cout << endl << endl << "----- traverseOut: ---------------" << endl;
348
+ * traverseOut( iterator, 7 );
349
+ * cout << endl << endl << "-----" << endl;
350
+ * }
351
+ * \endcode
352
+ * </pre>
353
+ *
354
+ * @stable ICU 2.0
355
+ */
356
+ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
357
+ public:
358
+ /**
359
+ * Origin enumeration for the move() and move32() functions.
360
+ * @stable ICU 2.0
361
+ */
362
+ enum EOrigin { kStart, kCurrent, kEnd };
363
+
364
+ /**
365
+ * Destructor.
366
+ * @stable ICU 2.0
367
+ */
368
+ virtual ~CharacterIterator();
369
+
370
+ /**
371
+ * Returns a pointer to a new CharacterIterator of the same
372
+ * concrete class as this one, and referring to the same
373
+ * character in the same text-storage object as this one. The
374
+ * caller is responsible for deleting the new clone.
375
+ * @return a pointer to a new CharacterIterator
376
+ * @stable ICU 2.0
377
+ */
378
+ virtual CharacterIterator* clone(void) const = 0;
379
+
380
+ /**
381
+ * Sets the iterator to refer to the first code unit in its
382
+ * iteration range, and returns that code unit.
383
+ * This can be used to begin an iteration with next().
384
+ * @return the first code unit in its iteration range.
385
+ * @stable ICU 2.0
386
+ */
387
+ virtual UChar first(void) = 0;
388
+
389
+ /**
390
+ * Sets the iterator to refer to the first code unit in its
391
+ * iteration range, returns that code unit, and moves the position
392
+ * to the second code unit. This is an alternative to setToStart()
393
+ * for forward iteration with nextPostInc().
394
+ * @return the first code unit in its iteration range.
395
+ * @stable ICU 2.0
396
+ */
397
+ virtual UChar firstPostInc(void);
398
+
399
+ /**
400
+ * Sets the iterator to refer to the first code point in its
401
+ * iteration range, and returns that code unit,
402
+ * This can be used to begin an iteration with next32().
403
+ * Note that an iteration with next32PostInc(), beginning with,
404
+ * e.g., setToStart() or firstPostInc(), is more efficient.
405
+ * @return the first code point in its iteration range.
406
+ * @stable ICU 2.0
407
+ */
408
+ virtual UChar32 first32(void) = 0;
409
+
410
+ /**
411
+ * Sets the iterator to refer to the first code point in its
412
+ * iteration range, returns that code point, and moves the position
413
+ * to the second code point. This is an alternative to setToStart()
414
+ * for forward iteration with next32PostInc().
415
+ * @return the first code point in its iteration range.
416
+ * @stable ICU 2.0
417
+ */
418
+ virtual UChar32 first32PostInc(void);
419
+
420
+ /**
421
+ * Sets the iterator to refer to the first code unit or code point in its
422
+ * iteration range. This can be used to begin a forward
423
+ * iteration with nextPostInc() or next32PostInc().
424
+ * @return the start position of the iteration range
425
+ * @stable ICU 2.0
426
+ */
427
+ inline int32_t setToStart();
428
+
429
+ /**
430
+ * Sets the iterator to refer to the last code unit in its
431
+ * iteration range, and returns that code unit.
432
+ * This can be used to begin an iteration with previous().
433
+ * @return the last code unit.
434
+ * @stable ICU 2.0
435
+ */
436
+ virtual UChar last(void) = 0;
437
+
438
+ /**
439
+ * Sets the iterator to refer to the last code point in its
440
+ * iteration range, and returns that code unit.
441
+ * This can be used to begin an iteration with previous32().
442
+ * @return the last code point.
443
+ * @stable ICU 2.0
444
+ */
445
+ virtual UChar32 last32(void) = 0;
446
+
447
+ /**
448
+ * Sets the iterator to the end of its iteration range, just behind
449
+ * the last code unit or code point. This can be used to begin a backward
450
+ * iteration with previous() or previous32().
451
+ * @return the end position of the iteration range
452
+ * @stable ICU 2.0
453
+ */
454
+ inline int32_t setToEnd();
455
+
456
+ /**
457
+ * Sets the iterator to refer to the "position"-th code unit
458
+ * in the text-storage object the iterator refers to, and
459
+ * returns that code unit.
460
+ * @param position the "position"-th code unit in the text-storage object
461
+ * @return the "position"-th code unit.
462
+ * @stable ICU 2.0
463
+ */
464
+ virtual UChar setIndex(int32_t position) = 0;
465
+
466
+ /**
467
+ * Sets the iterator to refer to the beginning of the code point
468
+ * that contains the "position"-th code unit
469
+ * in the text-storage object the iterator refers to, and
470
+ * returns that code point.
471
+ * The current position is adjusted to the beginning of the code point
472
+ * (its first code unit).
473
+ * @param position the "position"-th code unit in the text-storage object
474
+ * @return the "position"-th code point.
475
+ * @stable ICU 2.0
476
+ */
477
+ virtual UChar32 setIndex32(int32_t position) = 0;
478
+
479
+ /**
480
+ * Returns the code unit the iterator currently refers to.
481
+ * @return the current code unit.
482
+ * @stable ICU 2.0
483
+ */
484
+ virtual UChar current(void) const = 0;
485
+
486
+ /**
487
+ * Returns the code point the iterator currently refers to.
488
+ * @return the current code point.
489
+ * @stable ICU 2.0
490
+ */
491
+ virtual UChar32 current32(void) const = 0;
492
+
493
+ /**
494
+ * Advances to the next code unit in the iteration range
495
+ * (toward endIndex()), and returns that code unit. If there are
496
+ * no more code units to return, returns DONE.
497
+ * @return the next code unit.
498
+ * @stable ICU 2.0
499
+ */
500
+ virtual UChar next(void) = 0;
501
+
502
+ /**
503
+ * Advances to the next code point in the iteration range
504
+ * (toward endIndex()), and returns that code point. If there are
505
+ * no more code points to return, returns DONE.
506
+ * Note that iteration with "pre-increment" semantics is less
507
+ * efficient than iteration with "post-increment" semantics
508
+ * that is provided by next32PostInc().
509
+ * @return the next code point.
510
+ * @stable ICU 2.0
511
+ */
512
+ virtual UChar32 next32(void) = 0;
513
+
514
+ /**
515
+ * Advances to the previous code unit in the iteration range
516
+ * (toward startIndex()), and returns that code unit. If there are
517
+ * no more code units to return, returns DONE.
518
+ * @return the previous code unit.
519
+ * @stable ICU 2.0
520
+ */
521
+ virtual UChar previous(void) = 0;
522
+
523
+ /**
524
+ * Advances to the previous code point in the iteration range
525
+ * (toward startIndex()), and returns that code point. If there are
526
+ * no more code points to return, returns DONE.
527
+ * @return the previous code point.
528
+ * @stable ICU 2.0
529
+ */
530
+ virtual UChar32 previous32(void) = 0;
531
+
532
+ /**
533
+ * Returns FALSE if there are no more code units or code points
534
+ * before the current position in the iteration range.
535
+ * This is used with previous() or previous32() in backward
536
+ * iteration.
537
+ * @return FALSE if there are no more code units or code points
538
+ * before the current position in the iteration range, return TRUE otherwise.
539
+ * @stable ICU 2.0
540
+ */
541
+ virtual UBool hasPrevious() = 0;
542
+
543
+ /**
544
+ * Returns the numeric index in the underlying text-storage
545
+ * object of the character returned by first(). Since it's
546
+ * possible to create an iterator that iterates across only
547
+ * part of a text-storage object, this number isn't
548
+ * necessarily 0.
549
+ * @returns the numeric index in the underlying text-storage
550
+ * object of the character returned by first().
551
+ * @stable ICU 2.0
552
+ */
553
+ inline int32_t startIndex(void) const;
554
+
555
+ /**
556
+ * Returns the numeric index in the underlying text-storage
557
+ * object of the position immediately BEYOND the character
558
+ * returned by last().
559
+ * @return the numeric index in the underlying text-storage
560
+ * object of the position immediately BEYOND the character
561
+ * returned by last().
562
+ * @stable ICU 2.0
563
+ */
564
+ inline int32_t endIndex(void) const;
565
+
566
+ /**
567
+ * Returns the numeric index in the underlying text-storage
568
+ * object of the character the iterator currently refers to
569
+ * (i.e., the character returned by current()).
570
+ * @return the numberic index in the text-storage object of
571
+ * the character the iterator currently refers to
572
+ * @stable ICU 2.0
573
+ */
574
+ inline int32_t getIndex(void) const;
575
+
576
+ /**
577
+ * Returns the length of the entire text in the underlying
578
+ * text-storage object.
579
+ * @return the length of the entire text in the text-storage object
580
+ * @stable ICU 2.0
581
+ */
582
+ inline int32_t getLength() const;
583
+
584
+ /**
585
+ * Moves the current position relative to the start or end of the
586
+ * iteration range, or relative to the current position itself.
587
+ * The movement is expressed in numbers of code units forward
588
+ * or backward by specifying a positive or negative delta.
589
+ * @param delta the position relative to origin. A positive delta means forward;
590
+ * a negative delta means backward.
591
+ * @param origin Origin enumeration {kStart, kCurrent, kEnd}
592
+ * @return the new position
593
+ * @stable ICU 2.0
594
+ */
595
+ virtual int32_t move(int32_t delta, EOrigin origin) = 0;
596
+
597
+ /**
598
+ * Moves the current position relative to the start or end of the
599
+ * iteration range, or relative to the current position itself.
600
+ * The movement is expressed in numbers of code points forward
601
+ * or backward by specifying a positive or negative delta.
602
+ * @param delta the position relative to origin. A positive delta means forward;
603
+ * a negative delta means backward.
604
+ * @param origin Origin enumeration {kStart, kCurrent, kEnd}
605
+ * @return the new position
606
+ * @stable ICU 2.0
607
+ */
608
+ virtual int32_t move32(int32_t delta, EOrigin origin) = 0;
609
+
610
+ /**
611
+ * Copies the text under iteration into the UnicodeString
612
+ * referred to by "result".
613
+ * @param result Receives a copy of the text under iteration.
614
+ * @stable ICU 2.0
615
+ */
616
+ virtual void getText(UnicodeString& result) = 0;
617
+
618
+ protected:
619
+ /**
620
+ * Empty constructor.
621
+ * @stable ICU 2.0
622
+ */
623
+ CharacterIterator();
624
+
625
+ /**
626
+ * Constructor, just setting the length field in this base class.
627
+ * @stable ICU 2.0
628
+ */
629
+ CharacterIterator(int32_t length);
630
+
631
+ /**
632
+ * Constructor, just setting the length and position fields in this base class.
633
+ * @stable ICU 2.0
634
+ */
635
+ CharacterIterator(int32_t length, int32_t position);
636
+
637
+ /**
638
+ * Constructor, just setting the length, start, end, and position fields in this base class.
639
+ * @stable ICU 2.0
640
+ */
641
+ CharacterIterator(int32_t length, int32_t textBegin, int32_t textEnd, int32_t position);
642
+
643
+ /**
644
+ * Copy constructor.
645
+ *
646
+ * @param that The CharacterIterator to be copied
647
+ * @stable ICU 2.0
648
+ */
649
+ CharacterIterator(const CharacterIterator &that);
650
+
651
+ /**
652
+ * Assignment operator. Sets this CharacterIterator to have the same behavior,
653
+ * as the one passed in.
654
+ * @param that The CharacterIterator passed in.
655
+ * @return the newly set CharacterIterator.
656
+ * @stable ICU 2.0
657
+ */
658
+ CharacterIterator &operator=(const CharacterIterator &that);
659
+
660
+ /**
661
+ * Base class text length field.
662
+ * Necessary this for correct getText() and hashCode().
663
+ * @stable ICU 2.0
664
+ */
665
+ int32_t textLength;
666
+
667
+ /**
668
+ * Base class field for the current position.
669
+ * @stable ICU 2.0
670
+ */
671
+ int32_t pos;
672
+
673
+ /**
674
+ * Base class field for the start of the iteration range.
675
+ * @stable ICU 2.0
676
+ */
677
+ int32_t begin;
678
+
679
+ /**
680
+ * Base class field for the end of the iteration range.
681
+ * @stable ICU 2.0
682
+ */
683
+ int32_t end;
684
+ };
685
+
686
+ inline UBool
687
+ ForwardCharacterIterator::operator!=(const ForwardCharacterIterator& that) const {
688
+ return !operator==(that);
689
+ }
690
+
691
+ inline int32_t
692
+ CharacterIterator::setToStart() {
693
+ return move(0, kStart);
694
+ }
695
+
696
+ inline int32_t
697
+ CharacterIterator::setToEnd() {
698
+ return move(0, kEnd);
699
+ }
700
+
701
+ inline int32_t
702
+ CharacterIterator::startIndex(void) const {
703
+ return begin;
704
+ }
705
+
706
+ inline int32_t
707
+ CharacterIterator::endIndex(void) const {
708
+ return end;
709
+ }
710
+
711
+ inline int32_t
712
+ CharacterIterator::getIndex(void) const {
713
+ return pos;
714
+ }
715
+
716
+ inline int32_t
717
+ CharacterIterator::getLength(void) const {
718
+ return textLength;
719
+ }
720
+
721
+ U_NAMESPACE_END
722
+ #endif