pango 3.1.0-x64-mingw32 → 3.1.1-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (291) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +9 -4
  3. data/ext/pango/rbpangolayoutline.c +6 -2
  4. data/lib/2.2/pango.so +0 -0
  5. data/lib/2.3/pango.so +0 -0
  6. data/lib/2.4/pango.so +0 -0
  7. data/sample/layout.rb +1 -1
  8. data/vendor/local/bin/derb.exe +0 -0
  9. data/vendor/local/bin/genbrk.exe +0 -0
  10. data/vendor/local/bin/genccode.exe +0 -0
  11. data/vendor/local/bin/gencfu.exe +0 -0
  12. data/vendor/local/bin/gencmn.exe +0 -0
  13. data/vendor/local/bin/gencnval.exe +0 -0
  14. data/vendor/local/bin/gendict.exe +0 -0
  15. data/vendor/local/bin/gennorm2.exe +0 -0
  16. data/vendor/local/bin/genrb.exe +0 -0
  17. data/vendor/local/bin/gensprep.exe +0 -0
  18. data/vendor/local/bin/hb-ot-shape-closure.exe +0 -0
  19. data/vendor/local/bin/hb-shape.exe +0 -0
  20. data/vendor/local/bin/hb-view.exe +0 -0
  21. data/vendor/local/bin/icu-config +16 -11
  22. data/vendor/local/bin/icuinfo.exe +0 -0
  23. data/vendor/local/bin/icupkg.exe +0 -0
  24. data/vendor/local/bin/libharfbuzz-0.dll +0 -0
  25. data/vendor/local/bin/libpango-1.0-0.dll +0 -0
  26. data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
  27. data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
  28. data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
  29. data/vendor/local/bin/makeconv.exe +0 -0
  30. data/vendor/local/bin/pango-view.exe +0 -0
  31. data/vendor/local/bin/pkgdata.exe +0 -0
  32. data/vendor/local/bin/uconv.exe +0 -0
  33. data/vendor/local/include/harfbuzz/hb-font.h +5 -0
  34. data/vendor/local/include/harfbuzz/hb-glib.h +2 -1
  35. data/vendor/local/include/harfbuzz/hb-ot-layout.h +19 -0
  36. data/vendor/local/include/harfbuzz/hb-shape-plan.h +19 -0
  37. data/vendor/local/include/harfbuzz/hb-version.h +3 -3
  38. data/vendor/local/include/unicode/alphaindex.h +2 -0
  39. data/vendor/local/include/unicode/appendable.h +2 -0
  40. data/vendor/local/include/unicode/basictz.h +2 -0
  41. data/vendor/local/include/unicode/brkiter.h +7 -0
  42. data/vendor/local/include/unicode/bytestream.h +2 -0
  43. data/vendor/local/include/unicode/bytestrie.h +3 -2
  44. data/vendor/local/include/unicode/bytestriebuilder.h +4 -4
  45. data/vendor/local/include/unicode/calendar.h +2 -0
  46. data/vendor/local/include/unicode/caniter.h +2 -0
  47. data/vendor/local/include/unicode/chariter.h +2 -0
  48. data/vendor/local/include/unicode/choicfmt.h +2 -0
  49. data/vendor/local/include/unicode/coleitr.h +2 -0
  50. data/vendor/local/include/unicode/coll.h +2 -0
  51. data/vendor/local/include/unicode/compactdecimalformat.h +4 -3
  52. data/vendor/local/include/unicode/curramt.h +2 -0
  53. data/vendor/local/include/unicode/currpinf.h +2 -0
  54. data/vendor/local/include/unicode/currunit.h +2 -0
  55. data/vendor/local/include/unicode/datefmt.h +2 -0
  56. data/vendor/local/include/unicode/dbbi.h +2 -0
  57. data/vendor/local/include/unicode/dcfmtsym.h +2 -0
  58. data/vendor/local/include/unicode/decimfmt.h +9 -5
  59. data/vendor/local/include/unicode/docmain.h +3 -1
  60. data/vendor/local/include/unicode/dtfmtsym.h +26 -14
  61. data/vendor/local/include/unicode/dtintrv.h +2 -0
  62. data/vendor/local/include/unicode/dtitvfmt.h +2 -0
  63. data/vendor/local/include/unicode/dtitvinf.h +8 -3
  64. data/vendor/local/include/unicode/dtptngen.h +13 -9
  65. data/vendor/local/include/unicode/dtrule.h +2 -0
  66. data/vendor/local/include/unicode/enumset.h +2 -0
  67. data/vendor/local/include/unicode/errorcode.h +2 -0
  68. data/vendor/local/include/unicode/fieldpos.h +5 -2
  69. data/vendor/local/include/unicode/filteredbrk.h +10 -12
  70. data/vendor/local/include/unicode/fmtable.h +4 -2
  71. data/vendor/local/include/unicode/format.h +2 -0
  72. data/vendor/local/include/unicode/fpositer.h +2 -0
  73. data/vendor/local/include/unicode/gender.h +2 -0
  74. data/vendor/local/include/unicode/gregocal.h +2 -0
  75. data/vendor/local/include/unicode/icudataver.h +2 -0
  76. data/vendor/local/include/unicode/icuplug.h +12 -2
  77. data/vendor/local/include/unicode/idna.h +6 -4
  78. data/vendor/local/include/unicode/listformatter.h +2 -0
  79. data/vendor/local/include/unicode/localpointer.h +19 -28
  80. data/vendor/local/include/unicode/locdspnm.h +2 -0
  81. data/vendor/local/include/unicode/locid.h +2 -0
  82. data/vendor/local/include/unicode/measfmt.h +21 -2
  83. data/vendor/local/include/unicode/measunit.h +50 -24
  84. data/vendor/local/include/unicode/measure.h +2 -0
  85. data/vendor/local/include/unicode/messagepattern.h +2 -0
  86. data/vendor/local/include/unicode/msgfmt.h +2 -0
  87. data/vendor/local/include/unicode/normalizer2.h +2 -0
  88. data/vendor/local/include/unicode/normlzr.h +4 -4
  89. data/vendor/local/include/unicode/numfmt.h +8 -6
  90. data/vendor/local/include/unicode/numsys.h +2 -0
  91. data/vendor/local/include/unicode/parseerr.h +2 -0
  92. data/vendor/local/include/unicode/parsepos.h +2 -0
  93. data/vendor/local/include/unicode/platform.h +8 -0
  94. data/vendor/local/include/unicode/plurfmt.h +2 -0
  95. data/vendor/local/include/unicode/plurrule.h +2 -0
  96. data/vendor/local/include/unicode/ptypes.h +2 -0
  97. data/vendor/local/include/unicode/putil.h +2 -0
  98. data/vendor/local/include/unicode/rbbi.h +18 -66
  99. data/vendor/local/include/unicode/rbnf.h +8 -0
  100. data/vendor/local/include/unicode/rbtz.h +2 -0
  101. data/vendor/local/include/unicode/regex.h +2 -0
  102. data/vendor/local/include/unicode/region.h +3 -1
  103. data/vendor/local/include/unicode/reldatefmt.h +19 -9
  104. data/vendor/local/include/unicode/rep.h +2 -0
  105. data/vendor/local/include/unicode/resbund.h +2 -0
  106. data/vendor/local/include/unicode/schriter.h +2 -0
  107. data/vendor/local/include/unicode/scientificnumberformatter.h +2 -0
  108. data/vendor/local/include/unicode/search.h +2 -0
  109. data/vendor/local/include/unicode/selfmt.h +2 -0
  110. data/vendor/local/include/unicode/simpleformatter.h +2 -0
  111. data/vendor/local/include/unicode/simpletz.h +2 -0
  112. data/vendor/local/include/unicode/smpdtfmt.h +9 -1
  113. data/vendor/local/include/unicode/sortkey.h +2 -0
  114. data/vendor/local/include/unicode/std_string.h +2 -0
  115. data/vendor/local/include/unicode/strenum.h +2 -0
  116. data/vendor/local/include/unicode/stringpiece.h +5 -3
  117. data/vendor/local/include/unicode/stringtriebuilder.h +13 -1
  118. data/vendor/local/include/unicode/stsearch.h +2 -0
  119. data/vendor/local/include/unicode/symtable.h +2 -0
  120. data/vendor/local/include/unicode/tblcoll.h +3 -1
  121. data/vendor/local/include/unicode/timezone.h +2 -0
  122. data/vendor/local/include/unicode/tmunit.h +8 -0
  123. data/vendor/local/include/unicode/tmutamt.h +2 -0
  124. data/vendor/local/include/unicode/tmutfmt.h +5 -0
  125. data/vendor/local/include/unicode/translit.h +2 -0
  126. data/vendor/local/include/unicode/tzfmt.h +2 -0
  127. data/vendor/local/include/unicode/tznames.h +16 -2
  128. data/vendor/local/include/unicode/tzrule.h +2 -0
  129. data/vendor/local/include/unicode/tztrans.h +2 -0
  130. data/vendor/local/include/unicode/ubidi.h +20 -8
  131. data/vendor/local/include/unicode/ubiditransform.h +321 -0
  132. data/vendor/local/include/unicode/ubrk.h +26 -7
  133. data/vendor/local/include/unicode/ucal.h +8 -4
  134. data/vendor/local/include/unicode/ucasemap.h +2 -0
  135. data/vendor/local/include/unicode/ucat.h +2 -0
  136. data/vendor/local/include/unicode/uchar.h +244 -17
  137. data/vendor/local/include/unicode/ucharstrie.h +2 -0
  138. data/vendor/local/include/unicode/ucharstriebuilder.h +2 -0
  139. data/vendor/local/include/unicode/uchriter.h +2 -0
  140. data/vendor/local/include/unicode/uclean.h +2 -0
  141. data/vendor/local/include/unicode/ucnv.h +8 -1
  142. data/vendor/local/include/unicode/ucnv_cb.h +2 -0
  143. data/vendor/local/include/unicode/ucnv_err.h +2 -0
  144. data/vendor/local/include/unicode/ucnvsel.h +2 -0
  145. data/vendor/local/include/unicode/ucol.h +28 -11
  146. data/vendor/local/include/unicode/ucoleitr.h +2 -0
  147. data/vendor/local/include/unicode/uconfig.h +2 -0
  148. data/vendor/local/include/unicode/ucsdet.h +2 -0
  149. data/vendor/local/include/unicode/ucurr.h +5 -1
  150. data/vendor/local/include/unicode/udat.h +13 -11
  151. data/vendor/local/include/unicode/udata.h +8 -1
  152. data/vendor/local/include/unicode/udateintervalformat.h +2 -0
  153. data/vendor/local/include/unicode/udatpg.h +15 -2
  154. data/vendor/local/include/unicode/udisplaycontext.h +34 -2
  155. data/vendor/local/include/unicode/uenum.h +2 -0
  156. data/vendor/local/include/unicode/ufieldpositer.h +4 -2
  157. data/vendor/local/include/unicode/uformattable.h +9 -1
  158. data/vendor/local/include/unicode/ugender.h +2 -0
  159. data/vendor/local/include/unicode/uidna.h +2 -0
  160. data/vendor/local/include/unicode/uiter.h +2 -0
  161. data/vendor/local/include/unicode/uldnames.h +2 -0
  162. data/vendor/local/include/unicode/ulistformatter.h +2 -0
  163. data/vendor/local/include/unicode/uloc.h +9 -3
  164. data/vendor/local/include/unicode/ulocdata.h +20 -2
  165. data/vendor/local/include/unicode/umachine.h +25 -0
  166. data/vendor/local/include/unicode/umisc.h +2 -0
  167. data/vendor/local/include/unicode/umsg.h +2 -0
  168. data/vendor/local/include/unicode/unifilt.h +2 -0
  169. data/vendor/local/include/unicode/unifunct.h +2 -0
  170. data/vendor/local/include/unicode/unimatch.h +2 -0
  171. data/vendor/local/include/unicode/unirepl.h +2 -0
  172. data/vendor/local/include/unicode/uniset.h +3 -1
  173. data/vendor/local/include/unicode/unistr.h +12 -14
  174. data/vendor/local/include/unicode/unorm.h +6 -2
  175. data/vendor/local/include/unicode/unorm2.h +2 -0
  176. data/vendor/local/include/unicode/unum.h +28 -10
  177. data/vendor/local/include/unicode/unumsys.h +2 -0
  178. data/vendor/local/include/unicode/uobject.h +2 -0
  179. data/vendor/local/include/unicode/upluralrules.h +6 -2
  180. data/vendor/local/include/unicode/uregex.h +2 -0
  181. data/vendor/local/include/unicode/uregion.h +6 -2
  182. data/vendor/local/include/unicode/ureldatefmt.h +13 -7
  183. data/vendor/local/include/unicode/urename.h +16 -4
  184. data/vendor/local/include/unicode/urep.h +2 -0
  185. data/vendor/local/include/unicode/ures.h +7 -1
  186. data/vendor/local/include/unicode/uscript.h +41 -29
  187. data/vendor/local/include/unicode/usearch.h +10 -4
  188. data/vendor/local/include/unicode/uset.h +5 -1
  189. data/vendor/local/include/unicode/usetiter.h +2 -0
  190. data/vendor/local/include/unicode/ushape.h +2 -0
  191. data/vendor/local/include/unicode/uspoof.h +876 -363
  192. data/vendor/local/include/unicode/usprep.h +2 -0
  193. data/vendor/local/include/unicode/ustdio.h +2 -0
  194. data/vendor/local/include/unicode/ustream.h +2 -0
  195. data/vendor/local/include/unicode/ustring.h +2 -0
  196. data/vendor/local/include/unicode/ustringtrie.h +2 -0
  197. data/vendor/local/include/unicode/utext.h +2 -0
  198. data/vendor/local/include/unicode/utf.h +2 -0
  199. data/vendor/local/include/unicode/utf16.h +2 -0
  200. data/vendor/local/include/unicode/utf32.h +2 -0
  201. data/vendor/local/include/unicode/utf8.h +2 -0
  202. data/vendor/local/include/unicode/utf_old.h +2 -0
  203. data/vendor/local/include/unicode/utmscale.h +2 -0
  204. data/vendor/local/include/unicode/utrace.h +20 -0
  205. data/vendor/local/include/unicode/utrans.h +2 -0
  206. data/vendor/local/include/unicode/utypes.h +71 -97
  207. data/vendor/local/include/unicode/uvernum.h +13 -12
  208. data/vendor/local/include/unicode/uversion.h +2 -0
  209. data/vendor/local/include/unicode/vtzone.h +2 -0
  210. data/vendor/local/lib/icu/{57.1 → 58.2}/Makefile.inc +8 -9
  211. data/vendor/local/lib/icu/{57.1 → 58.2}/pkgdata.inc +2 -2
  212. data/vendor/local/lib/icu/Makefile.inc +8 -9
  213. data/vendor/local/lib/icu/pkgdata.inc +2 -2
  214. data/vendor/local/lib/icudt.dll +0 -0
  215. data/vendor/local/lib/{icudt57.dll → icudt58.dll} +0 -0
  216. data/vendor/local/lib/icuin.dll +0 -0
  217. data/vendor/local/lib/icuin58.dll +0 -0
  218. data/vendor/local/lib/icuio.dll +0 -0
  219. data/vendor/local/lib/{icuio57.dll → icuio58.dll} +0 -0
  220. data/vendor/local/lib/icutest.dll +0 -0
  221. data/vendor/local/lib/{icutest57.dll → icutest58.dll} +0 -0
  222. data/vendor/local/lib/icutu.dll +0 -0
  223. data/vendor/local/lib/icutu58.dll +0 -0
  224. data/vendor/local/lib/icuuc.dll +0 -0
  225. data/vendor/local/lib/icuuc58.dll +0 -0
  226. data/vendor/local/lib/libharfbuzz-icu.a +0 -0
  227. data/vendor/local/lib/libharfbuzz-icu.la +4 -4
  228. data/vendor/local/lib/libharfbuzz.dll.a +0 -0
  229. data/vendor/local/lib/libharfbuzz.la +3 -3
  230. data/vendor/local/lib/libicudt.dll.a +0 -0
  231. data/vendor/local/lib/libicuin.dll.a +0 -0
  232. data/vendor/local/lib/libicuio.dll.a +0 -0
  233. data/vendor/local/lib/libicutest.dll.a +0 -0
  234. data/vendor/local/lib/libicutu.dll.a +0 -0
  235. data/vendor/local/lib/libicuuc.dll.a +0 -0
  236. data/vendor/local/lib/libpango-1.0.dll.a +0 -0
  237. data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
  238. data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
  239. data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
  240. data/vendor/local/lib/pkgconfig/harfbuzz-icu.pc +1 -1
  241. data/vendor/local/lib/pkgconfig/harfbuzz.pc +2 -2
  242. data/vendor/local/lib/pkgconfig/icu-i18n.pc +8 -6
  243. data/vendor/local/lib/pkgconfig/icu-io.pc +8 -6
  244. data/vendor/local/lib/pkgconfig/icu-uc.pc +8 -6
  245. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-version.html +3 -3
  246. data/vendor/local/share/gtk-doc/html/harfbuzz/pt02.html +1 -1
  247. data/vendor/local/share/icu/{57.1 → 58.2}/LICENSE +52 -60
  248. data/vendor/local/share/icu/{57.1 → 58.2}/config/mh-mingw64 +2 -0
  249. data/vendor/local/share/icu/{57.1 → 58.2}/install-sh +0 -0
  250. data/vendor/local/share/icu/{57.1 → 58.2}/mkinstalldirs +2 -0
  251. data/vendor/local/share/man/man1/derb.1 +4 -2
  252. data/vendor/local/share/man/man1/genbrk.1 +4 -2
  253. data/vendor/local/share/man/man1/gencfu.1 +3 -1
  254. data/vendor/local/share/man/man1/gencnval.1 +5 -3
  255. data/vendor/local/share/man/man1/gendict.1 +4 -2
  256. data/vendor/local/share/man/man1/genrb.1 +5 -3
  257. data/vendor/local/share/man/man1/icu-config.1 +4 -5
  258. data/vendor/local/share/man/man1/makeconv.1 +5 -3
  259. data/vendor/local/share/man/man1/pkgdata.1 +4 -2
  260. data/vendor/local/share/man/man1/uconv.1 +4 -2
  261. data/vendor/local/share/man/man8/genccode.8 +4 -2
  262. data/vendor/local/share/man/man8/gencmn.8 +5 -3
  263. data/vendor/local/share/man/man8/gensprep.8 +5 -3
  264. data/vendor/local/share/man/man8/icupkg.8 +3 -1
  265. metadata +22 -40
  266. data/vendor/local/include/layout/LEFontInstance.h +0 -524
  267. data/vendor/local/include/layout/LEGlyphFilter.h +0 -45
  268. data/vendor/local/include/layout/LEGlyphStorage.h +0 -546
  269. data/vendor/local/include/layout/LEInsertionList.h +0 -177
  270. data/vendor/local/include/layout/LELanguages.h +0 -109
  271. data/vendor/local/include/layout/LEScripts.h +0 -204
  272. data/vendor/local/include/layout/LESwaps.h +0 -100
  273. data/vendor/local/include/layout/LETableReference.h +0 -435
  274. data/vendor/local/include/layout/LETypes.h +0 -728
  275. data/vendor/local/include/layout/LayoutEngine.h +0 -518
  276. data/vendor/local/include/layout/ParagraphLayout.h +0 -747
  277. data/vendor/local/include/layout/RunArrays.h +0 -676
  278. data/vendor/local/include/layout/loengine.h +0 -225
  279. data/vendor/local/include/layout/playout.h +0 -466
  280. data/vendor/local/include/layout/plruns.h +0 -441
  281. data/vendor/local/lib/icuin57.dll +0 -0
  282. data/vendor/local/lib/icule.dll +0 -0
  283. data/vendor/local/lib/icule57.dll +0 -0
  284. data/vendor/local/lib/iculx.dll +0 -0
  285. data/vendor/local/lib/iculx57.dll +0 -0
  286. data/vendor/local/lib/icutu57.dll +0 -0
  287. data/vendor/local/lib/icuuc57.dll +0 -0
  288. data/vendor/local/lib/libicule.dll.a +0 -0
  289. data/vendor/local/lib/libiculx.dll.a +0 -0
  290. data/vendor/local/lib/pkgconfig/icu-le.pc +0 -38
  291. data/vendor/local/lib/pkgconfig/icu-lx.pc +0 -38
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  **************************************************************************
3
5
  * Copyright (C) 1999-2012, International Business Machines Corporation and
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  ******************************************************************************
3
5
  *
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  ******************************************************************************
3
5
  *
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  **********************************************************************
3
5
  * Copyright (c) 2014-2016, International Business Machines
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  **********************************************************************
3
5
  * Copyright (C) 2001-2011 IBM and others. All rights reserved.
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /********************************************************************
2
4
  * COPYRIGHT:
3
5
  * Copyright (c) 1997-2011, International Business Machines Corporation and
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  ******************************************************************************
3
5
  * Copyright (C) 2014-2016, International Business Machines
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  ********************************************************************************
3
5
  * Copyright (C) 1997-2013, International Business Machines *
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  * Copyright (C) 1997-2016, International Business Machines Corporation and
3
5
  * others. All Rights Reserved.
@@ -651,7 +653,7 @@ class SimpleDateFormatMutableNFs;
651
653
  * = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss a zzz", success );
652
654
  * GregorianCalendar cal(success);
653
655
  * UDate currentTime_1 = cal.getTime(success);
654
- * FieldPosition fp(0);
656
+ * FieldPosition fp(FieldPosition::DONT_CARE);
655
657
  * UnicodeString dateString;
656
658
  * formatter->format( currentTime_1, dateString, fp );
657
659
  * cout << "result: " << dateString << endl;
@@ -999,6 +1001,12 @@ public:
999
1001
  * (Presumably, letters that would be more mnemonic in that locale's
1000
1002
  * language.) This function would produce a pattern using those
1001
1003
  * letters.
1004
+ * <p>
1005
+ * <b>Note:</b> This implementation depends on DateFormatSymbols::getLocalPatternChars()
1006
+ * to get localized format pattern characters. ICU does not include
1007
+ * localized pattern character data, therefore, unless user sets localized
1008
+ * pattern characters manually, this method returns the same result as
1009
+ * toPattern().
1002
1010
  *
1003
1011
  * @param result Receives the localized pattern.
1004
1012
  * @param status Output param set to success/failure code on
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *****************************************************************************
3
5
  * Copyright (C) 1996-2014, International Business Machines Corporation and others.
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *******************************************************************************
3
5
  *
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *******************************************************************************
3
5
  *
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  // Copyright (C) 2009-2013, International Business Machines
2
4
  // Corporation and others. All Rights Reserved.
3
5
  //
@@ -40,9 +42,9 @@ U_NAMESPACE_BEGIN
40
42
  * in a "const char*" or a "string" wherever a "StringPiece" is
41
43
  * expected.
42
44
  *
43
- * Functions or methods may use const StringPiece& parameters to accept either
44
- * a "const char*" or a "string" value that will be implicitly converted to
45
- * a StringPiece.
45
+ * Functions or methods may use StringPiece parameters to accept either a
46
+ * "const char*" or a "string" value that will be implicitly converted to a
47
+ * StringPiece.
46
48
  *
47
49
  * Systematic usage of StringPiece is encouraged as it will reduce unnecessary
48
50
  * conversions from "const char*" to "string" and back again.
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *******************************************************************************
3
5
  * Copyright (C) 2010-2012,2014, International Business Machines
@@ -184,7 +186,8 @@ protected:
184
186
  /** @internal */
