pango 2.2.4-x64-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 (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,760 @@
1
+ /*
2
+ ********************************************************************************
3
+ * Copyright (C) 1997-2014, International Business Machines
4
+ * Corporation and others. All Rights Reserved.
5
+ ********************************************************************************
6
+ *
7
+ * File FMTABLE.H
8
+ *
9
+ * Modification History:
10
+ *
11
+ * Date Name Description
12
+ * 02/29/97 aliu Creation.
13
+ ********************************************************************************
14
+ */
15
+ #ifndef FMTABLE_H
16
+ #define FMTABLE_H
17
+
18
+ #include "unicode/utypes.h"
19
+
20
+ /**
21
+ * \file
22
+ * \brief C++ API: Formattable is a thin wrapper for primitive types used for formatting and parsing
23
+ */
24
+
25
+ #if !UCONFIG_NO_FORMATTING
26
+
27
+ #include "unicode/unistr.h"
28
+ #include "unicode/stringpiece.h"
29
+ #include "unicode/uformattable.h"
30
+
31
+ U_NAMESPACE_BEGIN
32
+
33
+ class CharString;
34
+ class DigitList;
35
+
36
+ /**
37
+ * \def UNUM_INTERNAL_STACKARRAY_SIZE
38
+ * @internal
39
+ */
40
+ #if U_PLATFORM == U_PF_OS400
41
+ #define UNUM_INTERNAL_STACKARRAY_SIZE 144
42
+ #else
43
+ #define UNUM_INTERNAL_STACKARRAY_SIZE 128
44
+ #endif
45
+
46
+ /**
47
+ * Formattable objects can be passed to the Format class or
48
+ * its subclasses for formatting. Formattable is a thin wrapper
49
+ * class which interconverts between the primitive numeric types
50
+ * (double, long, etc.) as well as UDate and UnicodeString.
51
+ *
52
+ * <p>Internally, a Formattable object is a union of primitive types.
53
+ * As such, it can only store one flavor of data at a time. To
54
+ * determine what flavor of data it contains, use the getType method.
55
+ *
56
+ * <p>As of ICU 3.0, Formattable may also wrap a UObject pointer,
57
+ * which it owns. This allows an instance of any ICU class to be
58
+ * encapsulated in a Formattable. For legacy reasons and for
59
+ * efficiency, primitive numeric types are still stored directly
60
+ * within a Formattable.
61
+ *
62
+ * <p>The Formattable class is not suitable for subclassing.
63
+ *
64
+ * <p>See UFormattable for a C wrapper.
65
+ */
66
+ class U_I18N_API Formattable : public UObject {
67
+ public:
68
+ /**
69
+ * This enum is only used to let callers distinguish between
70
+ * the Formattable(UDate) constructor and the Formattable(double)
71
+ * constructor; the compiler cannot distinguish the signatures,
72
+ * since UDate is currently typedefed to be either double or long.
73
+ * If UDate is changed later to be a bonafide class
74
+ * or struct, then we no longer need this enum.
75
+ * @stable ICU 2.4
76
+ */
77
+ enum ISDATE { kIsDate };
78
+
79
+ /**
80
+ * Default constructor
81
+ * @stable ICU 2.4
82
+ */
83
+ Formattable(); // Type kLong, value 0
84
+
85
+ /**
86
+ * Creates a Formattable object with a UDate instance.
87
+ * @param d the UDate instance.
88
+ * @param flag the flag to indicate this is a date. Always set it to kIsDate
89
+ * @stable ICU 2.0
90
+ */
91
+ Formattable(UDate d, ISDATE flag);
92
+
93
+ /**
94
+ * Creates a Formattable object with a double number.
95
+ * @param d the double number.
96
+ * @stable ICU 2.0
97
+ */
98
+ Formattable(double d);
99
+
100
+ /**
101
+ * Creates a Formattable object with a long number.
102
+ * @param l the long number.
103
+ * @stable ICU 2.0
104
+ */
105
+ Formattable(int32_t l);
106
+
107
+ /**
108
+ * Creates a Formattable object with an int64_t number
109
+ * @param ll the int64_t number.
110
+ * @stable ICU 2.8
111
+ */
112
+ Formattable(int64_t ll);
113
+
114
+ #if !UCONFIG_NO_CONVERSION
115
+ /**
116
+ * Creates a Formattable object with a char string pointer.
117
+ * Assumes that the char string is null terminated.
118
+ * @param strToCopy the char string.
119
+ * @stable ICU 2.0
120
+ */
121
+ Formattable(const char* strToCopy);
122
+ #endif
123
+
124
+ /**
125
+ * Creates a Formattable object of an appropriate numeric type from a
126
+ * a decimal number in string form. The Formattable will retain the
127
+ * full precision of the input in decimal format, even when it exceeds
128
+ * what can be represented by a double or int64_t.
129
+ *
130
+ * @param number the unformatted (not localized) string representation
131
+ * of the Decimal number.
132
+ * @param status the error code. Possible errors include U_INVALID_FORMAT_ERROR
133
+ * if the format of the string does not conform to that of a
134
+ * decimal number.
135
+ * @stable ICU 4.4
136
+ */
137
+ Formattable(const StringPiece &number, UErrorCode &status);
138
+
139
+ /**
140
+ * Creates a Formattable object with a UnicodeString object to copy from.
141
+ * @param strToCopy the UnicodeString string.
142
+ * @stable ICU 2.0
143
+ */
144
+ Formattable(const UnicodeString& strToCopy);
145
+
146
+ /**
147
+ * Creates a Formattable object with a UnicodeString object to adopt from.
148
+ * @param strToAdopt the UnicodeString string.
149
+ * @stable ICU 2.0
150
+ */
151
+ Formattable(UnicodeString* strToAdopt);
152
+
153
+ /**
154
+ * Creates a Formattable object with an array of Formattable objects.
155
+ * @param arrayToCopy the Formattable object array.
156
+ * @param count the array count.
157
+ * @stable ICU 2.0
158
+ */
159
+ Formattable(const Formattable* arrayToCopy, int32_t count);
160
+
161
+ /**
162
+ * Creates a Formattable object that adopts the given UObject.
163
+ * @param objectToAdopt the UObject to set this object to
164
+ * @stable ICU 3.0
165
+ */
166
+ Formattable(UObject* objectToAdopt);
167
+
168
+ /**
169
+ * Copy constructor.
170
+ * @stable ICU 2.0
171
+ */
172
+ Formattable(const Formattable&);
173
+
174
+ /**
175
+ * Assignment operator.
176
+ * @param rhs The Formattable object to copy into this object.
177
+ * @stable ICU 2.0
178
+ */
179
+ Formattable& operator=(const Formattable &rhs);
180
+
181
+ /**
182
+ * Equality comparison.
183
+ * @param other the object to be compared with.
184
+ * @return TRUE if other are equal to this, FALSE otherwise.
185
+ * @stable ICU 2.0
186
+ */
187
+ UBool operator==(const Formattable &other) const;
188
+
189
+ /**
190
+ * Equality operator.
191
+ * @param other the object to be compared with.
192
+ * @return TRUE if other are unequal to this, FALSE otherwise.
193
+ * @stable ICU 2.0
194
+ */
195
+ UBool operator!=(const Formattable& other) const
196
+ { return !operator==(other); }
197
+
198
+ /**
199
+ * Destructor.
200
+ * @stable ICU 2.0
201
+ */
202
+ virtual ~Formattable();
203
+
204
+ /**
205
+ * Clone this object.
206
+ * Clones can be used concurrently in multiple threads.
207
+ * If an error occurs, then NULL is returned.
208
+ * The caller must delete the clone.
209
+ *
210
+ * @return a clone of this object
211
+ *
212
+ * @see getDynamicClassID
213
+ * @stable ICU 2.8
214
+ */
215
+ Formattable *clone() const;
216
+
217
+ /**
218
+ * Selector for flavor of data type contained within a
219
+ * Formattable object. Formattable is a union of several
220
+ * different types, and at any time contains exactly one type.
221
+ * @stable ICU 2.4
222
+ */
223
+ enum Type {
224
+ /**
225
+ * Selector indicating a UDate value. Use getDate to retrieve
226
+ * the value.
227
+ * @stable ICU 2.4
228
+ */
229
+ kDate,
230
+
231
+ /**
232
+ * Selector indicating a double value. Use getDouble to
233
+ * retrieve the value.
234
+ * @stable ICU 2.4
235
+ */
236
+ kDouble,
237
+
238
+ /**
239
+ * Selector indicating a 32-bit integer value. Use getLong to
240
+ * retrieve the value.
241
+ * @stable ICU 2.4
242
+ */
243
+ kLong,
244
+
245
+ /**
246
+ * Selector indicating a UnicodeString value. Use getString
247
+ * to retrieve the value.
248
+ * @stable ICU 2.4
249
+ */
250
+ kString,
251
+
252
+ /**
253
+ * Selector indicating an array of Formattables. Use getArray
254
+ * to retrieve the value.
255
+ * @stable ICU 2.4
256
+ */
257
+ kArray,
258
+
259
+ /**
260
+ * Selector indicating a 64-bit integer value. Use getInt64
261
+ * to retrieve the value.
262
+ * @stable ICU 2.8
263
+ */
264
+ kInt64,
265
+
266
+ /**
267
+ * Selector indicating a UObject value. Use getObject to
268
+ * retrieve the value.
269
+ * @stable ICU 3.0
270
+ */
271
+ kObject
272
+ };
273
+
274
+ /**
275
+ * Gets the data type of this Formattable object.
276
+ * @return the data type of this Formattable object.
277
+ * @stable ICU 2.0
278
+ */
279
+ Type getType(void) const;
280
+
281
+ /**
282
+ * Returns TRUE if the data type of this Formattable object
283
+ * is kDouble, kLong, or kInt64
284
+ * @return TRUE if this is a pure numeric object
285
+ * @stable ICU 3.0
286
+ */
287
+ UBool isNumeric() const;
288
+
289
+ /**
290
+ * Gets the double value of this object. If this object is not of type
291
+ * kDouble then the result is undefined.
292
+ * @return the double value of this object.
293
+ * @stable ICU 2.0
294
+ */
295
+ double getDouble(void) const { return fValue.fDouble; }
296
+
297
+ /**
298
+ * Gets the double value of this object. If this object is of type
299
+ * long, int64 or Decimal Number then a conversion is peformed, with
300
+ * possible loss of precision. If the type is kObject and the
301
+ * object is a Measure, then the result of
302
+ * getNumber().getDouble(status) is returned. If this object is
303
+ * neither a numeric type nor a Measure, then 0 is returned and
304
+ * the status is set to U_INVALID_FORMAT_ERROR.
305
+ * @param status the error code
306
+ * @return the double value of this object.
307
+ * @stable ICU 3.0
308
+ */
309
+ double getDouble(UErrorCode& status) const;
310
+
311
+ /**
312
+ * Gets the long value of this object. If this object is not of type
313
+ * kLong then the result is undefined.
314
+ * @return the long value of this object.
315
+ * @stable ICU 2.0
316
+ */
317
+ int32_t getLong(void) const { return (int32_t)fValue.fInt64; }
318
+
319
+ /**
320
+ * Gets the long value of this object. If the magnitude is too
321
+ * large to fit in a long, then the maximum or minimum long value,
322
+ * as appropriate, is returned and the status is set to
323
+ * U_INVALID_FORMAT_ERROR. If this object is of type kInt64 and
324
+ * it fits within a long, then no precision is lost. If it is of
325
+ * type kDouble, then a conversion is peformed, with
326
+ * truncation of any fractional part. If the type is kObject and
327
+ * the object is a Measure, then the result of
328
+ * getNumber().getLong(status) is returned. If this object is
329
+ * neither a numeric type nor a Measure, then 0 is returned and
330
+ * the status is set to U_INVALID_FORMAT_ERROR.
331
+ * @param status the error code
332
+ * @return the long value of this object.
333
+ * @stable ICU 3.0
334
+ */
335
+ int32_t getLong(UErrorCode& status) const;
336
+
337
+ /**
338
+ * Gets the int64 value of this object. If this object is not of type
339
+ * kInt64 then the result is undefined.
340
+ * @return the int64 value of this object.
341
+ * @stable ICU 2.8
342
+ */
343
+ int64_t getInt64(void) const { return fValue.fInt64; }
344
+
345
+ /**
346
+ * Gets the int64 value of this object. If this object is of a numeric
347
+ * type and the magnitude is too large to fit in an int64, then
348
+ * the maximum or minimum int64 value, as appropriate, is returned
349
+ * and the status is set to U_INVALID_FORMAT_ERROR. If the
350
+ * magnitude fits in an int64, then a casting conversion is
351
+ * peformed, with truncation of any fractional part. If the type
352
+ * is kObject and the object is a Measure, then the result of
353
+ * getNumber().getDouble(status) is returned. If this object is
354
+ * neither a numeric type nor a Measure, then 0 is returned and
355
+ * the status is set to U_INVALID_FORMAT_ERROR.
356
+ * @param status the error code
357
+ * @return the int64 value of this object.
358
+ * @stable ICU 3.0
359
+ */
360
+ int64_t getInt64(UErrorCode& status) const;
361
+
362
+ /**
363
+ * Gets the Date value of this object. If this object is not of type
364
+ * kDate then the result is undefined.
365
+ * @return the Date value of this object.
366
+ * @stable ICU 2.0
367
+ */
368
+ UDate getDate() const { return fValue.fDate; }
369
+
370
+ /**
371
+ * Gets the Date value of this object. If the type is not a date,
372
+ * status is set to U_INVALID_FORMAT_ERROR and the return value is
373
+ * undefined.
374
+ * @param status the error code.
375
+ * @return the Date value of this object.
376
+ * @stable ICU 3.0
377
+ */
378
+ UDate getDate(UErrorCode& status) const;
379
+
380
+ /**
381
+ * Gets the string value of this object. If this object is not of type
382
+ * kString then the result is undefined.
383
+ * @param result Output param to receive the Date value of this object.
384
+ * @return A reference to 'result'.
385
+ * @stable ICU 2.0
386
+ */
387
+ UnicodeString& getString(UnicodeString& result) const
388
+ { result=*fValue.fString; return result; }
389
+
390
+ /**
391
+ * Gets the string value of this object. If the type is not a
392
+ * string, status is set to U_INVALID_FORMAT_ERROR and a bogus
393
+ * string is returned.
394
+ * @param result Output param to receive the Date value of this object.
395
+ * @param status the error code.
396
+ * @return A reference to 'result'.
397
+ * @stable ICU 3.0
398
+ */
399
+ UnicodeString& getString(UnicodeString& result, UErrorCode& status) const;
400
+
401
+ /**
402
+ * Gets a const reference to the string value of this object. If
403
+ * this object is not of type kString then the result is
404
+ * undefined.
405
+ * @return a const reference to the string value of this object.
406
+ * @stable ICU 2.0
407
+ */
408
+ inline const UnicodeString& getString(void) const;
409
+
410
+ /**
411
+ * Gets a const reference to the string value of this object. If
412
+ * the type is not a string, status is set to
413
+ * U_INVALID_FORMAT_ERROR and the result is a bogus string.
414
+ * @param status the error code.
415
+ * @return a const reference to the string value of this object.
416
+ * @stable ICU 3.0
417
+ */
418
+ const UnicodeString& getString(UErrorCode& status) const;
419
+
420
+ /**
421
+ * Gets a reference to the string value of this object. If this
422
+ * object is not of type kString then the result is undefined.
423
+ * @return a reference to the string value of this object.
424
+ * @stable ICU 2.0
425
+ */
426
+ inline UnicodeString& getString(void);
427
+
428
+ /**
429
+ * Gets a reference to the string value of this object. If the
430
+ * type is not a string, status is set to U_INVALID_FORMAT_ERROR
431
+ * and the result is a bogus string.
432
+ * @param status the error code.
433
+ * @return a reference to the string value of this object.
434
+ * @stable ICU 3.0
435
+ */
436
+ UnicodeString& getString(UErrorCode& status);
437
+
438
+ /**
439
+ * Gets the array value and count of this object. If this object
440
+ * is not of type kArray then the result is undefined.
441
+ * @param count fill-in with the count of this object.
442
+ * @return the array value of this object.
443
+ * @stable ICU 2.0
444
+ */
445
+ const Formattable* getArray(int32_t& count) const
446
+ { count=fValue.fArrayAndCount.fCount; return fValue.fArrayAndCount.fArray; }
447
+
448
+ /**
449
+ * Gets the array value and count of this object. If the type is
450
+ * not an array, status is set to U_INVALID_FORMAT_ERROR, count is
451
+ * set to 0, and the result is NULL.
452
+ * @param count fill-in with the count of this object.
453
+ * @param status the error code.
454
+ * @return the array value of this object.
455
+ * @stable ICU 3.0
456
+ */
457
+ const Formattable* getArray(int32_t& count, UErrorCode& status) const;
458
+
459
+ /**
460
+ * Accesses the specified element in the array value of this
461
+ * Formattable object. If this object is not of type kArray then
462
+ * the result is undefined.
463
+ * @param index the specified index.
464
+ * @return the accessed element in the array.
465
+ * @stable ICU 2.0
466
+ */
467
+ Formattable& operator[](int32_t index) { return fValue.fArrayAndCount.fArray[index]; }
468
+
469
+ /**
470
+ * Returns a pointer to the UObject contained within this
471
+ * formattable, or NULL if this object does not contain a UObject.
472
+ * @return a UObject pointer, or NULL
473
+ * @stable ICU 3.0
474
+ */
475
+ const UObject* getObject() const;
476
+
477
+ /**
478
+ * Returns a numeric string representation of the number contained within this
479
+ * formattable, or NULL if this object does not contain numeric type.
480
+ * For values obtained by parsing, the returned decimal number retains
481
+ * the full precision and range of the original input, unconstrained by
482
+ * the limits of a double floating point or a 64 bit int.
483
+ *
484
+ * This function is not thread safe, and therfore is not declared const,
485
+ * even though it is logically const.
486
+ *
487
+ * Possible errors include U_MEMORY_ALLOCATION_ERROR, and
488
+ * U_INVALID_STATE if the formattable object has not been set to
489
+ * a numeric type.
490
+ *
491
+ * @param status the error code.
492
+ * @return the unformatted string representation of a number.
493
+ * @stable ICU 4.4
494
+ */
495
+ StringPiece getDecimalNumber(UErrorCode &status);
496
+
497
+ /**
498
+ * Sets the double value of this object and changes the type to
499
+ * kDouble.
500
+ * @param d the new double value to be set.
501
+ * @stable ICU 2.0
502
+ */
503
+ void setDouble(double d);
504
+
505
+ /**
506
+ * Sets the long value of this object and changes the type to
507
+ * kLong.
508
+ * @param l the new long value to be set.
509
+ * @stable ICU 2.0
510
+ */
511
+ void setLong(int32_t l);
512
+
513
+ /**
514
+ * Sets the int64 value of this object and changes the type to
515
+ * kInt64.
516
+ * @param ll the new int64 value to be set.
517
+ * @stable ICU 2.8
518
+ */
519
+ void setInt64(int64_t ll);
520
+
521
+ /**
522
+ * Sets the Date value of this object and changes the type to
523
+ * kDate.
524
+ * @param d the new Date value to be set.
525
+ * @stable ICU 2.0
526
+ */
527
+ void setDate(UDate d);
528
+
529
+ /**
530
+ * Sets the string value of this object and changes the type to
531
+ * kString.
532
+ * @param stringToCopy the new string value to be set.
533
+ * @stable ICU 2.0
534
+ */
535
+ void setString(const UnicodeString& stringToCopy);
536
+
537
+ /**
538
+ * Sets the array value and count of this object and changes the
539
+ * type to kArray.
540
+ * @param array the array value.
541
+ * @param count the number of array elements to be copied.
542
+ * @stable ICU 2.0
543
+ */
544
+ void setArray(const Formattable* array, int32_t count);
545
+
546
+ /**
547
+ * Sets and adopts the string value and count of this object and
548
+ * changes the type to kArray.
549
+ * @param stringToAdopt the new string value to be adopted.
550
+ * @stable ICU 2.0
551
+ */
552
+ void adoptString(UnicodeString* stringToAdopt);
553
+
554
+ /**
555
+ * Sets and adopts the array value and count of this object and
556
+ * changes the type to kArray.
557
+ * @stable ICU 2.0
558
+ */
559
+ void adoptArray(Formattable* array, int32_t count);
560
+
561
+ /**
562
+ * Sets and adopts the UObject value of this object and changes
563
+ * the type to kObject. After this call, the caller must not
564
+ * delete the given object.
565
+ * @param objectToAdopt the UObject value to be adopted
566
+ * @stable ICU 3.0
567
+ */
568
+ void adoptObject(UObject* objectToAdopt);
569
+
570
+ /**
571
+ * Sets the the numeric value from a decimal number string, and changes
572
+ * the type to to a numeric type appropriate for the number.
573
+ * The syntax of the number is a "numeric string"
574
+ * as defined in the Decimal Arithmetic Specification, available at
575
+ * http://speleotrove.com/decimal
576
+ * The full precision and range of the input number will be retained,
577
+ * even when it exceeds what can be represented by a double or an int64.
578
+ *
579
+ * @param numberString a string representation of the unformatted decimal number.
580
+ * @param status the error code. Set to U_INVALID_FORMAT_ERROR if the
581
+ * incoming string is not a valid decimal number.
582
+ * @stable ICU 4.4
583
+ */
584
+ void setDecimalNumber(const StringPiece &numberString,
585
+ UErrorCode &status);
586
+
587
+ /**
588
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
589
+ *
590
+ * @stable ICU 2.2
591
+ */
592
+ virtual UClassID getDynamicClassID() const;
593
+
594
+ /**
595
+ * ICU "poor man's RTTI", returns a UClassID for this class.
596
+ *
597
+ * @stable ICU 2.2
598
+ */
599
+ static UClassID U_EXPORT2 getStaticClassID();
600
+
601
+ /**
602
+ * Convert the UFormattable to a Formattable. Internally, this is a reinterpret_cast.
603
+ * @param fmt a valid UFormattable
604
+ * @return the UFormattable as a Formattable object pointer. This is an alias to the original
605
+ * UFormattable, and so is only valid while the original argument remains in scope.
606
+ * @stable ICU 52
607
+ */
608
+ static inline Formattable *fromUFormattable(UFormattable *fmt);
609
+
610
+ /**
611
+ * Convert the const UFormattable to a const Formattable. Internally, this is a reinterpret_cast.
612
+ * @param fmt a valid UFormattable
613
+ * @return the UFormattable as a Formattable object pointer. This is an alias to the original
614
+ * UFormattable, and so is only valid while the original argument remains in scope.
615
+ * @stable ICU 52
616
+ */
617
+ static inline const Formattable *fromUFormattable(const UFormattable *fmt);
618
+
619
+ /**
620
+ * Convert this object pointer to a UFormattable.
621
+ * @return this object as a UFormattable pointer. This is an alias to this object,
622
+ * and so is only valid while this object remains in scope.
623
+ * @stable ICU 52
624
+ */
625
+ inline UFormattable *toUFormattable();
626
+
627
+ /**
628
+ * Convert this object pointer to a UFormattable.
629
+ * @return this object as a UFormattable pointer. This is an alias to this object,
630
+ * and so is only valid while this object remains in scope.
631
+ * @stable ICU 52
632
+ */
633
+ inline const UFormattable *toUFormattable() const;
634
+
635
+ #ifndef U_HIDE_DEPRECATED_API
636
+ /**
637
+ * Deprecated variant of getLong(UErrorCode&).
638
+ * @param status the error code
639
+ * @return the long value of this object.
640
+ * @deprecated ICU 3.0 use getLong(UErrorCode&) instead
641
+ */
642
+ inline int32_t getLong(UErrorCode* status) const;
643
+ #endif /* U_HIDE_DEPRECATED_API */
644
+
645
+ #ifndef U_HIDE_INTERNAL_API
646
+ /**
647
+ * Internal function, do not use.
648
+ * TODO: figure out how to make this be non-public.
649
+ * NumberFormat::format(Formattable, ...
650
+ * needs to get at the DigitList, if it exists, for
651
+ * big decimal formatting.
652
+ * @internal
653
+ */
654
+ DigitList *getDigitList() const { return fDecimalNum;}
655
+
656
+ /**
657
+ * @internal
658
+ */
659
+ DigitList *getInternalDigitList();
660
+
661
+ /**
662
+ * Adopt, and set value from, a DigitList
663
+ * Internal Function, do not use.
664
+ * @param dl the Digit List to be adopted
665
+ * @internal
666
+ */
667
+ void adoptDigitList(DigitList *dl);
668
+
669
+ /**
670
+ * Internal function to return the CharString pointer.
671
+ * @param status error code
672
+ * @return pointer to the CharString - may become invalid if the object is modified
673
+ * @internal
674
+ */
675
+ CharString *internalGetCharString(UErrorCode &status);
676
+
677
+ #endif /* U_HIDE_INTERNAL_API */
678
+
679
+ private:
680
+ /**
681
+ * Cleans up the memory for unwanted values. For example, the adopted
682
+ * string or array objects.
683
+ */
684
+ void dispose(void);
685
+
686
+ /**
687
+ * Common initialization, for use by constructors.
688
+ */
689
+ void init();
690
+
691
+ UnicodeString* getBogus() const;
692
+
693
+ union {
694
+ UObject* fObject;
695
+ UnicodeString* fString;
696
+ double fDouble;
697
+ int64_t fInt64;
698
+ UDate fDate;
699
+ struct {
700
+ Formattable* fArray;
701
+ int32_t fCount;
702
+ } fArrayAndCount;
703
+ } fValue;
704
+
705
+ CharString *fDecimalStr;
706
+
707
+ DigitList *fDecimalNum;
708
+
709
+ char fStackData[UNUM_INTERNAL_STACKARRAY_SIZE]; // must be big enough for DigitList
710
+
711
+ Type fType;
712
+ UnicodeString fBogus; // Bogus string when it's needed.
713
+ };
714
+
715
+ inline UDate Formattable::getDate(UErrorCode& status) const {
716
+ if (fType != kDate) {
717
+ if (U_SUCCESS(status)) {
718
+ status = U_INVALID_FORMAT_ERROR;
719
+ }
720
+ return 0;
721
+ }
722
+ return fValue.fDate;
723
+ }
724
+
725
+ inline const UnicodeString& Formattable::getString(void) const {
726
+ return *fValue.fString;
727
+ }
728
+
729
+ inline UnicodeString& Formattable::getString(void) {
730
+ return *fValue.fString;
731
+ }
732
+
733
+ #ifndef U_HIDE_DEPRECATED_API
734
+ inline int32_t Formattable::getLong(UErrorCode* status) const {
735
+ return getLong(*status);
736
+ }
737
+ #endif /* U_HIDE_DEPRECATED_API */
738
+
739
+ inline UFormattable* Formattable::toUFormattable() {
740
+ return reinterpret_cast<UFormattable*>(this);
741
+ }
742
+
743
+ inline const UFormattable* Formattable::toUFormattable() const {
744
+ return reinterpret_cast<const UFormattable*>(this);
745
+ }
746
+
747
+ inline Formattable* Formattable::fromUFormattable(UFormattable *fmt) {
748
+ return reinterpret_cast<Formattable *>(fmt);
749
+ }
750
+
751
+ inline const Formattable* Formattable::fromUFormattable(const UFormattable *fmt) {
752
+ return reinterpret_cast<const Formattable *>(fmt);
753
+ }
754
+
755
+ U_NAMESPACE_END
756
+
757
+ #endif /* #if !UCONFIG_NO_FORMATTING */
758
+
759
+ #endif //_FMTABLE
760
+ //eof