pango 2.2.4-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (530) hide show
  1. checksums.yaml +7 -0
  2. data/README +33 -0
  3. data/Rakefile +65 -0
  4. data/ext/pango/depend +12 -0
  5. data/ext/pango/extconf.rb +90 -0
  6. data/ext/pango/pango.def +18 -0
  7. data/ext/pango/rbpango.c +318 -0
  8. data/ext/pango/rbpango.h +96 -0
  9. data/ext/pango/rbpangoanalysis.c +218 -0
  10. data/ext/pango/rbpangoattribute.c +499 -0
  11. data/ext/pango/rbpangoattriterator.c +141 -0
  12. data/ext/pango/rbpangoattrlist.c +101 -0
  13. data/ext/pango/rbpangocairo.c +122 -0
  14. data/ext/pango/rbpangocairocontext.c +131 -0
  15. data/ext/pango/rbpangocolor.c +120 -0
  16. data/ext/pango/rbpangocontext.c +309 -0
  17. data/ext/pango/rbpangoconversions.h +111 -0
  18. data/ext/pango/rbpangocoverage.c +106 -0
  19. data/ext/pango/rbpangoengine.c +73 -0
  20. data/ext/pango/rbpangofont.c +110 -0
  21. data/ext/pango/rbpangofontdescription.c +282 -0
  22. data/ext/pango/rbpangofontface.c +73 -0
  23. data/ext/pango/rbpangofontfamily.c +79 -0
  24. data/ext/pango/rbpangofontmap.c +102 -0
  25. data/ext/pango/rbpangofontmetrics.c +85 -0
  26. data/ext/pango/rbpangofontset.c +69 -0
  27. data/ext/pango/rbpangofontsetsimple.c +60 -0
  28. data/ext/pango/rbpangoglyphinfo.c +123 -0
  29. data/ext/pango/rbpangoglyphitem.c +125 -0
  30. data/ext/pango/rbpangoglyphstring.c +151 -0
  31. data/ext/pango/rbpangogravity.c +54 -0
  32. data/ext/pango/rbpangoitem.c +95 -0
  33. data/ext/pango/rbpangolanguage.c +86 -0
  34. data/ext/pango/rbpangolayout.c +572 -0
  35. data/ext/pango/rbpangolayoutiter.c +189 -0
  36. data/ext/pango/rbpangolayoutline.c +239 -0
  37. data/ext/pango/rbpangologattr.c +109 -0
  38. data/ext/pango/rbpangomatrix.c +143 -0
  39. data/ext/pango/rbpangoprivate.h +49 -0
  40. data/ext/pango/rbpangorectangle.c +170 -0
  41. data/ext/pango/rbpangorenderer.c +193 -0
  42. data/ext/pango/rbpangoscript.c +84 -0
  43. data/ext/pango/rbpangoscriptiter.c +92 -0
  44. data/ext/pango/rbpangotabarray.c +128 -0
  45. data/extconf.rb +49 -0
  46. data/lib/2.0/pango.so +0 -0
  47. data/lib/2.1/pango.so +0 -0
  48. data/lib/2.2/pango.so +0 -0
  49. data/lib/pango.rb +79 -0
  50. data/sample/attribute.rb +82 -0
  51. data/sample/break.rb +28 -0
  52. data/sample/gdk_layout.rb +27 -0
  53. data/sample/glyphstring.rb +61 -0
  54. data/sample/item.rb +37 -0
  55. data/sample/label.rb +23 -0
  56. data/sample/layout.rb +102 -0
  57. data/sample/pango_cairo.rb +66 -0
  58. data/sample/parse.rb +33 -0
  59. data/sample/sample.txt +10 -0
  60. data/sample/script.rb +23 -0
  61. data/test/pango-test-utils.rb +9 -0
  62. data/test/run-test.rb +28 -0
  63. data/test/test-analysis.rb +26 -0
  64. data/test/test-attribute.rb +19 -0
  65. data/test/test-color.rb +47 -0
  66. data/test/test-language.rb +7 -0
  67. data/test/test-layout.rb +34 -0
  68. data/test/test-log-attr.rb +26 -0
  69. data/test/test-matrix.rb +26 -0
  70. data/test/test-rectangle.rb +26 -0
  71. data/vendor/local/bin/derb.exe +0 -0
  72. data/vendor/local/bin/genbrk.exe +0 -0
  73. data/vendor/local/bin/genccode.exe +0 -0
  74. data/vendor/local/bin/gencfu.exe +0 -0
  75. data/vendor/local/bin/gencmn.exe +0 -0
  76. data/vendor/local/bin/gencnval.exe +0 -0
  77. data/vendor/local/bin/gendict.exe +0 -0
  78. data/vendor/local/bin/gennorm2.exe +0 -0
  79. data/vendor/local/bin/genrb.exe +0 -0
  80. data/vendor/local/bin/gensprep.exe +0 -0
  81. data/vendor/local/bin/hb-ot-shape-closure.exe +0 -0
  82. data/vendor/local/bin/hb-shape.exe +0 -0
  83. data/vendor/local/bin/hb-view.exe +0 -0
  84. data/vendor/local/bin/icu-config +820 -0
  85. data/vendor/local/bin/icuinfo.exe +0 -0
  86. data/vendor/local/bin/icupkg.exe +0 -0
  87. data/vendor/local/bin/libharfbuzz-0.dll +0 -0
  88. data/vendor/local/bin/libpango-1.0-0.dll +0 -0
  89. data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
  90. data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
  91. data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
  92. data/vendor/local/bin/makeconv.exe +0 -0
  93. data/vendor/local/bin/pango-querymodules.exe +0 -0
  94. data/vendor/local/bin/pango-view.exe +0 -0
  95. data/vendor/local/bin/pkgdata.exe +0 -0
  96. data/vendor/local/bin/uconv.exe +0 -0
  97. data/vendor/local/etc/pango/pango.modules +19 -0
  98. data/vendor/local/include/harfbuzz/hb-blob.h +126 -0
  99. data/vendor/local/include/harfbuzz/hb-buffer.h +344 -0
  100. data/vendor/local/include/harfbuzz/hb-common.h +344 -0
  101. data/vendor/local/include/harfbuzz/hb-deprecated.h +51 -0
  102. data/vendor/local/include/harfbuzz/hb-face.h +117 -0
  103. data/vendor/local/include/harfbuzz/hb-font.h +507 -0
  104. data/vendor/local/include/harfbuzz/hb-ft.h +62 -0
  105. data/vendor/local/include/harfbuzz/hb-glib.h +52 -0
  106. data/vendor/local/include/harfbuzz/hb-icu.h +52 -0
  107. data/vendor/local/include/harfbuzz/hb-ot-font.h +41 -0
  108. data/vendor/local/include/harfbuzz/hb-ot-layout.h +302 -0
  109. data/vendor/local/include/harfbuzz/hb-ot-shape.h +53 -0
  110. data/vendor/local/include/harfbuzz/hb-ot-tag.h +59 -0
  111. data/vendor/local/include/harfbuzz/hb-ot.h +43 -0
  112. data/vendor/local/include/harfbuzz/hb-set.h +154 -0
  113. data/vendor/local/include/harfbuzz/hb-shape-plan.h +89 -0
  114. data/vendor/local/include/harfbuzz/hb-shape.h +81 -0
  115. data/vendor/local/include/harfbuzz/hb-unicode.h +445 -0
  116. data/vendor/local/include/harfbuzz/hb-version.h +66 -0
  117. data/vendor/local/include/harfbuzz/hb.h +47 -0
  118. data/vendor/local/include/layout/LEFontInstance.h +550 -0
  119. data/vendor/local/include/layout/LEGlyphFilter.h +45 -0
  120. data/vendor/local/include/layout/LEGlyphStorage.h +546 -0
  121. data/vendor/local/include/layout/LEInsertionList.h +177 -0
  122. data/vendor/local/include/layout/LELanguages.h +112 -0
  123. data/vendor/local/include/layout/LEScripts.h +263 -0
  124. data/vendor/local/include/layout/LESwaps.h +100 -0
  125. data/vendor/local/include/layout/LETableReference.h +418 -0
  126. data/vendor/local/include/layout/LETypes.h +728 -0
  127. data/vendor/local/include/layout/LayoutEngine.h +518 -0
  128. data/vendor/local/include/layout/ParagraphLayout.h +747 -0
  129. data/vendor/local/include/layout/RunArrays.h +676 -0
  130. data/vendor/local/include/layout/loengine.h +225 -0
  131. data/vendor/local/include/layout/playout.h +466 -0
  132. data/vendor/local/include/layout/plruns.h +441 -0
  133. data/vendor/local/include/pango-1.0/pango/pango-attributes.h +514 -0
  134. data/vendor/local/include/pango-1.0/pango/pango-bidi-type.h +136 -0
  135. data/vendor/local/include/pango-1.0/pango/pango-break.h +173 -0
  136. data/vendor/local/include/pango-1.0/pango/pango-context.h +112 -0
  137. data/vendor/local/include/pango-1.0/pango/pango-coverage.h +79 -0
  138. data/vendor/local/include/pango-1.0/pango/pango-engine.h +429 -0
  139. data/vendor/local/include/pango-1.0/pango/pango-enum-types.h +69 -0
  140. data/vendor/local/include/pango-1.0/pango/pango-features.h +12 -0
  141. data/vendor/local/include/pango-1.0/pango/pango-font.h +622 -0
  142. data/vendor/local/include/pango-1.0/pango/pango-fontmap.h +167 -0
  143. data/vendor/local/include/pango-1.0/pango/pango-fontset.h +169 -0
  144. data/vendor/local/include/pango-1.0/pango/pango-glyph-item.h +158 -0
  145. data/vendor/local/include/pango-1.0/pango/pango-glyph.h +197 -0
  146. data/vendor/local/include/pango-1.0/pango/pango-gravity.h +128 -0
  147. data/vendor/local/include/pango-1.0/pango/pango-item.h +109 -0
  148. data/vendor/local/include/pango-1.0/pango/pango-language.h +61 -0
  149. data/vendor/local/include/pango-1.0/pango/pango-layout.h +340 -0
  150. data/vendor/local/include/pango-1.0/pango/pango-matrix.h +117 -0
  151. data/vendor/local/include/pango-1.0/pango/pango-modules.h +71 -0
  152. data/vendor/local/include/pango-1.0/pango/pango-ot.h +391 -0
  153. data/vendor/local/include/pango-1.0/pango/pango-renderer.h +260 -0
  154. data/vendor/local/include/pango-1.0/pango/pango-script.h +260 -0
  155. data/vendor/local/include/pango-1.0/pango/pango-tabs.h +87 -0
  156. data/vendor/local/include/pango-1.0/pango/pango-types.h +200 -0
  157. data/vendor/local/include/pango-1.0/pango/pango-utils.h +189 -0
  158. data/vendor/local/include/pango-1.0/pango/pango.h +48 -0
  159. data/vendor/local/include/pango-1.0/pango/pangocairo.h +169 -0
  160. data/vendor/local/include/pango-1.0/pango/pangofc-decoder.h +110 -0
  161. data/vendor/local/include/pango-1.0/pango/pangofc-font.h +153 -0
  162. data/vendor/local/include/pango-1.0/pango/pangofc-fontmap.h +289 -0
  163. data/vendor/local/include/pango-1.0/pango/pangoft2.h +133 -0
  164. data/vendor/local/include/pango-1.0/pango/pangowin32.h +128 -0
  165. data/vendor/local/include/unicode/alphaindex.h +752 -0
  166. data/vendor/local/include/unicode/appendable.h +232 -0
  167. data/vendor/local/include/unicode/basictz.h +214 -0
  168. data/vendor/local/include/unicode/brkiter.h +655 -0
  169. data/vendor/local/include/unicode/bytestream.h +257 -0
  170. data/vendor/local/include/unicode/bytestrie.h +519 -0
  171. data/vendor/local/include/unicode/bytestriebuilder.h +181 -0
  172. data/vendor/local/include/unicode/calendar.h +2519 -0
  173. data/vendor/local/include/unicode/caniter.h +208 -0
  174. data/vendor/local/include/unicode/chariter.h +722 -0
  175. data/vendor/local/include/unicode/choicfmt.h +594 -0
  176. data/vendor/local/include/unicode/coleitr.h +404 -0
  177. data/vendor/local/include/unicode/coll.h +1267 -0
  178. data/vendor/local/include/unicode/compactdecimalformat.h +330 -0
  179. data/vendor/local/include/unicode/curramt.h +130 -0
  180. data/vendor/local/include/unicode/currpinf.h +258 -0
  181. data/vendor/local/include/unicode/currunit.h +110 -0
  182. data/vendor/local/include/unicode/datefmt.h +883 -0
  183. data/vendor/local/include/unicode/dbbi.h +40 -0
  184. data/vendor/local/include/unicode/dcfmtsym.h +482 -0
  185. data/vendor/local/include/unicode/decimfmt.h +2479 -0
  186. data/vendor/local/include/unicode/docmain.h +215 -0
  187. data/vendor/local/include/unicode/dtfmtsym.h +912 -0
  188. data/vendor/local/include/unicode/dtintrv.h +158 -0
  189. data/vendor/local/include/unicode/dtitvfmt.h +985 -0
  190. data/vendor/local/include/unicode/dtitvinf.h +514 -0
  191. data/vendor/local/include/unicode/dtptngen.h +498 -0
  192. data/vendor/local/include/unicode/dtrule.h +250 -0
  193. data/vendor/local/include/unicode/enumset.h +64 -0
  194. data/vendor/local/include/unicode/errorcode.h +137 -0
  195. data/vendor/local/include/unicode/fieldpos.h +291 -0
  196. data/vendor/local/include/unicode/filteredbrk.h +131 -0
  197. data/vendor/local/include/unicode/fmtable.h +760 -0
  198. data/vendor/local/include/unicode/format.h +305 -0
  199. data/vendor/local/include/unicode/fpositer.h +117 -0
  200. data/vendor/local/include/unicode/gender.h +111 -0
  201. data/vendor/local/include/unicode/gregocal.h +777 -0
  202. data/vendor/local/include/unicode/icudataver.h +41 -0
  203. data/vendor/local/include/unicode/icuplug.h +371 -0
  204. data/vendor/local/include/unicode/idna.h +323 -0
  205. data/vendor/local/include/unicode/listformatter.h +167 -0
  206. data/vendor/local/include/unicode/localpointer.h +304 -0
  207. data/vendor/local/include/unicode/locdspnm.h +204 -0
  208. data/vendor/local/include/unicode/locid.h +815 -0
  209. data/vendor/local/include/unicode/measfmt.h +389 -0
  210. data/vendor/local/include/unicode/measunit.h +1443 -0
  211. data/vendor/local/include/unicode/measure.h +159 -0
  212. data/vendor/local/include/unicode/messagepattern.h +943 -0
  213. data/vendor/local/include/unicode/msgfmt.h +1093 -0
  214. data/vendor/local/include/unicode/normalizer2.h +658 -0
  215. data/vendor/local/include/unicode/normlzr.h +797 -0
  216. data/vendor/local/include/unicode/numfmt.h +1187 -0
  217. data/vendor/local/include/unicode/numsys.h +208 -0
  218. data/vendor/local/include/unicode/parseerr.h +92 -0
  219. data/vendor/local/include/unicode/parsepos.h +230 -0
  220. data/vendor/local/include/unicode/platform.h +751 -0
  221. data/vendor/local/include/unicode/plurfmt.h +615 -0
  222. data/vendor/local/include/unicode/plurrule.h +501 -0
  223. data/vendor/local/include/unicode/ptypes.h +126 -0
  224. data/vendor/local/include/unicode/putil.h +181 -0
  225. data/vendor/local/include/unicode/rbbi.h +782 -0
  226. data/vendor/local/include/unicode/rbnf.h +1032 -0
  227. data/vendor/local/include/unicode/rbtz.h +362 -0
  228. data/vendor/local/include/unicode/regex.h +1857 -0
  229. data/vendor/local/include/unicode/region.h +228 -0
  230. data/vendor/local/include/unicode/reldatefmt.h +498 -0
  231. data/vendor/local/include/unicode/rep.h +261 -0
  232. data/vendor/local/include/unicode/resbund.h +490 -0
  233. data/vendor/local/include/unicode/schriter.h +187 -0
  234. data/vendor/local/include/unicode/scientificformathelper.h +139 -0
  235. data/vendor/local/include/unicode/search.h +575 -0
  236. data/vendor/local/include/unicode/selfmt.h +367 -0
  237. data/vendor/local/include/unicode/simpletz.h +928 -0
  238. data/vendor/local/include/unicode/smpdtfmt.h +1592 -0
  239. data/vendor/local/include/unicode/sortkey.h +338 -0
  240. data/vendor/local/include/unicode/std_string.h +37 -0
  241. data/vendor/local/include/unicode/strenum.h +276 -0
  242. data/vendor/local/include/unicode/stringpiece.h +224 -0
  243. data/vendor/local/include/unicode/stringtriebuilder.h +402 -0
  244. data/vendor/local/include/unicode/stsearch.h +504 -0
  245. data/vendor/local/include/unicode/symtable.h +112 -0
  246. data/vendor/local/include/unicode/tblcoll.h +873 -0
  247. data/vendor/local/include/unicode/timezone.h +948 -0
  248. data/vendor/local/include/unicode/tmunit.h +129 -0
  249. data/vendor/local/include/unicode/tmutamt.h +168 -0
  250. data/vendor/local/include/unicode/tmutfmt.h +243 -0
  251. data/vendor/local/include/unicode/translit.h +1342 -0
  252. data/vendor/local/include/unicode/tzfmt.h +1098 -0
  253. data/vendor/local/include/unicode/tznames.h +404 -0
  254. data/vendor/local/include/unicode/tzrule.h +828 -0
  255. data/vendor/local/include/unicode/tztrans.h +195 -0
  256. data/vendor/local/include/unicode/ubidi.h +2186 -0
  257. data/vendor/local/include/unicode/ubrk.h +540 -0
  258. data/vendor/local/include/unicode/ucal.h +1560 -0
  259. data/vendor/local/include/unicode/ucasemap.h +423 -0
  260. data/vendor/local/include/unicode/ucat.h +158 -0
  261. data/vendor/local/include/unicode/uchar.h +3426 -0
  262. data/vendor/local/include/unicode/ucharstrie.h +576 -0
  263. data/vendor/local/include/unicode/ucharstriebuilder.h +185 -0
  264. data/vendor/local/include/unicode/uchriter.h +381 -0
  265. data/vendor/local/include/unicode/uclean.h +258 -0
  266. data/vendor/local/include/unicode/ucnv.h +2036 -0
  267. data/vendor/local/include/unicode/ucnv_cb.h +162 -0
  268. data/vendor/local/include/unicode/ucnv_err.h +463 -0
  269. data/vendor/local/include/unicode/ucnvsel.h +187 -0
  270. data/vendor/local/include/unicode/ucol.h +1474 -0
  271. data/vendor/local/include/unicode/ucoleitr.h +266 -0
  272. data/vendor/local/include/unicode/uconfig.h +430 -0
  273. data/vendor/local/include/unicode/ucsdet.h +413 -0
  274. data/vendor/local/include/unicode/ucurr.h +424 -0
  275. data/vendor/local/include/unicode/udat.h +1536 -0
  276. data/vendor/local/include/unicode/udata.h +430 -0
  277. data/vendor/local/include/unicode/udateintervalformat.h +181 -0
  278. data/vendor/local/include/unicode/udatpg.h +588 -0
  279. data/vendor/local/include/unicode/udisplaycontext.h +150 -0
  280. data/vendor/local/include/unicode/uenum.h +206 -0
  281. data/vendor/local/include/unicode/uformattable.h +280 -0
  282. data/vendor/local/include/unicode/ugender.h +82 -0
  283. data/vendor/local/include/unicode/uidna.h +762 -0
  284. data/vendor/local/include/unicode/uiter.h +707 -0
  285. data/vendor/local/include/unicode/uldnames.h +302 -0
  286. data/vendor/local/include/unicode/uloc.h +1256 -0
  287. data/vendor/local/include/unicode/ulocdata.h +277 -0
  288. data/vendor/local/include/unicode/umachine.h +356 -0
  289. data/vendor/local/include/unicode/umisc.h +60 -0
  290. data/vendor/local/include/unicode/umsg.h +623 -0
  291. data/vendor/local/include/unicode/unifilt.h +120 -0
  292. data/vendor/local/include/unicode/unifunct.h +125 -0
  293. data/vendor/local/include/unicode/unimatch.h +163 -0
  294. data/vendor/local/include/unicode/unirepl.h +97 -0
  295. data/vendor/local/include/unicode/uniset.h +1691 -0
  296. data/vendor/local/include/unicode/unistr.h +4470 -0
  297. data/vendor/local/include/unicode/unorm.h +561 -0
  298. data/vendor/local/include/unicode/unorm2.h +528 -0
  299. data/vendor/local/include/unicode/unum.h +1328 -0
  300. data/vendor/local/include/unicode/unumsys.h +170 -0
  301. data/vendor/local/include/unicode/uobject.h +320 -0
  302. data/vendor/local/include/unicode/upluralrules.h +145 -0
  303. data/vendor/local/include/unicode/uregex.h +1591 -0
  304. data/vendor/local/include/unicode/uregion.h +248 -0
  305. data/vendor/local/include/unicode/urename.h +1784 -0
  306. data/vendor/local/include/unicode/urep.h +155 -0
  307. data/vendor/local/include/unicode/ures.h +887 -0
  308. data/vendor/local/include/unicode/uscript.h +642 -0
  309. data/vendor/local/include/unicode/usearch.h +885 -0
  310. data/vendor/local/include/unicode/uset.h +1126 -0
  311. data/vendor/local/include/unicode/usetiter.h +318 -0
  312. data/vendor/local/include/unicode/ushape.h +474 -0
  313. data/vendor/local/include/unicode/uspoof.h +1064 -0
  314. data/vendor/local/include/unicode/usprep.h +269 -0
  315. data/vendor/local/include/unicode/ustdio.h +1018 -0
  316. data/vendor/local/include/unicode/ustream.h +68 -0
  317. data/vendor/local/include/unicode/ustring.h +1700 -0
  318. data/vendor/local/include/unicode/ustringtrie.h +95 -0
  319. data/vendor/local/include/unicode/utext.h +1600 -0
  320. data/vendor/local/include/unicode/utf.h +223 -0
  321. data/vendor/local/include/unicode/utf16.h +623 -0
  322. data/vendor/local/include/unicode/utf32.h +23 -0
  323. data/vendor/local/include/unicode/utf8.h +824 -0
  324. data/vendor/local/include/unicode/utf_old.h +1169 -0
  325. data/vendor/local/include/unicode/utmscale.h +481 -0
  326. data/vendor/local/include/unicode/utrace.h +359 -0
  327. data/vendor/local/include/unicode/utrans.h +658 -0
  328. data/vendor/local/include/unicode/utypes.h +723 -0
  329. data/vendor/local/include/unicode/uvernum.h +170 -0
  330. data/vendor/local/include/unicode/uversion.h +193 -0
  331. data/vendor/local/include/unicode/vtzone.h +455 -0
  332. data/vendor/local/lib/girepository-1.0/Pango-1.0.typelib +0 -0
  333. data/vendor/local/lib/girepository-1.0/PangoCairo-1.0.typelib +0 -0
  334. data/vendor/local/lib/girepository-1.0/PangoFT2-1.0.typelib +0 -0
  335. data/vendor/local/lib/icu/54.1/Makefile.inc +293 -0
  336. data/vendor/local/lib/icu/54.1/pkgdata.inc +17 -0
  337. data/vendor/local/lib/icu/Makefile.inc +293 -0
  338. data/vendor/local/lib/icu/pkgdata.inc +17 -0
  339. data/vendor/local/lib/icudt.dll +0 -0
  340. data/vendor/local/lib/icudt54.dll +0 -0
  341. data/vendor/local/lib/icuin.dll +0 -0
  342. data/vendor/local/lib/icuin54.dll +0 -0
  343. data/vendor/local/lib/icuio.dll +0 -0
  344. data/vendor/local/lib/icuio54.dll +0 -0
  345. data/vendor/local/lib/icule.dll +0 -0
  346. data/vendor/local/lib/icule54.dll +0 -0
  347. data/vendor/local/lib/iculx.dll +0 -0
  348. data/vendor/local/lib/iculx54.dll +0 -0
  349. data/vendor/local/lib/icutest.dll +0 -0
  350. data/vendor/local/lib/icutest54.dll +0 -0
  351. data/vendor/local/lib/icutu.dll +0 -0
  352. data/vendor/local/lib/icutu54.dll +0 -0
  353. data/vendor/local/lib/icuuc.dll +0 -0
  354. data/vendor/local/lib/icuuc54.dll +0 -0
  355. data/vendor/local/lib/libharfbuzz-icu.a +0 -0
  356. data/vendor/local/lib/libharfbuzz-icu.la +41 -0
  357. data/vendor/local/lib/libharfbuzz.dll.a +0 -0
  358. data/vendor/local/lib/libharfbuzz.la +41 -0
  359. data/vendor/local/lib/libicudt.dll.a +0 -0
  360. data/vendor/local/lib/libicuin.dll.a +0 -0
  361. data/vendor/local/lib/libicuio.dll.a +0 -0
  362. data/vendor/local/lib/libicule.dll.a +0 -0
  363. data/vendor/local/lib/libiculx.dll.a +0 -0
  364. data/vendor/local/lib/libicutest.dll.a +0 -0
  365. data/vendor/local/lib/libicutu.dll.a +0 -0
  366. data/vendor/local/lib/libicuuc.dll.a +0 -0
  367. data/vendor/local/lib/libpango-1.0.dll.a +0 -0
  368. data/vendor/local/lib/libpango-1.0.la +41 -0
  369. data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
  370. data/vendor/local/lib/libpangocairo-1.0.la +41 -0
  371. data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
  372. data/vendor/local/lib/libpangoft2-1.0.la +41 -0
  373. data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
  374. data/vendor/local/lib/libpangowin32-1.0.la +41 -0
  375. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.dll +0 -0
  376. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.dll.a +0 -0
  377. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.la +41 -0
  378. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.dll +0 -0
  379. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.dll.a +0 -0
  380. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.la +41 -0
  381. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.dll +0 -0
  382. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.dll.a +0 -0
  383. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.la +41 -0
  384. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.dll +0 -0
  385. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.dll.a +0 -0
  386. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.la +41 -0
  387. data/vendor/local/lib/pkgconfig/harfbuzz-icu.pc +13 -0
  388. data/vendor/local/lib/pkgconfig/harfbuzz.pc +11 -0
  389. data/vendor/local/lib/pkgconfig/icu-i18n.pc +38 -0
  390. data/vendor/local/lib/pkgconfig/icu-io.pc +38 -0
  391. data/vendor/local/lib/pkgconfig/icu-le.pc +38 -0
  392. data/vendor/local/lib/pkgconfig/icu-lx.pc +38 -0
  393. data/vendor/local/lib/pkgconfig/icu-uc.pc +38 -0
  394. data/vendor/local/lib/pkgconfig/pango.pc +14 -0
  395. data/vendor/local/lib/pkgconfig/pangocairo.pc +11 -0
  396. data/vendor/local/lib/pkgconfig/pangoft2.pc +12 -0
  397. data/vendor/local/lib/pkgconfig/pangowin32.pc +11 -0
  398. data/vendor/local/share/gir-1.0/Pango-1.0.gir +13329 -0
  399. data/vendor/local/share/gir-1.0/PangoCairo-1.0.gir +833 -0
  400. data/vendor/local/share/gir-1.0/PangoFT2-1.0.gir +354 -0
  401. data/vendor/local/share/gtk-doc/html/harfbuzz/annotation-glossary.html +75 -0
  402. data/vendor/local/share/gtk-doc/html/harfbuzz/api-index-full.html +1449 -0
  403. data/vendor/local/share/gtk-doc/html/harfbuzz/ch01.html +98 -0
  404. data/vendor/local/share/gtk-doc/html/harfbuzz/deprecated-api-index.html +46 -0
  405. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-blob.html +610 -0
  406. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-buffer.html +1780 -0
  407. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-common.html +1337 -0
  408. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-coretext.html +144 -0
  409. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-deprecated.html +99 -0
  410. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-face.html +630 -0
  411. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-font.html +2529 -0
  412. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ft.html +188 -0
  413. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-glib.html +120 -0
  414. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-gobject.html +50 -0
  415. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-graphite2.html +120 -0
  416. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-icu.html +120 -0
  417. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-layout.html +771 -0
  418. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-tag.html +172 -0
  419. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot.html +50 -0
  420. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-set.html +966 -0
  421. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape-plan.html +405 -0
  422. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape.html +286 -0
  423. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-unicode.html +1523 -0
  424. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-uniscribe.html +100 -0
  425. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-version.html +182 -0
  426. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb.html +50 -0
  427. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz.devhelp2 +378 -0
  428. data/vendor/local/share/gtk-doc/html/harfbuzz/home.png +0 -0
  429. data/vendor/local/share/gtk-doc/html/harfbuzz/index.html +105 -0
  430. data/vendor/local/share/gtk-doc/html/harfbuzz/index.sgml +496 -0
  431. data/vendor/local/share/gtk-doc/html/harfbuzz/left-insensitive.png +0 -0
  432. data/vendor/local/share/gtk-doc/html/harfbuzz/left.png +0 -0
  433. data/vendor/local/share/gtk-doc/html/harfbuzz/object-tree.html +59 -0
  434. data/vendor/local/share/gtk-doc/html/harfbuzz/right-insensitive.png +0 -0
  435. data/vendor/local/share/gtk-doc/html/harfbuzz/right.png +0 -0
  436. data/vendor/local/share/gtk-doc/html/harfbuzz/style.css +476 -0
  437. data/vendor/local/share/gtk-doc/html/harfbuzz/up-insensitive.png +0 -0
  438. data/vendor/local/share/gtk-doc/html/harfbuzz/up.png +0 -0
  439. data/vendor/local/share/gtk-doc/html/pango/PangoEngineLang.html +224 -0
  440. data/vendor/local/share/gtk-doc/html/pango/PangoEngineShape.html +255 -0
  441. data/vendor/local/share/gtk-doc/html/pango/PangoFcDecoder.html +246 -0
  442. data/vendor/local/share/gtk-doc/html/pango/PangoFcFont.html +500 -0
  443. data/vendor/local/share/gtk-doc/html/pango/PangoFcFontMap.html +1001 -0
  444. data/vendor/local/share/gtk-doc/html/pango/PangoMarkupFormat.html +301 -0
  445. data/vendor/local/share/gtk-doc/html/pango/PangoRenderer.html +1219 -0
  446. data/vendor/local/share/gtk-doc/html/pango/annotation-glossary.html +89 -0
  447. data/vendor/local/share/gtk-doc/html/pango/api-index-1-10.html +135 -0
  448. data/vendor/local/share/gtk-doc/html/pango/api-index-1-12.html +49 -0
  449. data/vendor/local/share/gtk-doc/html/pango/api-index-1-14.html +64 -0
  450. data/vendor/local/share/gtk-doc/html/pango/api-index-1-16.html +228 -0
  451. data/vendor/local/share/gtk-doc/html/pango/api-index-1-18.html +152 -0
  452. data/vendor/local/share/gtk-doc/html/pango/api-index-1-2.html +122 -0
  453. data/vendor/local/share/gtk-doc/html/pango/api-index-1-20.html +87 -0
  454. data/vendor/local/share/gtk-doc/html/pango/api-index-1-22.html +124 -0
  455. data/vendor/local/share/gtk-doc/html/pango/api-index-1-24.html +97 -0
  456. data/vendor/local/share/gtk-doc/html/pango/api-index-1-26.html +46 -0
  457. data/vendor/local/share/gtk-doc/html/pango/api-index-1-30.html +39 -0
  458. data/vendor/local/share/gtk-doc/html/pango/api-index-1-31-0.html +39 -0
  459. data/vendor/local/share/gtk-doc/html/pango/api-index-1-32-4.html +53 -0
  460. data/vendor/local/share/gtk-doc/html/pango/api-index-1-32.html +42 -0
  461. data/vendor/local/share/gtk-doc/html/pango/api-index-1-34.html +38 -0
  462. data/vendor/local/share/gtk-doc/html/pango/api-index-1-4.html +201 -0
  463. data/vendor/local/share/gtk-doc/html/pango/api-index-1-6.html +165 -0
  464. data/vendor/local/share/gtk-doc/html/pango/api-index-1-8.html +171 -0
  465. data/vendor/local/share/gtk-doc/html/pango/api-index-deprecated.html +284 -0
  466. data/vendor/local/share/gtk-doc/html/pango/api-index-full.html +2968 -0
  467. data/vendor/local/share/gtk-doc/html/pango/home.png +0 -0
  468. data/vendor/local/share/gtk-doc/html/pango/index.html +146 -0
  469. data/vendor/local/share/gtk-doc/html/pango/index.sgml +957 -0
  470. data/vendor/local/share/gtk-doc/html/pango/layout.gif +0 -0
  471. data/vendor/local/share/gtk-doc/html/pango/left-insensitive.png +0 -0
  472. data/vendor/local/share/gtk-doc/html/pango/left.png +0 -0
  473. data/vendor/local/share/gtk-doc/html/pango/lowlevel.html +68 -0
  474. data/vendor/local/share/gtk-doc/html/pango/pango-Bidirectional-Text.html +514 -0
  475. data/vendor/local/share/gtk-doc/html/pango/pango-Cairo-Rendering.html +1632 -0
  476. data/vendor/local/share/gtk-doc/html/pango/pango-CoreText-Fonts.html +115 -0
  477. data/vendor/local/share/gtk-doc/html/pango/pango-Coverage-Maps.html +508 -0
  478. data/vendor/local/share/gtk-doc/html/pango/pango-Engines.html +358 -0
  479. data/vendor/local/share/gtk-doc/html/pango/pango-Fonts.html +4154 -0
  480. data/vendor/local/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html +956 -0
  481. data/vendor/local/share/gtk-doc/html/pango/pango-Glyph-Storage.html +2627 -0
  482. data/vendor/local/share/gtk-doc/html/pango/pango-Layout-Objects.html +4153 -0
  483. data/vendor/local/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html +965 -0
  484. data/vendor/local/share/gtk-doc/html/pango/pango-Modules.html +331 -0
  485. data/vendor/local/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html +2202 -0
  486. data/vendor/local/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html +1430 -0
  487. data/vendor/local/share/gtk-doc/html/pango/pango-Tab-Stops.html +582 -0
  488. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Attributes.html +3356 -0
  489. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Processing.html +2079 -0
  490. data/vendor/local/share/gtk-doc/html/pango/pango-Version-Checking.html +325 -0
  491. data/vendor/local/share/gtk-doc/html/pango/pango-Vertical-Text.html +523 -0
  492. data/vendor/local/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html +1028 -0
  493. data/vendor/local/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html +1275 -0
  494. data/vendor/local/share/gtk-doc/html/pango/pango-hierarchy.html +91 -0
  495. data/vendor/local/share/gtk-doc/html/pango/pango-querymodules.html +131 -0
  496. data/vendor/local/share/gtk-doc/html/pango/pango.devhelp2 +786 -0
  497. data/vendor/local/share/gtk-doc/html/pango/pango.html +63 -0
  498. data/vendor/local/share/gtk-doc/html/pango/rendering.html +47 -0
  499. data/vendor/local/share/gtk-doc/html/pango/right-insensitive.png +0 -0
  500. data/vendor/local/share/gtk-doc/html/pango/right.png +0 -0
  501. data/vendor/local/share/gtk-doc/html/pango/rotated-text.png +0 -0
  502. data/vendor/local/share/gtk-doc/html/pango/style.css +476 -0
  503. data/vendor/local/share/gtk-doc/html/pango/tools.html +33 -0
  504. data/vendor/local/share/gtk-doc/html/pango/up-insensitive.png +0 -0
  505. data/vendor/local/share/gtk-doc/html/pango/up.png +0 -0
  506. data/vendor/local/share/icu/54.1/config/mh-mingw64 +158 -0
  507. data/vendor/local/share/icu/54.1/install-sh +251 -0
  508. data/vendor/local/share/icu/54.1/license.html +385 -0
  509. data/vendor/local/share/icu/54.1/mkinstalldirs +43 -0
  510. data/vendor/local/share/license/harfbuzz/AUTHORS +9 -0
  511. data/vendor/local/share/license/harfbuzz/COPYING +36 -0
  512. data/vendor/local/share/license/pango/AUTHORS +2 -0
  513. data/vendor/local/share/license/pango/COPYING +482 -0
  514. data/vendor/local/share/man/man1/derb.1 +196 -0
  515. data/vendor/local/share/man/man1/genbrk.1 +112 -0
  516. data/vendor/local/share/man/man1/gencfu.1 +91 -0
  517. data/vendor/local/share/man/man1/gencnval.1 +91 -0
  518. data/vendor/local/share/man/man1/gendict.1 +131 -0
  519. data/vendor/local/share/man/man1/genrb.1 +146 -0
  520. data/vendor/local/share/man/man1/icu-config.1 +288 -0
  521. data/vendor/local/share/man/man1/makeconv.1 +112 -0
  522. data/vendor/local/share/man/man1/pango-querymodules.1 +106 -0
  523. data/vendor/local/share/man/man1/pango-view.1 +1 -0
  524. data/vendor/local/share/man/man1/pkgdata.1 +258 -0
  525. data/vendor/local/share/man/man1/uconv.1 +443 -0
  526. data/vendor/local/share/man/man8/genccode.8 +106 -0
  527. data/vendor/local/share/man/man8/gencmn.8 +129 -0
  528. data/vendor/local/share/man/man8/gensprep.8 +102 -0
  529. data/vendor/local/share/man/man8/icupkg.8 +204 -0
  530. metadata +599 -0