185
187
  UHashtable *nodes;
186
188
 
187
- #ifndef U_HIDE_INTERNAL_API
189
+ // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
190
+ // it is needed for layout of other objects.
188
191
  /** @internal */
189
192
  class Node : public UObject {
190
193
  public:
@@ -243,6 +246,7 @@ protected:
243
246
  int32_t offset;
244
247
  };
245
248
 
249
+ #ifndef U_HIDE_INTERNAL_API
246
250
  // This class should not be overridden because
247
251
  // registerFinalValue() compares a stack-allocated FinalValueNode
248
252
  // (stack-allocated so that we don't unnecessarily create lots of duplicate nodes)
@@ -258,7 +262,10 @@ protected:
258
262
  protected:
259
263
  int32_t value;
260
264
  };
265
+ #endif /* U_HIDE_INTERNAL_API */
261
266
 
267
+ // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
268
+ // it is needed for layout of other objects.
262
269
  /**
263
270
  * @internal
264
271
  */
@@ -276,6 +283,7 @@ protected:
276
283
  int32_t value;
277
284
  };
278
285
 
286
+ #ifndef U_HIDE_INTERNAL_API
279
287
  /**
280
288
  * @internal
281
289
  */
@@ -289,7 +297,10 @@ protected:
289
297
  protected:
290
298
  Node *next;
291
299
  };
300
+ #endif /* U_HIDE_INTERNAL_API */
292
301
 
302
+ // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
303
+ // it is needed for layout of other objects.
293
304
  /**
294
305
  * @internal
295
306
  */
@@ -305,6 +316,7 @@ protected:
305
316
  Node *next;
306
317
  };
307
318
 
319
+ #ifndef U_HIDE_INTERNAL_API
308
320
  /**
309
321
  * @internal
310
322
  */
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  **********************************************************************
3
5
  * Copyright (C) 2001-2014 IBM and others. All rights reserved.
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  **********************************************************************
3
5
  * Copyright (c) 2000-2005, International Business Machines
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  ******************************************************************************
3
5
  * Copyright (C) 1996-2016, International Business Machines Corporation and
@@ -854,7 +856,7 @@ private:
854
856
  */
855
857
  UBool isUnsafe(UChar32 c) const;
856
858
 
857
- static void computeMaxExpansions(const CollationTailoring *t, UErrorCode &errorCode);
859
+ static void U_CALLCONV computeMaxExpansions(const CollationTailoring *t, UErrorCode &errorCode);
858
860
  UBool initMaxExpansions(UErrorCode &errorCode) const;
859
861
 
860
862
  void setFastLatinOptions(CollationSettings &ownedSettings) const;
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*************************************************************************
2
4
  * Copyright (c) 1997-2016, International Business Machines Corporation