@@ -0,0 +1,1098 @@
1
+ /*
2
+ *******************************************************************************
3
+ * Copyright (C) 2011-2014, International Business Machines Corporation and
4
+ * others. All Rights Reserved.
5
+ *******************************************************************************
6
+ */
7
+ #ifndef __TZFMT_H
8
+ #define __TZFMT_H
9
+
10
+ /**
11
+ * \file
12
+ * \brief C++ API: TimeZoneFormat
13
+ */
14
+
15
+ #include "unicode/utypes.h"
16
+
17
+ #if !UCONFIG_NO_FORMATTING
18
+
19
+ #include "unicode/format.h"
20
+ #include "unicode/timezone.h"
21
+ #include "unicode/tznames.h"
22
+
23
+ U_CDECL_BEGIN
24
+ /**
25
+ * Constants for time zone display format style used by format/parse APIs
26
+ * in TimeZoneFormat.
27
+ * @stable ICU 50
28
+ */
29
+ typedef enum UTimeZoneFormatStyle {
30
+ /**
31
+ * Generic location format, such as "United States Time (New York)", "Italy Time"
32
+ * @stable ICU 50
33
+ */
34
+ UTZFMT_STYLE_GENERIC_LOCATION,
35
+ /**
36
+ * Generic long non-location format, such as "Eastern Time".
37
+ * @stable ICU 50
38
+ */
39
+ UTZFMT_STYLE_GENERIC_LONG,
40
+ /**
41
+ * Generic short non-location format, such as "ET".
42
+ * @stable ICU 50
43
+ */
44
+ UTZFMT_STYLE_GENERIC_SHORT,
45
+ /**
46
+ * Specific long format, such as "Eastern Standard Time".
47
+ * @stable ICU 50
48
+ */
49
+ UTZFMT_STYLE_SPECIFIC_LONG,
50
+ /**
51
+ * Specific short format, such as "EST", "PDT".
52
+ * @stable ICU 50
53
+ */
54
+ UTZFMT_STYLE_SPECIFIC_SHORT,
55
+ /**
56
+ * Localized GMT offset format, such as "GMT-05:00", "UTC+0100"
57
+ * @stable ICU 50
58
+ */
59
+ UTZFMT_STYLE_LOCALIZED_GMT,
60
+ /**
61
+ * Short localized GMT offset format, such as "GMT-5", "UTC+1:30"
62
+ * This style is equivalent to the LDML date format pattern "O".
63
+ * @stable ICU 51
64
+ */
65
+ UTZFMT_STYLE_LOCALIZED_GMT_SHORT,
66
+ /**
67
+ * Short ISO 8601 local time difference (basic format) or the UTC indicator.
68
+ * For example, "-05", "+0530", and "Z"(UTC).
69
+ * This style is equivalent to the LDML date format pattern "X".
70
+ * @stable ICU 51
71
+ */
72
+ UTZFMT_STYLE_ISO_BASIC_SHORT,
73
+ /**
74
+ * Short ISO 8601 locale time difference (basic format).
75
+ * For example, "-05" and "+0530".
76
+ * This style is equivalent to the LDML date format pattern "x".
77
+ * @stable ICU 51
78
+ */
79
+ UTZFMT_STYLE_ISO_BASIC_LOCAL_SHORT,
80
+ /**
81
+ * Fixed width ISO 8601 local time difference (basic format) or the UTC indicator.
82
+ * For example, "-0500", "+0530", and "Z"(UTC).
83
+ * This style is equivalent to the LDML date format pattern "XX".
84
+ * @stable ICU 51
85
+ */
86
+ UTZFMT_STYLE_ISO_BASIC_FIXED,
87
+ /**
88
+ * Fixed width ISO 8601 local time difference (basic format).
89
+ * For example, "-0500" and "+0530".
90
+ * This style is equivalent to the LDML date format pattern "xx".
91
+ * @stable ICU 51
92
+ */
93
+ UTZFMT_STYLE_ISO_BASIC_LOCAL_FIXED,
94
+ /**
95
+ * ISO 8601 local time difference (basic format) with optional seconds field, or the UTC indicator.
96
+ * For example, "-0500", "+052538", and "Z"(UTC).
97
+ * This style is equivalent to the LDML date format pattern "XXXX".
98
+ * @stable ICU 51
99
+ */
100
+ UTZFMT_STYLE_ISO_BASIC_FULL,
101
+ /**
102
+ * ISO 8601 local time difference (basic format) with optional seconds field.
103
+ * For example, "-0500" and "+052538".
104
+ * This style is equivalent to the LDML date format pattern "xxxx".
105
+ * @stable ICU 51
106
+ */
107
+ UTZFMT_STYLE_ISO_BASIC_LOCAL_FULL,
108
+ /**
109
+ * Fixed width ISO 8601 local time difference (extended format) or the UTC indicator.
110
+ * For example, "-05:00", "+05:30", and "Z"(UTC).
111
+ * This style is equivalent to the LDML date format pattern "XXX".
112
+ * @stable ICU 51
113
+ */
114
+ UTZFMT_STYLE_ISO_EXTENDED_FIXED,
115
+ /**
116
+ * Fixed width ISO 8601 local time difference (extended format).
117
+ * For example, "-05:00" and "+05:30".
118
+ * This style is equivalent to the LDML date format pattern "xxx" and "ZZZZZ".
119
+ * @stable ICU 51
120
+ */
121
+ UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FIXED,
122
+ /**
123
+ * ISO 8601 local time difference (extended format) with optional seconds field, or the UTC indicator.
124
+ * For example, "-05:00", "+05:25:38", and "Z"(UTC).
125
+ * This style is equivalent to the LDML date format pattern "XXXXX".
126
+ * @stable ICU 51
127
+ */
128
+ UTZFMT_STYLE_ISO_EXTENDED_FULL,
129
+ /**
130
+ * ISO 8601 local time difference (extended format) with optional seconds field.
131
+ * For example, "-05:00" and "+05:25:38".
132
+ * This style is equivalent to the LDML date format pattern "xxxxx".
133
+ * @stable ICU 51
134
+ */
135
+ UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FULL,
136
+ /**
137
+ * Time Zone ID, such as "America/Los_Angeles".
138
+ * @stable ICU 51
139
+ */
140
+ UTZFMT_STYLE_ZONE_ID,
141
+ /**
142
+ * Short Time Zone ID (BCP 47 Unicode location extension, time zone type value), such as "uslax".
143
+ * @stable ICU 51
144
+ */
145
+ UTZFMT_STYLE_ZONE_ID_SHORT,
146
+ /**
147
+ * Exemplar location, such as "Los Angeles" and "Paris".
148
+ * @stable ICU 51
149
+ */
150
+ UTZFMT_STYLE_EXEMPLAR_LOCATION
151
+ } UTimeZoneFormatStyle;
152
+
153
+ /**
154
+ * Constants for GMT offset pattern types.
155
+ * @stable ICU 50
156
+ */
157
+ typedef enum UTimeZoneFormatGMTOffsetPatternType {
158
+ /**
159
+ * Positive offset with hours and minutes fields
160
+ * @stable ICU 50
161
+ */
162
+ UTZFMT_PAT_POSITIVE_HM,
163
+ /**
164
+ * Positive offset with hours, minutes and seconds fields
165
+ * @stable ICU 50
166
+ */
167
+ UTZFMT_PAT_POSITIVE_HMS,
168
+ /**
169
+ * Negative offset with hours and minutes fields
170
+ * @stable ICU 50
171
+ */
172
+ UTZFMT_PAT_NEGATIVE_HM,
173
+ /**
174
+ * Negative offset with hours, minutes and seconds fields
175
+ * @stable ICU 50
176
+ */
177
+ UTZFMT_PAT_NEGATIVE_HMS,
178
+ /**
179
+ * Positive offset with hours field
180
+ * @stable ICU 51
181
+ */
182
+ UTZFMT_PAT_POSITIVE_H,
183
+ /**
184
+ * Negative offset with hours field
185
+ * @stable ICU 51
186
+ */
187
+ UTZFMT_PAT_NEGATIVE_H,
188
+
189
+ /* The following cannot be #ifndef U_HIDE_INTERNAL_API, needed for other .h declarations */
190
+ /**
191
+ * Number of UTimeZoneFormatGMTOffsetPatternType types.
192
+ * @internal
193
+ */
194
+ UTZFMT_PAT_COUNT = 6
195
+ } UTimeZoneFormatGMTOffsetPatternType;
196
+
197
+ /**
198
+ * Constants for time types used by TimeZoneFormat APIs for
199
+ * receiving time type (standard time, daylight time or unknown).
200
+ * @stable ICU 50
201
+ */
202
+ typedef enum UTimeZoneFormatTimeType {
203
+ /**
204
+ * Unknown
205
+ * @stable ICU 50
206
+ */
207
+ UTZFMT_TIME_TYPE_UNKNOWN,
208
+ /**
209
+ * Standard time
210
+ * @stable ICU 50
211
+ */
212
+ UTZFMT_TIME_TYPE_STANDARD,
213
+ /**
214
+ * Daylight saving time
215
+ * @stable ICU 50
216
+ */
217
+ UTZFMT_TIME_TYPE_DAYLIGHT
218
+ } UTimeZoneFormatTimeType;
219
+
220
+ /**
221
+ * Constants for parse option flags, used for specifying optional parse behavior.
222
+ * @stable ICU 50
223
+ */
224
+ typedef enum UTimeZoneFormatParseOption {
225
+ /**
226
+ * No option.
227
+ * @stable ICU 50
228
+ */
229
+ UTZFMT_PARSE_OPTION_NONE = 0x00,
230
+ /**
231
+ * When a time zone display name is not found within a set of display names
232
+ * used for the specified style, look for the name from display names used
233
+ * by other styles.
234
+ * @stable ICU 50
235
+ */
236
+ UTZFMT_PARSE_OPTION_ALL_STYLES = 0x01
237
+ #ifndef U_HIDE_DRAFT_API
238
+ ,
239
+ /**
240
+ * When parsing a time zone display name in UTZFMT_STYLE_SPECIFIC_SHORT,
241
+ * look for the IANA tz database compatible zone abbreviations in addition
242
+ * to the localized names coming from the {@link TimeZoneNames} currently
243
+ * used by the {@link TimeZoneFormat}.
244
+ * @draft ICU 54
245
+ */
246
+ UTZFMT_PARSE_OPTION_TZ_DATABASE_ABBREVIATIONS = 0x02
247
+ #endif /* U_HIDE_DRAFT_API */
248
+ } UTimeZoneFormatParseOption;
249
+
250
+ U_CDECL_END
251
+
252
+ U_NAMESPACE_BEGIN
253
+
254
+ class TimeZoneGenericNames;
255
+ class TZDBTimeZoneNames;
256
+ class UVector;
257
+
258
+ /**
259
+ * <code>TimeZoneFormat</code> supports time zone display name formatting and parsing.
260
+ * An instance of TimeZoneFormat works as a subformatter of {@link SimpleDateFormat},
261
+ * but you can also directly get a new instance of <code>TimeZoneFormat</code> and
262
+ * formatting/parsing time zone display names.
263
+ * <p>
264
+ * ICU implements the time zone display names defined by <a href="http://www.unicode.org/reports/tr35/">UTS#35
265
+ * Unicode Locale Data Markup Language (LDML)</a>. {@link TimeZoneNames} represents the
266
+ * time zone display name data model and this class implements the algorithm for actual
267
+ * formatting and parsing.
268
+ *
269
+ * @see SimpleDateFormat
270
+ * @see TimeZoneNames
271
+ * @stable ICU 50
272
+ */
273
+ class U_I18N_API TimeZoneFormat : public Format {
274
+ public:
275
+ /**
276
+ * Copy constructor.
277
+ * @stable ICU 50
278
+ */
279
+ TimeZoneFormat(const TimeZoneFormat& other);
280
+
281
+ /**
282
+ * Destructor.
283
+ * @stable ICU 50
284
+ */
285
+ virtual ~TimeZoneFormat();
286
+
287
+ /**
288
+ * Assignment operator.
289
+ * @stable ICU 50
290
+ */
291
+ TimeZoneFormat& operator=(const TimeZoneFormat& other);
292
+
293
+ /**
294
+ * Return true if the given Format objects are semantically equal.
295
+ * Objects of different subclasses are considered unequal.
296
+ * @param other The object to be compared with.
297
+ * @return Return TRUE if the given Format objects are semantically equal.
298
+ * Objects of different subclasses are considered unequal.
299
+ * @stable ICU 50
300
+ */
301
+ virtual UBool operator==(const Format& other) const;
302
+
303
+ /**
304
+ * Clone this object polymorphically. The caller is responsible
305
+ * for deleting the result when done.
306
+ * @return A copy of the object
307
+ * @stable ICU 50
308
+ */
309
+ virtual Format* clone() const;
310
+
311
+ /**
312
+ * Creates an instance of <code>TimeZoneFormat</code> for the given locale.
313
+ * @param locale The locale.
314
+ * @param status Receives the status.
315
+ * @return An instance of <code>TimeZoneFormat</code> for the given locale,
316
+ * owned by the caller.
317
+ * @stable ICU 50
318
+ */
319
+ static TimeZoneFormat* U_EXPORT2 createInstance(const Locale& locale, UErrorCode& status);
320
+
321
+ /**
322
+ * Returns the time zone display name data used by this instance.
323
+ * @return The time zone display name data.
324
+ * @stable ICU 50
325
+ */
326
+ const TimeZoneNames* getTimeZoneNames() const;
327
+
328
+ /**
329
+ * Sets the time zone display name data to this format instnace.
330
+ * The caller should not delete the TimeZoenNames object after it is adopted
331
+ * by this call.
332
+ * @param tznames TimeZoneNames object to be adopted.
333
+ * @stable ICU 50
334
+ */
335
+ void adoptTimeZoneNames(TimeZoneNames *tznames);
336
+
337
+ /**
338
+ * Sets the time zone display name data to this format instnace.
339
+ * @param tznames TimeZoneNames object to be set.
340
+ * @stable ICU 50
341
+ */
342
+ void setTimeZoneNames(const TimeZoneNames &tznames);
343
+
344
+ /**
345
+ * Returns the localized GMT format pattern.
346
+ * @param pattern Receives the localized GMT format pattern.
347
+ * @return A reference to the result pattern.
348
+ * @see #setGMTPattern
349
+ * @stable ICU 50
350
+ */
351
+ UnicodeString& getGMTPattern(UnicodeString& pattern) const;
352
+
353
+ /**
354
+ * Sets the localized GMT format pattern. The pattern must contain
355
+ * a single argument {0}, for example "GMT {0}".
356
+ * @param pattern The localized GMT format pattern to be used by this object.
357
+ * @param status Recieves the status.
358
+ * @see #getGMTPattern
359
+ * @stable ICU 50
360
+ */
361
+ void setGMTPattern(const UnicodeString& pattern, UErrorCode& status);
362
+
363
+ /**
364
+ * Returns the offset pattern used for localized GMT format.
365
+ * @param type The offset pattern type enum.
366
+ * @param pattern Receives the offset pattern.
367
+ * @return A reference to the result pattern.
368
+ * @see #setGMTOffsetPattern
369
+ * @stable ICU 50
370
+ */
371
+ UnicodeString& getGMTOffsetPattern(UTimeZoneFormatGMTOffsetPatternType type, UnicodeString& pattern) const;
372
+
373
+ /**
374
+ * Sets the offset pattern for the given offset type.
375
+ * @param type The offset pattern type enum.
376
+ * @param pattern The offset pattern used for localized GMT format for the type.
377
+ * @param status Receives the status.
378
+ * @see #getGMTOffsetPattern
379
+ * @stable ICU 50
380
+ */
381
+ void setGMTOffsetPattern(UTimeZoneFormatGMTOffsetPatternType type, const UnicodeString& pattern, UErrorCode& status);
382
+
383
+ /**
384
+ * Returns the decimal digit characters used for localized GMT format.
385
+ * The return string contains exactly 10 code points (may include Unicode
386
+ * supplementary character) representing digit 0 to digit 9 in the ascending
387
+ * order.
388
+ * @param digits Receives the decimal digits used for localized GMT format.
389
+ * @see #setGMTOffsetDigits
390
+ * @stable ICU 50
391
+ */
392
+ UnicodeString& getGMTOffsetDigits(UnicodeString& digits) const;
393
+
394
+ /**
395
+ * Sets the decimal digit characters used for localized GMT format.
396
+ * The input <code>digits</code> must contain exactly 10 code points
397
+ * (Unicode supplementary characters are also allowed) representing
398
+ * digit 0 to digit 9 in the ascending order. When the input <code>digits</code>
399
+ * does not satisfy the condition, <code>U_ILLEGAL_ARGUMENT_ERROR</code>
400
+ * will be set to the return status.
401
+ * @param digits The decimal digits used for localized GMT format.
402
+ * @param status Receives the status.
403
+ * @see #getGMTOffsetDigits
404
+ * @stable ICU 50
405
+ */
406
+ void setGMTOffsetDigits(const UnicodeString& digits, UErrorCode& status);
407
+
408
+ /**
409
+ * Returns the localized GMT format string for GMT(UTC) itself (GMT offset is 0).
410
+ * @param gmtZeroFormat Receives the localized GMT string string for GMT(UTC) itself.
411
+ * @return A reference to the result GMT string.
412
+ * @see #setGMTZeroFormat
413
+ * @stable ICU 50
414
+ */
415
+ UnicodeString& getGMTZeroFormat(UnicodeString& gmtZeroFormat) const;
416
+
417
+ /**
418
+ * Sets the localized GMT format string for GMT(UTC) itself (GMT offset is 0).
419
+ * @param gmtZeroFormat The localized GMT format string for GMT(UTC).
420
+ * @param status Receives the status.
421
+ * @see #getGMTZeroFormat
422
+ * @stable ICU 50
423
+ */
424
+ void setGMTZeroFormat(const UnicodeString& gmtZeroFormat, UErrorCode& status);
425
+
426
+ /**
427
+ * Returns the bitwise flags of UTimeZoneFormatParseOption representing the default parse
428
+ * options used by this object.
429
+ * @return the default parse options.
430
+ * @see ParseOption
431
+ * @stable ICU 50
432
+ */
433
+ uint32_t getDefaultParseOptions(void) const;
434
+
435
+ /**
436
+ * Sets the default parse options.
437
+ * <p><b>Note</b>: By default, an instance of <code>TimeZoneFormat</code>
438
+ * created by {@link #createInstance} has no parse options set (UTZFMT_PARSE_OPTION_NONE).
439
+ * To specify multipe options, use bitwise flags of UTimeZoneFormatParseOption.
440
+ * @see #UTimeZoneFormatParseOption
441
+ * @stable ICU 50
442
+ */
443
+ void setDefaultParseOptions(uint32_t flags);
444
+
445
+ /**
446
+ * Returns the ISO 8601 basic time zone string for the given offset.
447
+ * For example, "-08", "-0830" and "Z"
448
+ *
449
+ * @param offset the offset from GMT(UTC) in milliseconds.
450
+ * @param useUtcIndicator true if ISO 8601 UTC indicator "Z" is used when the offset is 0.
451
+ * @param isShort true if shortest form is used.
452
+ * @param ignoreSeconds true if non-zero offset seconds is appended.
453
+ * @param result Receives the ISO format string.
454
+ * @param status Receives the status
455
+ * @return the ISO 8601 basic format.
456
+ * @see #formatOffsetISO8601Extended
457
+ * @see #parseOffsetISO8601
458
+ * @stable ICU 51
459
+ */
460
+ UnicodeString& formatOffsetISO8601Basic(int32_t offset, UBool useUtcIndicator, UBool isShort, UBool ignoreSeconds,
461
+ UnicodeString& result, UErrorCode& status) const;
462
+
463
+ /**
464
+ * Returns the ISO 8601 extended time zone string for the given offset.
465
+ * For example, "-08:00", "-08:30" and "Z"
466
+ *
467
+ * @param offset the offset from GMT(UTC) in milliseconds.
468
+ * @param useUtcIndicator true if ISO 8601 UTC indicator "Z" is used when the offset is 0.
469
+ * @param isShort true if shortest form is used.
470
+ * @param ignoreSeconds true if non-zero offset seconds is appended.
471
+ * @param result Receives the ISO format string.
472
+ * @param status Receives the status
473
+ * @return the ISO 8601 basic format.
474
+ * @see #formatOffsetISO8601Extended
475
+ * @see #parseOffsetISO8601
476
+ * @stable ICU 51
477
+ */
478
+ UnicodeString& formatOffsetISO8601Extended(int32_t offset, UBool useUtcIndicator, UBool isShort, UBool ignoreSeconds,
479
+ UnicodeString& result, UErrorCode& status) const;
480
+
481
+ /**
482
+ * Returns the localized GMT(UTC) offset format for the given offset.
483
+ * The localized GMT offset is defined by;
484
+ * <ul>
485
+ * <li>GMT format pattern (e.g. "GMT {0}" - see {@link #getGMTPattern})
486
+ * <li>Offset time pattern (e.g. "+HH:mm" - see {@link #getGMTOffsetPattern})
487
+ * <li>Offset digits (e.g. "0123456789" - see {@link #getGMTOffsetDigits})
488
+ * <li>GMT zero format (e.g. "GMT" - see {@link #getGMTZeroFormat})
489
+ * </ul>
490
+ * This format always uses 2 digit hours and minutes. When the given offset has non-zero
491
+ * seconds, 2 digit seconds field will be appended. For example,
492
+ * GMT+05:00 and GMT+05:28:06.
493
+ * @param offset the offset from GMT(UTC) in milliseconds.
494
+ * @param status Receives the status
495
+ * @param result Receives the localized GMT format string.
496
+ * @return A reference to the result.
497
+ * @see #parseOffsetLocalizedGMT
498
+ * @stable ICU 50
499
+ */
500
+ UnicodeString& formatOffsetLocalizedGMT(int32_t offset, UnicodeString& result, UErrorCode& status) const;
501
+
502
+ /**
503
+ * Returns the short localized GMT(UTC) offset format for the given offset.
504
+ * The short localized GMT offset is defined by;
505
+ * <ul>
506
+ * <li>GMT format pattern (e.g. "GMT {0}" - see {@link #getGMTPattern})
507
+ * <li>Offset time pattern (e.g. "+HH:mm" - see {@link #getGMTOffsetPattern})
508
+ * <li>Offset digits (e.g. "0123456789" - see {@link #getGMTOffsetDigits})
509
+ * <li>GMT zero format (e.g. "GMT" - see {@link #getGMTZeroFormat})
510
+ * </ul>
511
+ * This format uses the shortest representation of offset. The hours field does not
512
+ * have leading zero and lower fields with zero will be truncated. For example,
513
+ * GMT+5 and GMT+530.
514
+ * @param offset the offset from GMT(UTC) in milliseconds.
515
+ * @param status Receives the status
516
+ * @param result Receives the short localized GMT format string.
517
+ * @return A reference to the result.
518
+ * @see #parseOffsetShortLocalizedGMT
519
+ * @stable ICU 51
520
+ */
521
+ UnicodeString& formatOffsetShortLocalizedGMT(int32_t offset, UnicodeString& result, UErrorCode& status) const;
522
+
523
+ using Format::format;
524
+
525
+ /**
526
+ * Returns the display name of the time zone at the given date for the style.
527
+ * @param style The style (e.g. <code>UTZFMT_STYLE_GENERIC_LONG</code>, <code>UTZFMT_STYLE_LOCALIZED_GMT</code>...)
528
+ * @param tz The time zone.
529
+ * @param date The date.
530
+ * @param name Receives the display name.
531
+ * @param timeType the output argument for receiving the time type (standard/daylight/unknown)
532
+ * used for the display name, or NULL if the information is not necessary.
533
+ * @return A reference to the result
534
+ * @see #UTimeZoneFormatStyle
535
+ * @see #UTimeZoneFormatTimeType
536
+ * @stable ICU 50
537
+ */
538
+ virtual UnicodeString& format(UTimeZoneFormatStyle style, const TimeZone& tz, UDate date,
539
+ UnicodeString& name, UTimeZoneFormatTimeType* timeType = NULL) const;
540
+
541
+ /**
542
+ * Returns offset from GMT(UTC) in milliseconds for the given ISO 8601
543
+ * style time zone string. When the given string is not an ISO 8601 time zone
544
+ * string, this method sets the current position as the error index
545
+ * to <code>ParsePosition pos</code> and returns 0.
546
+ * @param text The text contains ISO8601 style time zone string (e.g. "-08:00", "Z")
547
+ * at the position.
548
+ * @param pos The ParsePosition object.
549
+ * @return The offset from GMT(UTC) in milliseconds for the given ISO 8601 style
550
+ * time zone string.
551
+ * @see #formatOffsetISO8601Basic
552
+ * @see #formatOffsetISO8601Extended
553
+ * @stable ICU 50
554
+ */
555
+ int32_t parseOffsetISO8601(const UnicodeString& text, ParsePosition& pos) const;
556
+
557
+ /**
558
+ * Returns offset from GMT(UTC) in milliseconds for the given localized GMT
559
+ * offset format string. When the given string cannot be parsed, this method
560
+ * sets the current position as the error index to <code>ParsePosition pos</code>
561
+ * and returns 0.
562
+ * @param text The text contains a localized GMT offset string at the position.
563
+ * @param pos The ParsePosition object.
564
+ * @return The offset from GMT(UTC) in milliseconds for the given localized GMT
565
+ * offset format string.
566
+ * @see #formatOffsetLocalizedGMT
567
+ * @stable ICU 50
568
+ */
569
+ int32_t parseOffsetLocalizedGMT(const UnicodeString& text, ParsePosition& pos) const;
570
+
571
+ /**
572
+ * Returns offset from GMT(UTC) in milliseconds for the given short localized GMT
573
+ * offset format string. When the given string cannot be parsed, this method
574
+ * sets the current position as the error index to <code>ParsePosition pos</code>
575
+ * and returns 0.
576
+ * @param text The text contains a short localized GMT offset string at the position.
577
+ * @param pos The ParsePosition object.
578
+ * @return The offset from GMT(UTC) in milliseconds for the given short localized GMT
579
+ * offset format string.
580
+ * @see #formatOffsetShortLocalizedGMT
581
+ * @stable ICU 51
582
+ */
583
+ int32_t parseOffsetShortLocalizedGMT(const UnicodeString& text, ParsePosition& pos) const;
584
+
585
+ /**
586
+ * Returns a <code>TimeZone</code> by parsing the time zone string according to
587
+ * the given parse position, the specified format style and parse options.
588
+ *
589
+ * @param text The text contains a time zone string at the position.
590
+ * @param style The format style
591
+ * @param pos The position.
592
+ * @param parseOptions The parse options repesented by bitwise flags of UTimeZoneFormatParseOption.
593
+ * @param timeType The output argument for receiving the time type (standard/daylight/unknown),
594
+ * or NULL if the information is not necessary.
595
+ * @return A <code>TimeZone</code>, or null if the input could not be parsed.
596
+ * @see UTimeZoneFormatStyle
597
+ * @see UTimeZoneFormatParseOption
598
+ * @see UTimeZoneFormatTimeType
599
+ * @stable ICU 50
600
+ */
601
+ virtual TimeZone* parse(UTimeZoneFormatStyle style, const UnicodeString& text, ParsePosition& pos,
602
+ int32_t parseOptions, UTimeZoneFormatTimeType* timeType = NULL) const;
603
+
604
+ /**
605
+ * Returns a <code>TimeZone</code> by parsing the time zone string according to
606
+ * the given parse position, the specified format style and the default parse options.
607
+ *
608
+ * @param text The text contains a time zone string at the position.
609
+ * @param style The format style
610
+ * @param pos The position.
611
+ * @param timeType The output argument for receiving the time type (standard/daylight/unknown),
612
+ * or NULL if the information is not necessary.
613
+ * @return A <code>TimeZone</code>, or null if the input could not be parsed.
614
+ * @see UTimeZoneFormatStyle
615
+ * @see UTimeZoneFormatParseOption
616
+ * @see UTimeZoneFormatTimeType
617
+ * @stable ICU 50
618
+ */
619
+ TimeZone* parse(UTimeZoneFormatStyle style, const UnicodeString& text, ParsePosition& pos,
620
+ UTimeZoneFormatTimeType* timeType = NULL) const;
621
+
622
+ /* ----------------------------------------------
623
+ * Format APIs
624
+ * ---------------------------------------------- */
625
+
626
+ /**
627
+ * Format an object to produce a time zone display string using localized GMT offset format.
628
+ * This method handles Formattable objects with a <code>TimeZone</code>. If a the Formattable
629
+ * object type is not a <code>TimeZone</code>, then it returns a failing UErrorCode.
630
+ * @param obj The object to format. Must be a <code>TimeZone</code>.
631
+ * @param appendTo Output parameter to receive result. Result is appended to existing contents.
632
+ * @param pos On input: an alignment field, if desired. On output: the offsets of the alignment field.
633
+ * @param status Output param filled with success/failure status.
634
+ * @return Reference to 'appendTo' parameter.
635
+ * @stable ICU 50
636
+ */
637
+ virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo,
638
+ FieldPosition& pos, UErrorCode& status) const;
639
+
640
+ /**
641
+ * Parse a string to produce an object. This methods handles parsing of
642
+ * time zone display strings into Formattable objects with <code>TimeZone</code>.
643
+ * @param source The string to be parsed into an object.
644
+ * @param result Formattable to be set to the parse result. If parse fails, return contents are undefined.
645
+ * @param parse_pos The position to start parsing at. Upon return this param is set to the position after the
646
+ * last character successfully parsed. If the source is not parsed successfully, this param
647
+ * will remain unchanged.
648
+ * @return A newly created Formattable* object, or NULL on failure. The caller owns this and should
649
+ * delete it when done.
650
+ * @stable ICU 50
651
+ */
652
+ virtual void parseObject(const UnicodeString& source, Formattable& result, ParsePosition& parse_pos) const;
653
+
654
+ /**
655
+ * ICU "poor man's RTTI", returns a UClassID for this class.
656
+ * @stable ICU 50
657
+ */
658
+ static UClassID U_EXPORT2 getStaticClassID(void);
659
+
660
+ /**
661
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
662
+ * @stable ICU 50
663
+ */
664
+ virtual UClassID getDynamicClassID() const;
665
+
666
+ protected:
667
+ /**
668
+ * Constructs a TimeZoneFormat object for the specified locale.
669
+ * @param locale the locale
670
+ * @param status receives the status.
671
+ * @stable ICU 50
672
+ */
673
+ TimeZoneFormat(const Locale& locale, UErrorCode& status);
674
+
675
+ private:
676
+ /* Locale of this object */
677
+ Locale fLocale;
678
+
679
+ /* Stores the region (could be implicit default) */
680
+ char fTargetRegion[ULOC_COUNTRY_CAPACITY];
681
+
682
+ /* TimeZoneNames object used by this formatter */
683
+ TimeZoneNames* fTimeZoneNames;
684
+
685
+ /* TimeZoneGenericNames object used by this formatter - lazily instantiated */
686
+ TimeZoneGenericNames* fTimeZoneGenericNames;
687
+
688
+ /* Localized GMT format pattern - e.g. "GMT{0}" */
689
+ UnicodeString fGMTPattern;
690
+
691
+ /* Array of offset patterns used by Localized GMT format - e.g. "+HH:mm" */
692
+ UnicodeString fGMTOffsetPatterns[UTZFMT_PAT_COUNT];
693
+
694
+ /* Localized decimal digits used by Localized GMT format */
695
+ UChar32 fGMTOffsetDigits[10];
696
+
697
+ /* Localized GMT zero format - e.g. "GMT" */
698
+ UnicodeString fGMTZeroFormat;
699
+
700
+ /* Bit flags representing parse options */
701
+ uint32_t fDefParseOptionFlags;
702
+
703
+ /* Constant parts of GMT format pattern, populated from localized GMT format pattern*/
704
+ UnicodeString fGMTPatternPrefix; /* Substring before {0} */
705
+ UnicodeString fGMTPatternSuffix; /* Substring after {0} */
706
+
707
+ /* Compiled offset patterns generated from fGMTOffsetPatterns[] */
708
+ UVector* fGMTOffsetPatternItems[UTZFMT_PAT_COUNT];
709
+
710
+ UBool fAbuttingOffsetHoursAndMinutes;
711
+
712
+ /* TZDBTimeZoneNames object used for parsing */
713
+ TZDBTimeZoneNames* fTZDBTimeZoneNames;
714
+
715
+ /**
716
+ * Returns the time zone's specific format string.
717
+ * @param tz the time zone
718
+ * @param stdType the name type used for standard time
719
+ * @param dstType the name type used for daylight time
720
+ * @param date the date
721
+ * @param name receives the time zone's specific format name string
722
+ * @param timeType when null, actual time type is set
723
+ * @return a reference to name.
724
+ */
725
+ UnicodeString& formatSpecific(const TimeZone& tz, UTimeZoneNameType stdType, UTimeZoneNameType dstType,
726
+ UDate date, UnicodeString& name, UTimeZoneFormatTimeType *timeType) const;
727
+
728
+ /**
729
+ * Returns the time zone's generic format string.
730
+ * @param tz the time zone
731
+ * @param genType the generic name type
732
+ * @param date the date
733
+ * @param name receives the time zone's generic format name string
734
+ * @return a reference to name.
735
+ */
736
+ UnicodeString& formatGeneric(const TimeZone& tz, int32_t genType, UDate date, UnicodeString& name) const;
737
+
738
+ /**
739
+ * Lazily create a TimeZoneGenericNames instance
740
+ * @param status receives the status
741
+ * @return the cached TimeZoneGenericNames.
742
+ */
743
+ const TimeZoneGenericNames* getTimeZoneGenericNames(UErrorCode& status) const;
744
+
745
+ /**
746
+ * Lazily create a TZDBTimeZoneNames instance
747
+ * @param status receives the status
748
+ * @return the cached TZDBTimeZoneNames.
749
+ */
750
+ const TZDBTimeZoneNames* getTZDBTimeZoneNames(UErrorCode& status) const;
751
+
752
+ /**
753
+ * Private method returning the time zone's exemplar location string.
754
+ * This method will never return empty.
755
+ * @param tz the time zone
756
+ * @param name receives the time zone's exemplar location name
757
+ * @return a reference to name.
758
+ */
759
+ UnicodeString& formatExemplarLocation(const TimeZone& tz, UnicodeString& name) const;
760
+
761
+ /**
762
+ * Private enum specifying a combination of offset fields
763
+ */
764
+ enum OffsetFields {
765
+ FIELDS_H,
766
+ FIELDS_HM,
767
+ FIELDS_HMS
768
+ };
769
+
770
+ /**
771
+ * Parses the localized GMT pattern string and initialize
772
+ * localized gmt pattern fields.
773
+ * @param gmtPattern the localized GMT pattern string such as "GMT {0}"
774
+ * @param status U_ILLEGAL_ARGUMENT_ERROR is set when the specified pattern does not
775
+ * contain an argument "{0}".
776
+ */
777
+ void initGMTPattern(const UnicodeString& gmtPattern, UErrorCode& status);
778
+
779
+ /**
780
+ * Parse the GMT offset pattern into runtime optimized format.
781
+ * @param pattern the offset pattern string
782
+ * @param required the required set of fields, such as FIELDS_HM
783
+ * @param status U_ILLEGAL_ARGUMENT is set when the specified pattern does not contain
784
+ * pattern letters for the required fields.
785
+ * @return A list of GMTOffsetField objects, or NULL on error.
786
+ */
787
+ static UVector* parseOffsetPattern(const UnicodeString& pattern, OffsetFields required, UErrorCode& status);
788
+
789
+ /**
790
+ * Appends seconds field to the offset pattern with hour/minute
791
+ * Note: This code will be obsoleted once we add hour-minute-second pattern data in CLDR.
792
+ * @param offsetHM the offset pattern including hours and minutes fields
793
+ * @param result the output offset pattern including hour, minute and seconds fields
794
+ * @param status receives the status
795
+ * @return a reference to result
796
+ */
797
+ static UnicodeString& expandOffsetPattern(const UnicodeString& offsetHM, UnicodeString& result, UErrorCode& status);
798
+
799
+ /**
800
+ * Truncates minutes field to the offset pattern with hour/minute
801
+ * Note: This code will be obsoleted once we add hour pattern data in CLDR.
802
+ * @param offsetHM the offset pattern including hours and minutes fields
803
+ * @param result the output offset pattern including only hours field
804
+ * @param status receives the status
805
+ * @return a reference to result
806
+ */
807
+ static UnicodeString& truncateOffsetPattern(const UnicodeString& offsetHM, UnicodeString& result, UErrorCode& status);
808
+
809
+ /**
810
+ * Break input string into UChar32[]. Each array element represents
811
+ * a code point. This method is used for parsing localized digit
812
+ * characters and support characters in Unicode supplemental planes.
813
+ * @param str the string
814
+ * @param codeArray receives the result
815
+ * @param capacity the capacity of codeArray
816
+ * @return TRUE when the specified code array is fully filled with code points
817
+ * (no under/overflow).
818
+ */
819
+ static UBool toCodePoints(const UnicodeString& str, UChar32* codeArray, int32_t capacity);
820
+
821
+ /**
822
+ * Private method supprting all of ISO8601 formats
823
+ * @param offset the offset from GMT(UTC) in milliseconds.
824
+ * @param useUtcIndicator true if ISO 8601 UTC indicator "Z" is used when the offset is 0.
825
+ * @param isShort true if shortest form is used.
826
+ * @param ignoreSeconds true if non-zero offset seconds is appended.
827
+ * @param result Receives the result
828
+ * @param status Receives the status
829
+ * @return the ISO 8601 basic format.
830
+ */
831
+ UnicodeString& formatOffsetISO8601(int32_t offset, UBool isBasic, UBool useUtcIndicator,
832
+ UBool isShort, UBool ignoreSeconds, UnicodeString& result, UErrorCode& status) const;
833
+
834
+ /**
835
+ * Private method used for localized GMT formatting.
836
+ * @param offset the zone's UTC offset
837
+ * @param isShort true if the short localized GMT format is desired.
838
+ * @param result receives the localized GMT format string
839
+ * @param status receives the status
840
+ */
841
+ UnicodeString& formatOffsetLocalizedGMT(int32_t offset, UBool isShort, UnicodeString& result, UErrorCode& status) const;
842
+
843
+ /**
844
+ * Returns offset from GMT(UTC) in milliseconds for the given ISO 8601 style
845
+ * (extended format) time zone string. When the given string is not an ISO 8601 time
846
+ * zone string, this method sets the current position as the error index
847
+ * to <code>ParsePosition pos</code> and returns 0.
848
+ * @param text the text contains ISO 8601 style time zone string (e.g. "-08:00", "Z")
849
+ * at the position.
850
+ * @param pos the position, non-negative error index will be set on failure.
851
+ * @param extendedOnly TRUE if parsing the text as ISO 8601 extended offset format (e.g. "-08:00"),
852
+ * or FALSE to evaluate the text as basic format.
853
+ * @param hasDigitOffset receiving if the parsed zone string contains offset digits.
854
+ * @return the offset from GMT(UTC) in milliseconds for the given ISO 8601 style
855
+ * time zone string.
856
+ */
857
+ int32_t parseOffsetISO8601(const UnicodeString& text, ParsePosition& pos, UBool extendedOnly,
858
+ UBool* hasDigitOffset = NULL) const;
859
+
860
+ /**
861
+ * Appends localized digits to the buffer.
862
+ * This code assumes that the input number is 0 - 59
863
+ * @param buf the target buffer
864
+ * @param n the integer number
865
+ * @param minDigits the minimum digits width
866
+ */
867
+ void appendOffsetDigits(UnicodeString& buf, int32_t n, uint8_t minDigits) const;
868
+
869
+ /**
870
+ * Returns offset from GMT(UTC) in milliseconds for the given localized GMT
871
+ * offset format string. When the given string cannot be parsed, this method
872
+ * sets the current position as the error index to <code>ParsePosition pos</code>
873
+ * and returns 0.
874
+ * @param text the text contains a localized GMT offset string at the position.
875
+ * @param pos the position, non-negative error index will be set on failure.
876
+ * @param isShort true if this parser to try the short format first
877
+ * @param hasDigitOffset receiving if the parsed zone string contains offset digits.
878
+ * @return the offset from GMT(UTC) in milliseconds for the given localized GMT
879
+ * offset format string.
880
+ */
881
+ int32_t parseOffsetLocalizedGMT(const UnicodeString& text, ParsePosition& pos,
882
+ UBool isShort, UBool* hasDigitOffset) const;
883
+
884
+ /**
885
+ * Parse localized GMT format generated by the patter used by this formatter, except
886
+ * GMT Zero format.
887
+ * @param text the input text
888
+ * @param start the start index
889
+ * @param isShort true if the short localized format is parsed.
890
+ * @param parsedLen receives the parsed length
891
+ * @return the parsed offset in milliseconds
892
+ */
893
+ int32_t parseOffsetLocalizedGMTPattern(const UnicodeString& text, int32_t start,
894
+ UBool isShort, int32_t& parsedLen) const;
895
+
896
+ /**
897
+ * Parses localized GMT offset fields into offset.
898
+ * @param text the input text
899
+ * @param start the start index
900
+ * @param isShort true if this is a short format - currently not used
901
+ * @param parsedLen the parsed length, or 0 on failure.
902
+ * @return the parsed offset in milliseconds.
903
+ */
904
+ int32_t parseOffsetFields(const UnicodeString& text, int32_t start, UBool isShort, int32_t& parsedLen) const;
905
+
906
+ /**
907
+ * Parse localized GMT offset fields with the given pattern.
908
+ * @param text the input text
909
+ * @param start the start index
910
+ * @param pattenItems the pattern (already itemized)
911
+ * @param forceSingleHourDigit true if hours field is parsed as a single digit
912
+ * @param hour receives the hour offset field
913
+ * @param min receives the minute offset field
914
+ * @param sec receives the second offset field
915
+ * @return the parsed length
916
+ */
917
+ int32_t parseOffsetFieldsWithPattern(const UnicodeString& text, int32_t start,
918
+ UVector* patternItems, UBool forceSingleHourDigit, int32_t& hour, int32_t& min, int32_t& sec) const;
919
+
920
+ /**
921
+ * Parses abutting localized GMT offset fields (such as 0800) into offset.
922
+ * @param text the input text
923
+ * @param start the start index
924
+ * @param parsedLen the parsed length, or 0 on failure
925
+ * @return the parsed offset in milliseconds.
926
+ */
927
+ int32_t parseAbuttingOffsetFields(const UnicodeString& text, int32_t start, int32_t& parsedLen) const;
928
+
929
+ /**
930
+ * Parses the input text using the default format patterns (e.g. "UTC{0}").
931
+ * @param text the input text
932
+ * @param start the start index
933
+ * @param parsedLen the parsed length, or 0 on failure
934
+ * @return the parsed offset in milliseconds.
935
+ */
936
+ int32_t parseOffsetDefaultLocalizedGMT(const UnicodeString& text, int start, int32_t& parsedLen) const;
937
+
938
+ /**
939
+ * Parses the input GMT offset fields with the default offset pattern.
940
+ * @param text the input text
941
+ * @param start the start index
942
+ * @param separator the separator character, e.g. ':'
943
+ * @param parsedLen the parsed length, or 0 on failure.
944
+ * @return the parsed offset in milliseconds.
945
+ */
946
+ int32_t parseDefaultOffsetFields(const UnicodeString& text, int32_t start, UChar separator,
947
+ int32_t& parsedLen) const;
948
+
949
+ /**
950
+ * Reads an offset field value. This method will stop parsing when
951
+ * 1) number of digits reaches <code>maxDigits</code>
952
+ * 2) just before already parsed number exceeds <code>maxVal</code>
953
+ *
954
+ * @param text the text
955
+ * @param start the start offset
956
+ * @param minDigits the minimum number of required digits
957
+ * @param maxDigits the maximum number of digits
958
+ * @param minVal the minimum value
959
+ * @param maxVal the maximum value
960
+ * @param parsedLen the actual parsed length.
961
+ * @return the integer value parsed
962
+ */
963
+ int32_t parseOffsetFieldWithLocalizedDigits(const UnicodeString& text, int32_t start,
964
+ uint8_t minDigits, uint8_t maxDigits, uint16_t minVal, uint16_t maxVal, int32_t& parsedLen) const;
965
+
966
+ /**
967
+ * Reads a single decimal digit, either localized digits used by this object
968
+ * or any Unicode numeric character.
969
+ * @param text the text
970
+ * @param start the start index
971
+ * @param len the actual length read from the text
972
+ * the start index is not a decimal number.
973
+ * @return the integer value of the parsed digit, or -1 on failure.
974
+ */
975
+ int32_t parseSingleLocalizedDigit(const UnicodeString& text, int32_t start, int32_t& len) const;
976
+
977
+ /**
978
+ * Formats offset using ASCII digits. The input offset range must be
979
+ * within +/-24 hours (exclusive).
980
+ * @param offset The offset
981
+ * @param sep The field separator character or 0 if not required
982
+ * @param minFields The minimum fields
983
+ * @param maxFields The maximum fields
984
+ * @return The offset string
985
+ */
986
+ static UnicodeString& formatOffsetWithAsciiDigits(int32_t offset, UChar sep,
987
+ OffsetFields minFields, OffsetFields maxFields, UnicodeString& result);
988
+
989
+ /**
990
+ * Parses offset represented by contiguous ASCII digits.
991
+ * <p>
992
+ * Note: This method expects the input position is already at the start of
993
+ * ASCII digits and does not parse sign (+/-).
994
+ * @param text The text contains a sequence of ASCII digits
995
+ * @param pos The parse position
996
+ * @param minFields The minimum Fields to be parsed
997
+ * @param maxFields The maximum Fields to be parsed
998
+ * @param fixedHourWidth true if hours field must be width of 2
999
+ * @return Parsed offset, 0 or positive number.
1000
+ */
1001
+ static int32_t parseAbuttingAsciiOffsetFields(const UnicodeString& text, ParsePosition& pos,
1002
+ OffsetFields minFields, OffsetFields maxFields, UBool fixedHourWidth);
1003
+
1004
+ /**
1005
+ * Parses offset represented by ASCII digits and separators.
1006
+ * <p>
1007
+ * Note: This method expects the input position is already at the start of
1008
+ * ASCII digits and does not parse sign (+/-).
1009
+ * @param text The text
1010
+ * @param pos The parse position
1011
+ * @param sep The separator character
1012
+ * @param minFields The minimum Fields to be parsed
1013
+ * @param maxFields The maximum Fields to be parsed
1014
+ * @return Parsed offset, 0 or positive number.
1015
+ */
1016
+ static int32_t parseAsciiOffsetFields(const UnicodeString& text, ParsePosition& pos, UChar sep,
1017
+ OffsetFields minFields, OffsetFields maxFields);
1018
+
1019
+ /**
1020
+ * Unquotes the message format style pattern.
1021
+ * @param pattern the pattern
1022
+ * @param result receive the unquoted pattern.
1023
+ * @return A reference to result.
1024
+ */
1025
+ static UnicodeString& unquote(const UnicodeString& pattern, UnicodeString& result);
1026
+
1027
+ /**
1028
+ * Initialize localized GMT format offset hour/min/sec patterns.
1029
+ * This method parses patterns into optimized run-time format.
1030
+ * @param status receives the status.
1031
+ */
1032
+ void initGMTOffsetPatterns(UErrorCode& status);
1033
+
1034
+ /**
1035
+ * Check if there are any GMT format offset patterns without
1036
+ * any separators between hours field and minutes field and update
1037
+ * fAbuttingOffsetHoursAndMinutes field. This method must be called
1038
+ * after all patterns are parsed into pattern items.
1039
+ */
1040
+ void checkAbuttingHoursAndMinutes();
1041
+
1042
+ /**
1043
+ * Creates an instance of TimeZone for the given offset
1044
+ * @param offset the offset
1045
+ * @return A TimeZone with the given offset
1046
+ */
1047
+ TimeZone* createTimeZoneForOffset(int32_t offset) const;
1048
+
1049
+ /**
1050
+ * Returns the time type for the given name type
1051
+ * @param nameType the name type
1052
+ * @return the time type (unknown/standard/daylight)
1053
+ */
1054
+ static UTimeZoneFormatTimeType getTimeType(UTimeZoneNameType nameType);
1055
+
1056
+ /**
1057
+ * Returns the time zone ID of a match at the specified index within
1058
+ * the MatchInfoCollection.
1059
+ * @param matches the collection of matches
1060
+ * @param idx the index withing matches
1061
+ * @param tzID receives the resolved time zone ID
1062
+ * @return a reference to tzID.
1063
+ */
1064
+ UnicodeString& getTimeZoneID(const TimeZoneNames::MatchInfoCollection* matches, int32_t idx, UnicodeString& tzID) const;
1065
+
1066
+
1067
+ /**
1068
+ * Parse a zone ID.
1069
+ * @param text the text contains a time zone ID string at the position.
1070
+ * @param pos the position
1071
+ * @param tzID receives the zone ID
1072
+ * @return a reference to tzID
1073
+ */
1074
+ UnicodeString& parseZoneID(const UnicodeString& text, ParsePosition& pos, UnicodeString& tzID) const;
1075
+
1076
+ /**
1077
+ * Parse a short zone ID.
1078
+ * @param text the text contains a short time zone ID string at the position.
1079
+ * @param pos the position
1080
+ * @param tzID receives the short zone ID
1081
+ * @return a reference to tzID
1082
+ */
1083
+ UnicodeString& parseShortZoneID(const UnicodeString& text, ParsePosition& pos, UnicodeString& tzID) const;
1084
+
1085
+ /**
1086
+ * Parse an exemplar location string.
1087
+ * @param text the text contains an exemplar location string at the position.
1088
+ * @param pos the position.
1089
+ * @param tzID receives the time zone ID
1090
+ * @return a reference to tzID
1091
+ */
1092
+ UnicodeString& parseExemplarLocation(const UnicodeString& text, ParsePosition& pos, UnicodeString& tzID) const;
1093
+ };
1094
+
1095
+ U_NAMESPACE_END
1096
+
1097
+ #endif /* !UCONFIG_NO_FORMATTING */
1098
+ #endif