3
5
  * and others. All Rights Reserved.
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *******************************************************************************
3
5
  * Copyright (C) 2009-2016, International Business Machines Corporation, *
@@ -41,7 +43,13 @@ public:
41
43
  UTIMEUNIT_HOUR,
42
44
  UTIMEUNIT_MINUTE,
43
45
  UTIMEUNIT_SECOND,
46
+ #ifndef U_HIDE_DEPRECATED_API
47
+ /**
48
+ * One more than the highest normal UTimeUnitFields value.
49
+ * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
50
+ */
44
51
  UTIMEUNIT_FIELD_COUNT
52
+ #endif // U_HIDE_DEPRECATED_API
45
53
  };
46
54
 
47
55
  /**
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *******************************************************************************
3
5
  * Copyright (C) 2009-2010, Google, International Business Machines Corporation and *
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *******************************************************************************
3
5
  * Copyright (C) 2008-2014, Google, International Business Machines Corporation
@@ -50,6 +52,8 @@ U_NAMESPACE_BEGIN
50
52
  class Hashtable;
51
53
  class UVector;
52
54
 
55
+ struct TimeUnitFormatReadSink;
56
+
53
57
  /**
54
58
  * Format or parse a TimeUnitAmount, using plural rules for the units where available.
55
59
  *
@@ -227,6 +231,7 @@ private:
227
231
  // UTIMEUNIT_YEAR.
228
232
  static const char* getTimeUnitName(TimeUnit::UTimeUnitFields field, UErrorCode& status);
229
233
 
234
+ friend struct TimeUnitFormatReadSink;
230
235
  };
231
236
 
232
237
  inline UBool
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  **********************************************************************
3
5
  * Copyright (C) 1999-2014, International Business Machines
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *******************************************************************************
3
5
  * Copyright (C) 2011-2015, International Business Machines Corporation and
@@ -1,6 +1,8 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *******************************************************************************
3
- * Copyright (C) 2011-2015, International Business Machines Corporation and
5
+ * Copyright (C) 2011-2016, International Business Machines Corporation and
4
6
  * others. All Rights Reserved.
5
7
  *******************************************************************************
6
8
  */
@@ -133,7 +135,7 @@ public:
133
135
  virtual ~TimeZoneNames();
134
136
 
135
137
  /**
136
- * Return true if the given TimeZoneNames objects are emantically equal.
138
+ * Return true if the given TimeZoneNames objects are semantically equal.
137
139
  * @param other the object to be compared with.
138
140
  * @return Return TRUE if the given Format objects are semantically equal.
139
141
  * @stable ICU 50
@@ -288,6 +290,18 @@ public:
288
290
  */
289
291
  virtual UnicodeString& getDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UDate date, UnicodeString& name) const;
290
292
 
293
+ /**
294
+ * @internal For specific users only until proposed publicly.
295
+ * @deprecated This API is ICU internal only.
296
+ */
297
+ virtual void loadAllDisplayNames(UErrorCode& status);
298
+
299
+ /**
300
+ * @internal For specific users only until proposed publicly.
301
+ * @deprecated This API is ICU internal only.
302
+ */
303
+ virtual void getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const;
304
+
291
305
  /**
292
306
  * <code>MatchInfoCollection</code> represents a collection of time zone name matches used by
293
307
  * {@link TimeZoneNames#find}.
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *******************************************************************************
3
5
  * Copyright (C) 2007-2008, International Business Machines Corporation and *
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  *******************************************************************************
3
5
  * Copyright (C) 2007-2008, International Business Machines Corporation and *
@@ -1,3 +1,5 @@
1
+ // Copyright (C) 2016 and later: Unicode, Inc. and others.
2
+ // License & terms of use: http://www.unicode.org/copyright.html
1
3
  /*
2
4
  ******************************************************************************
3
5
  *
@@ -718,9 +720,13 @@ typedef enum UBiDiReorderingMode {
718
720
  * <code>UBIDI_REORDER_NUMBERS_SPECIAL</code> Bidi algorithm.
719
721
  * @stable ICU 3.6 */
720
722
  UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL,
721
- /** Number of values for reordering mode.
722
- * @stable ICU 3.6 */
723
+ #ifndef U_HIDE_DEPRECATED_API
724
+ /**
725
+ * Number of values for reordering mode.
726
+ * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
727
+ */
723
728
  UBIDI_REORDER_COUNT
729
+ #endif // U_HIDE_DEPRECATED_API
724
730
  } UBiDiReorderingMode;
725
731
 
726
732
  /**
@@ -1959,13 +1965,19 @@ U_STABLE int32_t U_EXPORT2
1959
1965
  ubidi_getResultLength(const UBiDi *pBiDi);
1960
1966
 
1961
1967
  U_CDECL_BEGIN
1968
+
1969
+ #ifndef U_HIDE_DEPRECATED_API
1962
1970
  /**
1963
- * value returned by <code>UBiDiClassCallback</code> callbacks when
1971
+ * Value returned by <code>UBiDiClassCallback</code> callbacks when
1964
1972
  * there is no need to override the standard Bidi class for a given code point.
1973
+ *
1974
+ * This constant is deprecated; use u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1 instead.
1975
+ *
1965
1976
  * @see UBiDiClassCallback
1966
- * @stable ICU 3.6
1977
+ * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
1967
1978
  */
1968
1979
  #define U_BIDI_CLASS_DEFAULT U_CHAR_DIRECTION_COUNT
1980
+ #endif // U_HIDE_DEPRECATED_API
1969
1981
 
1970
1982
  /**
1971
1983
  * Callback type declaration for overriding default Bidi class values with
@@ -1981,8 +1993,8 @@ U_CDECL_BEGIN
1981
1993
  *
1982
1994
  * @return The directional property / Bidi class for the given code point
1983
1995
  * <code>c</code> if the default class has been overridden, or
1984
- * <code>#U_BIDI_CLASS_DEFAULT</code> if the standard Bidi class value
1985
- * for <code>c</code> is to be used.
1996
+ * <code>#U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>
1997
+ * if the standard Bidi class value for <code>c</code> is to be used.
1986
1998
  * @see ubidi_setClassCallback
1987
1999
  * @see ubidi_getClassCallback
1988
2000
  * @stable ICU 3.6
@@ -1995,8 +2007,8 @@ U_CDECL_END
1995
2007
  /**
1996
2008
  * Retrieve the Bidi class for a given code point.
1997
2009
  * <p>If a <code>#UBiDiClassCallback</code> callback is defined and returns a
1998
- * value other than <code>#U_BIDI_CLASS_DEFAULT</code>, that value is used;
1999
- * otherwise the default class determination mechanism is invoked.</p>
2010
+ * value other than <code>#U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>,
2011
+ * that value is used; otherwise the default class determination mechanism is invoked.</p>
2000
2012
  *
2001
2013
  * @param pBiDi is the paragraph <code>UBiDi</code> object.
2002
2014
  *
@@ -0,0 +1,321 @@
1
+ /*
2
+ ******************************************************************************
3
+ *
4
+ * Copyright (C) 2016 and later: Unicode, Inc. and others.
5
+ * License & terms of use: http://www.unicode.org/copyright.html
6
+ *
7
+ ******************************************************************************
8
+ * file name: ubiditransform.h
9
+ * encoding: US-ASCII
10
+ * tab size: 8 (not used)
11
+ * indentation:4
12
+ *
13
+ * created on: 2016jul24
14
+ * created by: Lina Kemmel
15
+ *
16
+ */
17
+
18
+ #ifndef UBIDITRANSFORM_H
19
+ #define UBIDITRANSFORM_H
20
+
21
+ #include "unicode/utypes.h"
22
+ #include "unicode/ubidi.h"
23
+ #include "unicode/uchar.h"
24
+ #include "unicode/localpointer.h"
25
+
26
+ #ifndef U_HIDE_DRAFT_API
27
+
28
+ /**
29
+ * \file
30
+ * \brief Bidi Transformations
31
+ *
32
+ * <code>UBiDiOrder</code> indicates the order of text.<p>
33
+ * This bidi transformation engine supports all possible combinations (4 in
34
+ * total) of input and output text order:
35
+ * <ul>
36
+ * <li><logical input, visual output>: unless the output direction is RTL, this
37
+ * corresponds to a normal operation of the Bidi algorithm as described in the
38
+ * Unicode Technical Report and implemented by <code>UBiDi</code> when the
39
+ * reordering mode is set to <code>UBIDI_REORDER_DEFAULT</code>. Visual RTL
40
+ * mode is not supported by <code>UBiDi</code> and is accomplished through
41
+ * reversing a visual LTR string,</li>
42
+ * <li><visual input, logical output>: unless the input direction is RTL, this
43
+ * corresponds to an "inverse bidi algorithm" in <code>UBiDi</code> with the
44
+ * reordering mode set to <code>UBIDI_REORDER_INVERSE_LIKE_DIRECT</code>.
45
+ * Visual RTL mode is not not supported by <code>UBiDi</code> and is
46
+ * accomplished through reversing a visual LTR string,</li>
47
+ * <li><logical input, logical output>: if the input and output base directions
48
+ * mismatch, this corresponds to the <code>UBiDi</code> implementation with the
49
+ * reordering mode set to <code>UBIDI_REORDER_RUNS_ONLY</code>; and if the
50
+ * input and output base directions are identical, the transformation engine
51
+ * will only handle character mirroring and Arabic shaping operations without
52
+ * reordering,</li>
53
+ * <li><visual input, visual output>: this reordering mode is not supported by
54
+ * the <code>UBiDi</code> engine; it implies character mirroring, Arabic
55
+ * shaping, and - if the input/output base directions mismatch - string
56
+ * reverse operations.</li>
57
+ * </ul>
58
+ * @see ubidi_setInverse
59
+ * @see ubidi_setReorderingMode
60
+ * @see UBIDI_REORDER_DEFAULT
61
+ * @see UBIDI_REORDER_INVERSE_LIKE_DIRECT
62
+ * @see UBIDI_REORDER_RUNS_ONLY
63
+ * @draft ICU 58
64
+ */
65
+ typedef enum {
66
+ /** 0: Constant indicating a logical order.
67
+ * This is the default for input text.
68
+ * @draft ICU 58
69
+ */
70
+ UBIDI_LOGICAL = 0,
71
+ /** 1: Constant indicating a visual order.
72
+ * This is a default for output text.
73
+ * @draft ICU 58
74
+ */
75
+ UBIDI_VISUAL
76
+ } UBiDiOrder;
77
+
78
+ /**
79
+ * <code>UBiDiMirroring</code> indicates whether or not characters with the
80
+ * "mirrored" property in RTL runs should be replaced with their mirror-image
81
+ * counterparts.
82
+ * @see UBIDI_DO_MIRRORING
83
+ * @see ubidi_setReorderingOptions
84
+ * @see ubidi_writeReordered
85
+ * @see ubidi_writeReverse
86
+ * @draft ICU 58
87
+ */
88
+ typedef enum {
89
+ /** 0: Constant indicating that character mirroring should not be
90
+ * performed.
91
+ * This is the default.
92
+ * @draft ICU 58
93
+ */
94
+ UBIDI_MIRRORING_OFF = 0,
95
+ /** 1: Constant indicating that character mirroring should be performed.
96
+ * This corresponds to calling <code>ubidi_writeReordered</code> or
97
+ * <code>ubidi_writeReverse</code> with the
98
+ * <code>UBIDI_DO_MIRRORING</code> option bit set.
99
+ * @draft ICU 58
100
+ */
101
+ UBIDI_MIRRORING_ON
102
+ } UBiDiMirroring;
103
+
104
+ /**
105
+ * Forward declaration of the <code>UBiDiTransform</code> structure that stores
106
+ * information used by the layout transformation engine.
107
+ * @draft ICU 58
108
+ */
109
+ typedef struct UBiDiTransform UBiDiTransform;
110
+
111
+ /**
112
+ * Performs transformation of text from the bidi layout defined by the input
113
+ * ordering scheme to the bidi layout defined by the output ordering scheme,
114
+ * and applies character mirroring and Arabic shaping operations.<p>
115
+ * In terms of <code>UBiDi</code>, such a transformation implies:
116
+ * <ul>
117
+ * <li>calling <code>ubidi_setReorderingMode</code> as needed (when the
118
+ * reordering mode is other than normal),</li>
119
+ * <li>calling <code>ubidi_setInverse</code> as needed (when text should be
120
+ * transformed from a visual to a logical form),</li>
121
+ * <li>resolving embedding levels of each character in the input text by
122
+ * calling <code>ubidi_setPara</code>,</li>
123
+ * <li>reordering the characters based on the computed embedding levels, also
124
+ * performing character mirroring as needed, and streaming the result to the
125
+ * output, by calling <code>ubidi_writeReordered</code>,</li>
126
+ * <li>performing Arabic digit and letter shaping on the output text by calling
127
+ * <code>u_shapeArabic</code>.</li>
128
+ * </ul>
129
+ * An "ordering scheme" encompasses the base direction and the order of text,
130
+ * and these characteristics must be defined by the caller for both input and
131
+ * output explicitly .<p>
132
+ * There are 36 possible combinations of <input, output> ordering schemes,
133
+ * which are partially supported by <code>UBiDi</code> already. Examples of the
134
+ * currently supported combinations:
135
+ * <ul>
136
+ * <li><Logical LTR, Visual LTR>: this is equivalent to calling
137
+ * <code>ubidi_setPara</code> with <code>paraLevel == UBIDI_LTR</code>,</li>
138
+ * <li><Logical RTL, Visual LTR>: this is equivalent to calling
139
+ * <code>ubidi_setPara</code> with <code>paraLevel == UBIDI_RTL</code>,</li>
140
+ * <li><Logical Default ("Auto") LTR, Visual LTR>: this is equivalent to
141
+ * calling <code>ubidi_setPara</code> with
142
+ * <code>paraLevel == UBIDI_DEFAULT_LTR</code>,</li>
143
+ * <li><Logical Default ("Auto") RTL, Visual LTR>: this is equivalent to
144
+ * calling <code>ubidi_setPara</code> with
145
+ * <code>paraLevel == UBIDI_DEFAULT_RTL</code>,</li>
146
+ * <li><Visual LTR, Logical LTR>: this is equivalent to
147
+ * calling <code>ubidi_setInverse(UBiDi*, TRUE)</code> and then
148
+ * <code>ubidi_setPara</code> with <code>paraLevel == UBIDI_LTR</code>,</li>
149
+ * <li><Visual LTR, Logical RTL>: this is equivalent to
150
+ * calling <code>ubidi_setInverse(UBiDi*, TRUE)</code> and then
151
+ * <code>ubidi_setPara</code> with <code>paraLevel == UBIDI_RTL</code>.</li>
152
+ * </ul>
153
+ * All combinations that involve the Visual RTL scheme are unsupported by
154
+ * <code>UBiDi</code>, for instance:
155
+ * <ul>
156
+ * <li><Logical LTR, Visual RTL>,</li>
157
+ * <li><Visual RTL, Logical RTL>.</li>
158
+ * </ul>
159
+ * <p>Example of usage of the transformation engine:<br>
160
+ * <pre>
161
+ * \code
162
+ * UChar text1[] = {'a', 'b', 'c', 0x0625, '1', 0};
163
+ * UChar text2[] = {'a', 'b', 'c', 0x0625, '1', 0};
164
+ * UErrorCode errorCode = U_ZERO_ERROR;
165
+ * // Run a transformation.
166
+ * ubiditransform_transform(pBidiTransform,
167
+ * text1, -1, text2, -1,
168
+ * UBIDI_LTR, UBIDI_VISUAL,
169
+ * UBIDI_RTL, UBIDI_LOGICAL,
170
+ * UBIDI_MIRRORING_OFF,
171
+ * U_SHAPE_DIGITS_AN2EN | U_SHAPE_DIGIT_TYPE_AN_EXTENDED,
172
+ * &errorCode);
173
+ * // Do something with text2.
174
+ * text2[4] = '2';
175
+ * // Run a reverse transformation.
176
+ * ubiditransform_transform(pBidiTransform,
177
+ * text2, -1, text1, -1,
178
+ * UBIDI_RTL, UBIDI_LOGICAL,
179
+ * UBIDI_LTR, UBIDI_VISUAL,
180
+ * UBIDI_MIRRORING_OFF,
181
+ * U_SHAPE_DIGITS_EN2AN | U_SHAPE_DIGIT_TYPE_AN_EXTENDED,
182
+ * &errorCode);
183
+ *\endcode
184
+ * </pre>
185
+ * </p>
186
+ *
187
+ * @param pBiDiTransform A pointer to a <code>UBiDiTransform</code> object
188
+ * allocated with <code>ubiditransform_open()</code> or
189
+ * <code>NULL</code>.<p>
190
+ * This object serves for one-time setup to amortize initialization
191
+ * overheads. Use of this object is not thread-safe. All other threads
192
+ * should allocate a new <code>UBiDiTransform</code> object by calling
193
+ * <code>ubiditransform_open()</code> before using it. Alternatively,
194
+ * a caller can set this parameter to <code>NULL</code>, in which case
195
+ * the object will be allocated by the engine on the fly.</p>
196
+ * @param src A pointer to the text that the Bidi layout transformations will
197
+ * be performed on.
198
+ * <p><strong>Note:</strong> the text must be (at least)
199
+ * <code>srcLength</code> long.</p>
200
+ * @param srcLength The length of the text, in number of UChars. If
201
+ * <code>length == -1</code> then the text must be zero-terminated.
202
+ * @param dest A pointer to where the processed text is to be copied.
203
+ * @param destSize The size of the <code>dest</code> buffer, in number of
204
+ * UChars. If the <code>U_SHAPE_LETTERS_UNSHAPE</code> option is set,
205
+ * then the destination length could be as large as
206
+ * <code>srcLength * 2</code>. Otherwise, the destination length will
207
+ * not exceed <code>srcLength</code>. If the caller reserves the last
208
+ * position for zero-termination, it should be excluded from
209
+ * <code>destSize</code>.
210
+ * <p><code>destSize == -1</code> is allowed and makes sense when
211
+ * <code>dest</code> was holds some meaningful value, e.g. that of
212
+ * <code>src</code>. In this case <code>dest</code> must be
213
+ * zero-terminated.</p>
214
+ * @param inParaLevel A base embedding level of the input as defined in
215
+ * <code>ubidi_setPara</code> documentation for the
216
+ * <code>paraLevel</code> parameter.
217
+ * @param inOrder An order of the input, which can be one of the
218
+ * <code>UBiDiOrder</code> values.
219
+ * @param outParaLevel A base embedding level of the output as defined in
220
+ * <code>ubidi_setPara</code> documentation for the
221
+ * <code>paraLevel</code> parameter.
222
+ * @param outOrder An order of the output, which can be one of the
223
+ * <code>UBiDiOrder</code> values.
224
+ * @param doMirroring Indicates whether or not to perform character mirroring,
225
+ * and can accept one of the <code>UBiDiMirroring</code> values.
226
+ * @param shapingOptions Arabic digit and letter shaping options defined in the
227
+ * ushape.h documentation.
228
+ * <p><strong>Note:</strong> Direction indicator options are computed by
229
+ * the transformation engine based on the effective ordering schemes, so
230
+ * user-defined direction indicators will be ignored.</p>
231
+ * @param pErrorCode A pointer to an error code value.
232
+ *
233
+ * @return The destination length, i.e. the number of UChars written to
234
+ * <code>dest</code>. If the transformation fails, the return value
235
+ * will be 0 (and the error code will be written to
236
+ * <code>pErrorCode</code>).
237
+ *
238
+ * @see UBiDiLevel
239
+ * @see UBiDiOrder
240
+ * @see UBiDiMirroring
241
+ * @see ubidi_setPara
242
+ * @see u_shapeArabic
243
+ * @draft ICU 58
244
+ */
245
+ U_DRAFT uint32_t U_EXPORT2
246
+ ubiditransform_transform(UBiDiTransform *pBiDiTransform,
247
+ const UChar *src, int32_t srcLength,
248
+ UChar *dest, int32_t destSize,
249
+ UBiDiLevel inParaLevel, UBiDiOrder inOrder,
250
+ UBiDiLevel outParaLevel, UBiDiOrder outOrder,
251
+ UBiDiMirroring doMirroring, uint32_t shapingOptions,
252
+ UErrorCode *pErrorCode);
253
+
254
+ /**
255
+ * Allocates a <code>UBiDiTransform</code> object. This object can be reused,
256
+ * e.g. with different ordering schemes, mirroring or shaping options.<p>
257
+ * <strong>Note:</strong>The object can only be reused in the same thread.
258
+ * All other threads should allocate a new <code>UBiDiTransform</code> object
259
+ * before using it.<p>
260
+ * Example of usage:<p>
261
+ * <pre>
262
+ * \code
263
+ * UErrorCode errorCode = U_ZERO_ERROR;
264
+ * // Open a new UBiDiTransform.
265
+ * UBiDiTransform* transform = ubiditransform_open(&errorCode);
266
+ * // Run a transformation.
267
+ * ubiditransform_transform(transform,
268
+ * text1, -1, text2, -1,
269
+ * UBIDI_RTL, UBIDI_LOGICAL,
270
+ * UBIDI_LTR, UBIDI_VISUAL,
271
+ * UBIDI_MIRRORING_ON,
272
+ * U_SHAPE_DIGITS_EN2AN,
273
+ * &errorCode);
274
+ * // Do something with the output text and invoke another transformation using
275
+ * // that text as input.
276
+ * ubiditransform_transform(transform,
277
+ * text2, -1, text3, -1,
278
+ * UBIDI_LTR, UBIDI_VISUAL,
279
+ * UBIDI_RTL, UBIDI_VISUAL,
280
+ * UBIDI_MIRRORING_ON,
281
+ * 0, &errorCode);
282
+ *\endcode
283
+ * </pre>
284
+ * <p>
285
+ * The <code>UBiDiTransform</code> object must be deallocated by calling
286
+ * <code>ubiditransform_close()</code>.
287
+ *
288
+ * @return An empty <code>UBiDiTransform</code> object.
289
+ * @draft ICU 58
290
+ */
291
+ U_DRAFT UBiDiTransform* U_EXPORT2
292
+ ubiditransform_open(UErrorCode *pErrorCode);
293
+
294
+ /**
295
+ * Deallocates the given <code>UBiDiTransform</code> object.
296
+ * @draft ICU 58
297
+ */
298
+ U_DRAFT void U_EXPORT2
299
+ ubiditransform_close(UBiDiTransform *pBidiTransform);
300
+
301
+ #if U_SHOW_CPLUSPLUS_API
302
+
303
+ U_NAMESPACE_BEGIN
304
+
305
+ /**
306
+ * \class LocalUBiDiTransformPointer
307
+ * "Smart pointer" class, closes a UBiDiTransform via ubiditransform_close().
308
+ * For most methods see the LocalPointerBase base class.
309
+ *
310
+ * @see LocalPointerBase
311
+ * @see LocalPointer
312
+ * @draft ICU 58
313
+ */
314
+ U_DEFINE_LOCAL_OPEN_POINTER(LocalUBiDiTransformPointer, UBiDiTransform, ubiditransform_close);
315
+
316
+ U_NAMESPACE_END
317
+
318
+ #endif
319
+
320
+ #endif /* U_HIDE_DRAFT_API */
321
+ #endif