pango 3.2.5-x64-mingw32 → 3.2.6-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (368) hide show
  1. checksums.yaml +4 -4
  2. data/COPYING.LIB +502 -0
  3. data/README.md +25 -0
  4. data/Rakefile +8 -8
  5. data/ext/pango/extconf.rb +4 -1
  6. data/ext/pango/pango.def +1 -0
  7. data/ext/pango/rb-pango-attr-list.c +3 -3
  8. data/ext/pango/rb-pango-attribute.c +67 -57
  9. data/ext/pango/rb-pango-conversions.h +3 -3
  10. data/ext/pango/rb-pango-private.h +0 -1
  11. data/ext/pango/rb-pango.c +0 -1
  12. data/ext/pango/rb-pango.h +2 -1
  13. data/lib/2.2/pango.so +0 -0
  14. data/lib/2.3/pango.so +0 -0
  15. data/lib/2.4/pango.so +0 -0
  16. data/lib/2.5/pango.so +0 -0
  17. data/lib/pango/loader.rb +13 -1
  18. data/lib/pango/rectangle.rb +7 -1
  19. data/pango.gemspec +43 -0
  20. data/vendor/local/bin/derb.exe +0 -0
  21. data/vendor/local/bin/escapesrc.exe +0 -0
  22. data/vendor/local/bin/fribidi.exe +0 -0
  23. data/vendor/local/bin/genbrk.exe +0 -0
  24. data/vendor/local/bin/genccode.exe +0 -0
  25. data/vendor/local/bin/gencfu.exe +0 -0
  26. data/vendor/local/bin/gencmn.exe +0 -0
  27. data/vendor/local/bin/gencnval.exe +0 -0
  28. data/vendor/local/bin/gendict.exe +0 -0
  29. data/vendor/local/bin/gennorm2.exe +0 -0
  30. data/vendor/local/bin/genrb.exe +0 -0
  31. data/vendor/local/bin/gensprep.exe +0 -0
  32. data/vendor/local/bin/hb-ot-shape-closure.exe +0 -0
  33. data/vendor/local/bin/hb-shape.exe +0 -0
  34. data/vendor/local/bin/hb-subset.exe +0 -0
  35. data/vendor/local/bin/hb-view.exe +0 -0
  36. data/vendor/local/bin/icu-config +13 -8
  37. data/vendor/local/bin/icuinfo.exe +0 -0
  38. data/vendor/local/bin/icupkg.exe +0 -0
  39. data/vendor/local/bin/libfribidi-0.dll +0 -0
  40. data/vendor/local/bin/libgraphene-1.0-0.dll +0 -0
  41. data/vendor/local/bin/libharfbuzz-0.dll +0 -0
  42. data/vendor/local/bin/libharfbuzz-subset-0.dll +0 -0
  43. data/vendor/local/bin/libpango-1.0-0.dll +0 -0
  44. data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
  45. data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
  46. data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
  47. data/vendor/local/bin/makeconv.exe +0 -0
  48. data/vendor/local/bin/pango-view.exe +0 -0
  49. data/vendor/local/bin/pkgdata.exe +0 -0
  50. data/vendor/local/bin/uconv.exe +0 -0
  51. data/vendor/local/include/fribidi/fribidi-config.h +2 -2
  52. data/vendor/local/include/harfbuzz/hb-blob.h +2 -0
  53. data/vendor/local/include/harfbuzz/hb-common.h +24 -3
  54. data/vendor/local/include/harfbuzz/hb-face.h +4 -0
  55. data/vendor/local/include/harfbuzz/hb-map.h +104 -0
  56. data/vendor/local/include/harfbuzz/hb-ot-layout.h +1 -1
  57. data/vendor/local/include/harfbuzz/hb-set.h +0 -2
  58. data/vendor/local/include/harfbuzz/hb-subset-plan.hh +46 -25
  59. data/vendor/local/include/harfbuzz/hb-subset.h +4 -1
  60. data/vendor/local/include/harfbuzz/hb-version.h +3 -3
  61. data/vendor/local/include/harfbuzz/hb.h +1 -0
  62. data/vendor/local/include/pango-1.0/pango/pango-features.h +2 -2
  63. data/vendor/local/include/unicode/alphaindex.h +2 -1
  64. data/vendor/local/include/unicode/appendable.h +25 -25
  65. data/vendor/local/include/unicode/basictz.h +1 -1
  66. data/vendor/local/include/unicode/brkiter.h +19 -24
  67. data/vendor/local/include/unicode/bytestream.h +26 -13
  68. data/vendor/local/include/unicode/bytestrie.h +2 -2
  69. data/vendor/local/include/unicode/bytestriebuilder.h +4 -5
  70. data/vendor/local/include/unicode/calendar.h +11 -11
  71. data/vendor/local/include/unicode/caniter.h +3 -3
  72. data/vendor/local/include/unicode/casemap.h +494 -0
  73. data/vendor/local/include/unicode/char16ptr.h +302 -0
  74. data/vendor/local/include/unicode/chariter.h +22 -18
  75. data/vendor/local/include/unicode/choicfmt.h +1 -1
  76. data/vendor/local/include/unicode/coleitr.h +2 -1
  77. data/vendor/local/include/unicode/coll.h +17 -17
  78. data/vendor/local/include/unicode/compactdecimalformat.h +10 -2
  79. data/vendor/local/include/unicode/curramt.h +5 -5
  80. data/vendor/local/include/unicode/currpinf.h +1 -1
  81. data/vendor/local/include/unicode/currunit.h +24 -6
  82. data/vendor/local/include/unicode/datefmt.h +3 -2
  83. data/vendor/local/include/unicode/dbbi.h +1 -1
  84. data/vendor/local/include/unicode/dcfmtsym.h +89 -13
  85. data/vendor/local/include/unicode/decimfmt.h +38 -39
  86. data/vendor/local/include/unicode/docmain.h +7 -2
  87. data/vendor/local/include/unicode/dtfmtsym.h +7 -6
  88. data/vendor/local/include/unicode/dtintrv.h +2 -2
  89. data/vendor/local/include/unicode/dtitvfmt.h +2 -2
  90. data/vendor/local/include/unicode/dtitvinf.h +1 -3
  91. data/vendor/local/include/unicode/dtptngen.h +48 -24
  92. data/vendor/local/include/unicode/dtrule.h +1 -1
  93. data/vendor/local/include/unicode/edits.h +424 -0
  94. data/vendor/local/include/unicode/enumset.h +1 -1
  95. data/vendor/local/include/unicode/errorcode.h +2 -2
  96. data/vendor/local/include/unicode/fieldpos.h +1 -1
  97. data/vendor/local/include/unicode/filteredbrk.h +35 -5
  98. data/vendor/local/include/unicode/fmtable.h +1 -1
  99. data/vendor/local/include/unicode/format.h +1 -1
  100. data/vendor/local/include/unicode/fpositer.h +11 -3
  101. data/vendor/local/include/unicode/gender.h +1 -1
  102. data/vendor/local/include/unicode/gregocal.h +1 -1
  103. data/vendor/local/include/unicode/icudataver.h +1 -1
  104. data/vendor/local/include/unicode/icuplug.h +1 -1
  105. data/vendor/local/include/unicode/idna.h +2 -2
  106. data/vendor/local/include/unicode/listformatter.h +4 -2
  107. data/vendor/local/include/unicode/localpointer.h +6 -43
  108. data/vendor/local/include/unicode/locdspnm.h +2 -1
  109. data/vendor/local/include/unicode/locid.h +7 -6
  110. data/vendor/local/include/unicode/measfmt.h +18 -7
  111. data/vendor/local/include/unicode/measunit.h +31 -60
  112. data/vendor/local/include/unicode/measure.h +1 -1
  113. data/vendor/local/include/unicode/messagepattern.h +2 -2
  114. data/vendor/local/include/unicode/msgfmt.h +2 -2
  115. data/vendor/local/include/unicode/normalizer2.h +130 -16
  116. data/vendor/local/include/unicode/normlzr.h +5 -5
  117. data/vendor/local/include/unicode/nounit.h +111 -0
  118. data/vendor/local/include/unicode/numberformatter.h +2194 -0
  119. data/vendor/local/include/unicode/numfmt.h +81 -7
  120. data/vendor/local/include/unicode/numsys.h +2 -2
  121. data/vendor/local/include/unicode/parseerr.h +3 -3
  122. data/vendor/local/include/unicode/parsepos.h +1 -1
  123. data/vendor/local/include/unicode/platform.h +66 -63
  124. data/vendor/local/include/unicode/plurfmt.h +1 -1
  125. data/vendor/local/include/unicode/plurrule.h +23 -4
  126. data/vendor/local/include/unicode/ptypes.h +1 -1
  127. data/vendor/local/include/unicode/putil.h +4 -4
  128. data/vendor/local/include/unicode/rbbi.h +105 -134
  129. data/vendor/local/include/unicode/rbnf.h +65 -3
  130. data/vendor/local/include/unicode/rbtz.h +1 -1
  131. data/vendor/local/include/unicode/regex.h +17 -17
  132. data/vendor/local/include/unicode/region.h +1 -1
  133. data/vendor/local/include/unicode/reldatefmt.h +4 -5
  134. data/vendor/local/include/unicode/rep.h +4 -4
  135. data/vendor/local/include/unicode/resbund.h +3 -3
  136. data/vendor/local/include/unicode/schriter.h +3 -3
  137. data/vendor/local/include/unicode/scientificnumberformatter.h +1 -1
  138. data/vendor/local/include/unicode/search.h +1 -1
  139. data/vendor/local/include/unicode/selfmt.h +1 -1
  140. data/vendor/local/include/unicode/simpleformatter.h +31 -25
  141. data/vendor/local/include/unicode/simpletz.h +5 -3
  142. data/vendor/local/include/unicode/smpdtfmt.h +17 -7
  143. data/vendor/local/include/unicode/sortkey.h +1 -1
  144. data/vendor/local/include/unicode/std_string.h +6 -8
  145. data/vendor/local/include/unicode/strenum.h +5 -5
  146. data/vendor/local/include/unicode/stringoptions.h +198 -0
  147. data/vendor/local/include/unicode/stringpiece.h +1 -3
  148. data/vendor/local/include/unicode/stringtriebuilder.h +19 -19
  149. data/vendor/local/include/unicode/stsearch.h +1 -1
  150. data/vendor/local/include/unicode/symtable.h +1 -1
  151. data/vendor/local/include/unicode/tblcoll.h +13 -13
  152. data/vendor/local/include/unicode/timezone.h +5 -5
  153. data/vendor/local/include/unicode/tmunit.h +1 -1
  154. data/vendor/local/include/unicode/tmutamt.h +1 -1
  155. data/vendor/local/include/unicode/tmutfmt.h +1 -1
  156. data/vendor/local/include/unicode/translit.h +2 -2
  157. data/vendor/local/include/unicode/tzfmt.h +4 -4
  158. data/vendor/local/include/unicode/tznames.h +3 -5
  159. data/vendor/local/include/unicode/tzrule.h +1 -1
  160. data/vendor/local/include/unicode/tztrans.h +1 -1
  161. data/vendor/local/include/unicode/ubidi.h +11 -8
  162. data/vendor/local/include/unicode/ubiditransform.h +16 -19
  163. data/vendor/local/include/unicode/ubrk.h +61 -4
  164. data/vendor/local/include/unicode/ucal.h +3 -3
  165. data/vendor/local/include/unicode/ucasemap.h +7 -47
  166. data/vendor/local/include/unicode/ucat.h +1 -1
  167. data/vendor/local/include/unicode/uchar.h +62 -37
  168. data/vendor/local/include/unicode/ucharstrie.h +48 -48
  169. data/vendor/local/include/unicode/ucharstriebuilder.h +12 -12
  170. data/vendor/local/include/unicode/uchriter.h +33 -29
  171. data/vendor/local/include/unicode/uclean.h +15 -13
  172. data/vendor/local/include/unicode/ucnv.h +11 -11
  173. data/vendor/local/include/unicode/ucnv_cb.h +1 -1
  174. data/vendor/local/include/unicode/ucnv_err.h +7 -7
  175. data/vendor/local/include/unicode/ucnvsel.h +1 -1
  176. data/vendor/local/include/unicode/ucol.h +6 -6
  177. data/vendor/local/include/unicode/ucoleitr.h +3 -3
  178. data/vendor/local/include/unicode/uconfig.h +8 -5
  179. data/vendor/local/include/unicode/ucsdet.h +7 -3
  180. data/vendor/local/include/unicode/ucurr.h +14 -1
  181. data/vendor/local/include/unicode/udat.h +39 -41
  182. data/vendor/local/include/unicode/udata.h +2 -2
  183. data/vendor/local/include/unicode/udateintervalformat.h +1 -1
  184. data/vendor/local/include/unicode/udatpg.h +56 -5
  185. data/vendor/local/include/unicode/udisplaycontext.h +4 -8
  186. data/vendor/local/include/unicode/uenum.h +5 -3
  187. data/vendor/local/include/unicode/ufieldpositer.h +1 -1
  188. data/vendor/local/include/unicode/uformattable.h +2 -2
  189. data/vendor/local/include/unicode/ugender.h +1 -1
  190. data/vendor/local/include/unicode/uidna.h +2 -2
  191. data/vendor/local/include/unicode/uiter.h +2 -2
  192. data/vendor/local/include/unicode/uldnames.h +1 -1
  193. data/vendor/local/include/unicode/ulistformatter.h +4 -4
  194. data/vendor/local/include/unicode/uloc.h +29 -16
  195. data/vendor/local/include/unicode/ulocdata.h +5 -5
  196. data/vendor/local/include/unicode/umachine.h +81 -38
  197. data/vendor/local/include/unicode/umisc.h +2 -2
  198. data/vendor/local/include/unicode/umsg.h +2 -2
  199. data/vendor/local/include/unicode/unifilt.h +2 -2
  200. data/vendor/local/include/unicode/unifunct.h +1 -1
  201. data/vendor/local/include/unicode/unimatch.h +1 -1
  202. data/vendor/local/include/unicode/unirepl.h +1 -1
  203. data/vendor/local/include/unicode/uniset.h +5 -4
  204. data/vendor/local/include/unicode/unistr.h +322 -208
  205. data/vendor/local/include/unicode/unorm.h +9 -9
  206. data/vendor/local/include/unicode/unorm2.h +3 -26
  207. data/vendor/local/include/unicode/unum.h +71 -11
  208. data/vendor/local/include/unicode/unumsys.h +1 -1
  209. data/vendor/local/include/unicode/uobject.h +2 -2
  210. data/vendor/local/include/unicode/upluralrules.h +51 -6
  211. data/vendor/local/include/unicode/uregex.h +2 -2
  212. data/vendor/local/include/unicode/uregion.h +2 -2
  213. data/vendor/local/include/unicode/ureldatefmt.h +33 -39
  214. data/vendor/local/include/unicode/urename.h +18 -17
  215. data/vendor/local/include/unicode/urep.h +1 -1
  216. data/vendor/local/include/unicode/ures.h +9 -9
  217. data/vendor/local/include/unicode/uscript.h +10 -3
  218. data/vendor/local/include/unicode/usearch.h +3 -3
  219. data/vendor/local/include/unicode/uset.h +2 -2
  220. data/vendor/local/include/unicode/usetiter.h +1 -1
  221. data/vendor/local/include/unicode/ushape.h +3 -3
  222. data/vendor/local/include/unicode/uspoof.h +24 -29
  223. data/vendor/local/include/unicode/usprep.h +7 -7
  224. data/vendor/local/include/unicode/ustdio.h +1 -1
  225. data/vendor/local/include/unicode/ustream.h +2 -9
  226. data/vendor/local/include/unicode/ustring.h +3 -13
  227. data/vendor/local/include/unicode/ustringtrie.h +2 -2
  228. data/vendor/local/include/unicode/utext.h +16 -16
  229. data/vendor/local/include/unicode/utf.h +19 -19
  230. data/vendor/local/include/unicode/utf16.h +128 -8
  231. data/vendor/local/include/unicode/utf32.h +2 -2
  232. data/vendor/local/include/unicode/utf8.h +177 -121
  233. data/vendor/local/include/unicode/utf_old.h +40 -7
  234. data/vendor/local/include/unicode/utmscale.h +8 -1
  235. data/vendor/local/include/unicode/utrace.h +4 -4
  236. data/vendor/local/include/unicode/utrans.h +3 -3
  237. data/vendor/local/include/unicode/utypes.h +13 -10
  238. data/vendor/local/include/unicode/uvernum.h +18 -11
  239. data/vendor/local/include/unicode/uversion.h +10 -4
  240. data/vendor/local/include/unicode/vtzone.h +1 -1
  241. data/vendor/local/lib/cmake/harfbuzz/harfbuzz-config.cmake +1 -1
  242. data/vendor/local/lib/icu/{58.2 → 61.1}/Makefile.inc +7 -7
  243. data/vendor/local/lib/icu/{58.2 → 61.1}/pkgdata.inc +2 -2
  244. data/vendor/local/lib/icu/Makefile.inc +7 -7
  245. data/vendor/local/lib/icu/pkgdata.inc +2 -2
  246. data/vendor/local/lib/icudt.dll +0 -0
  247. data/vendor/local/lib/{icudt58.dll → icudt61.dll} +0 -0
  248. data/vendor/local/lib/icuin.dll +0 -0
  249. data/vendor/local/lib/icuin61.dll +0 -0
  250. data/vendor/local/lib/icuio.dll +0 -0
  251. data/vendor/local/lib/{icuio58.dll → icuio61.dll} +0 -0
  252. data/vendor/local/lib/icutest.dll +0 -0
  253. data/vendor/local/lib/{icutest58.dll → icutest61.dll} +0 -0
  254. data/vendor/local/lib/icutu.dll +0 -0
  255. data/vendor/local/lib/icutu61.dll +0 -0
  256. data/vendor/local/lib/icuuc.dll +0 -0
  257. data/vendor/local/lib/icuuc61.dll +0 -0
  258. data/vendor/local/lib/libfribidi.dll.a +0 -0
  259. data/vendor/local/lib/libgraphene-1.0.dll.a +0 -0
  260. data/vendor/local/lib/libharfbuzz-icu.a +0 -0
  261. data/vendor/local/lib/libharfbuzz-icu.la +3 -3
  262. data/vendor/local/lib/libharfbuzz-subset.dll.a +0 -0
  263. data/vendor/local/lib/libharfbuzz-subset.la +3 -3
  264. data/vendor/local/lib/libharfbuzz.dll.a +0 -0
  265. data/vendor/local/lib/libharfbuzz.la +3 -3
  266. data/vendor/local/lib/libicudt.dll.a +0 -0
  267. data/vendor/local/lib/libicuin.dll.a +0 -0
  268. data/vendor/local/lib/libicuio.dll.a +0 -0
  269. data/vendor/local/lib/libicutest.dll.a +0 -0
  270. data/vendor/local/lib/libicutu.dll.a +0 -0
  271. data/vendor/local/lib/libicuuc.dll.a +0 -0
  272. data/vendor/local/lib/libpango-1.0.dll.a +0 -0
  273. data/vendor/local/lib/libpango-1.0.la +2 -2
  274. data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
  275. data/vendor/local/lib/libpangocairo-1.0.la +2 -2
  276. data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
  277. data/vendor/local/lib/libpangoft2-1.0.la +2 -2
  278. data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
  279. data/vendor/local/lib/libpangowin32-1.0.la +2 -2
  280. data/vendor/local/lib/pkgconfig/fribidi.pc +1 -1
  281. data/vendor/local/lib/pkgconfig/harfbuzz-icu.pc +1 -1
  282. data/vendor/local/lib/pkgconfig/harfbuzz-subset.pc +1 -1
  283. data/vendor/local/lib/pkgconfig/harfbuzz.pc +1 -1
  284. data/vendor/local/lib/pkgconfig/icu-i18n.pc +7 -7
  285. data/vendor/local/lib/pkgconfig/icu-io.pc +7 -7
  286. data/vendor/local/lib/pkgconfig/icu-uc.pc +7 -7
  287. data/vendor/local/lib/pkgconfig/pango.pc +2 -2
  288. data/vendor/local/lib/pkgconfig/pangocairo.pc +2 -2
  289. data/vendor/local/lib/pkgconfig/pangoft2.pc +2 -2
  290. data/vendor/local/lib/pkgconfig/pangowin32.pc +1 -1
  291. data/vendor/local/libexec/installed-tests/graphene-1.0/box.exe +0 -0
  292. data/vendor/local/libexec/installed-tests/graphene-1.0/euler.exe +0 -0
  293. data/vendor/local/libexec/installed-tests/graphene-1.0/frustum.exe +0 -0
  294. data/vendor/local/libexec/installed-tests/graphene-1.0/matrix.exe +0 -0
  295. data/vendor/local/libexec/installed-tests/graphene-1.0/plane.exe +0 -0
  296. data/vendor/local/libexec/installed-tests/graphene-1.0/point.exe +0 -0
  297. data/vendor/local/libexec/installed-tests/graphene-1.0/point3d.exe +0 -0
  298. data/vendor/local/libexec/installed-tests/graphene-1.0/quad.exe +0 -0
  299. data/vendor/local/libexec/installed-tests/graphene-1.0/quaternion.exe +0 -0
  300. data/vendor/local/libexec/installed-tests/graphene-1.0/ray.exe +0 -0
  301. data/vendor/local/libexec/installed-tests/graphene-1.0/rect.exe +0 -0
  302. data/vendor/local/libexec/installed-tests/graphene-1.0/simd.exe +0 -0
  303. data/vendor/local/libexec/installed-tests/graphene-1.0/size.exe +0 -0
  304. data/vendor/local/libexec/installed-tests/graphene-1.0/sphere.exe +0 -0
  305. data/vendor/local/libexec/installed-tests/graphene-1.0/triangle.exe +0 -0
  306. data/vendor/local/libexec/installed-tests/graphene-1.0/vec2.exe +0 -0
  307. data/vendor/local/libexec/installed-tests/graphene-1.0/vec3.exe +0 -0
  308. data/vendor/local/libexec/installed-tests/graphene-1.0/vec4.exe +0 -0
  309. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-Buffers.html +5 -3
  310. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-common.html +5 -0
  311. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz.devhelp2 +1 -0
  312. data/vendor/local/share/gtk-doc/html/harfbuzz/pt02.html +1 -1
  313. data/vendor/local/share/gtk-doc/html/pango/index.html +1 -1
  314. data/vendor/local/share/gtk-doc/html/pango/pango-Version-Checking.html +2 -2
  315. data/vendor/local/share/icu/{58.2 → 61.1}/LICENSE +32 -3
  316. data/vendor/local/share/icu/{58.2 → 61.1}/config/mh-mingw64 +4 -0
  317. data/vendor/local/share/icu/{58.2 → 61.1}/install-sh +0 -0
  318. data/vendor/local/share/icu/{58.2 → 61.1}/mkinstalldirs +0 -0
  319. data/vendor/local/share/man/man1/derb.1 +2 -2
  320. data/vendor/local/share/man/man1/genbrk.1 +2 -2
  321. data/vendor/local/share/man/man1/gencfu.1 +1 -1
  322. data/vendor/local/share/man/man1/gencnval.1 +3 -3
  323. data/vendor/local/share/man/man1/gendict.1 +2 -2
  324. data/vendor/local/share/man/man1/genrb.1 +3 -3
  325. data/vendor/local/share/man/man1/icu-config.1 +2 -2
  326. data/vendor/local/share/man/man1/makeconv.1 +5 -5
  327. data/vendor/local/share/man/man1/pkgdata.1 +2 -2
  328. data/vendor/local/share/man/man1/uconv.1 +9 -9
  329. data/vendor/local/share/man/man3/fribidi_charset_to_unicode.3 +98 -0
  330. data/vendor/local/share/man/man3/fribidi_debug_status.3 +44 -0
  331. data/vendor/local/share/man/man3/fribidi_get_bidi_type.3 +58 -0
  332. data/vendor/local/share/man/man3/fribidi_get_bidi_type_name.3 +56 -0
  333. data/vendor/local/share/man/man3/fribidi_get_bidi_types.3 +68 -0
  334. data/vendor/local/share/man/man3/fribidi_get_bracket.3 +59 -0
  335. data/vendor/local/share/man/man3/fribidi_get_bracket_types.3 +73 -0
  336. data/vendor/local/share/man/man3/fribidi_get_joining_type.3 +87 -0
  337. data/vendor/local/share/man/man3/fribidi_get_joining_type_name.3 +83 -0
  338. data/vendor/local/share/man/man3/fribidi_get_joining_types.3 +96 -0
  339. data/vendor/local/share/man/man3/fribidi_get_mirror_char.3 +68 -0
  340. data/vendor/local/share/man/man3/fribidi_get_par_direction.3 +100 -0
  341. data/vendor/local/share/man/man3/fribidi_get_par_embedding_levels.3 +98 -0
  342. data/vendor/local/share/man/man3/fribidi_get_par_embedding_levels_ex.3 +114 -0
  343. data/vendor/local/share/man/man3/fribidi_get_type.3 +50 -0
  344. data/vendor/local/share/man/man3/fribidi_get_type_internal.3 +50 -0
  345. data/vendor/local/share/man/man3/fribidi_join_arabic.3 +92 -0
  346. data/vendor/local/share/man/man3/fribidi_log2vis.3 +124 -0
  347. data/vendor/local/share/man/man3/fribidi_log2vis_get_embedding_levels.3 +97 -0
  348. data/vendor/local/share/man/man3/fribidi_mirroring_status.3 +44 -0
  349. data/vendor/local/share/man/man3/fribidi_parse_charset.3 +78 -0
  350. data/vendor/local/share/man/man3/fribidi_remove_bidi_marks.3 +96 -0
  351. data/vendor/local/share/man/man3/fribidi_reorder_line.3 +146 -0
  352. data/vendor/local/share/man/man3/fribidi_reorder_nsm_status.3 +44 -0
  353. data/vendor/local/share/man/man3/fribidi_set_debug.3 +48 -0
  354. data/vendor/local/share/man/man3/fribidi_set_mirroring.3 +58 -0
  355. data/vendor/local/share/man/man3/fribidi_set_reorder_nsm.3 +60 -0
  356. data/vendor/local/share/man/man3/fribidi_shape.3 +89 -0
  357. data/vendor/local/share/man/man3/fribidi_shape_arabic.3 +95 -0
  358. data/vendor/local/share/man/man3/fribidi_shape_mirroring.3 +71 -0
  359. data/vendor/local/share/man/man3/fribidi_unicode_to_charset.3 +99 -0
  360. data/vendor/local/share/man/man8/genccode.8 +2 -2
  361. data/vendor/local/share/man/man8/gencmn.8 +3 -3
  362. data/vendor/local/share/man/man8/gensprep.8 +3 -3
  363. data/vendor/local/share/man/man8/icupkg.8 +1 -1
  364. metadata +58 -59
  365. data/ext/pango/rb-pango-context.c +0 -79
  366. data/vendor/local/lib/icuin58.dll +0 -0
  367. data/vendor/local/lib/icutu58.dll +0 -0
  368. data/vendor/local/lib/icuuc58.dll +0 -0
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  ******************************************************************************
@@ -8,7 +8,7 @@
8
8
  *
9
9
  ******************************************************************************
10
10
  * file name: udata.h
11
- * encoding: US-ASCII
11
+ * encoding: UTF-8
12
12
  * tab size: 8 (not used)
13
13
  * indentation:4
14
14
  *
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  *****************************************************************************************
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  *******************************************************************************
@@ -8,7 +8,7 @@
8
8
  *
9
9
  *******************************************************************************
10
10
  * file name: udatpg.h
11
- * encoding: US-ASCII
11
+ * encoding: UTF-8
12
12
  * tab size: 8 (not used)
13
13
  * indentation:4
14
14
  *
@@ -86,8 +86,8 @@ typedef enum UDateTimePatternField {
86
86
  /** @stable ICU 3.8 */
87
87
  UDATPG_ZONE_FIELD,
88
88
 
89
- // Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
90
- // it is needed for layout of DateTimePatternGenerator object.
89
+ /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
90
+ * it is needed for layout of DateTimePatternGenerator object. */
91
91
  /**
92
92
  * One more than the highest normal UDateTimePatternField value.
93
93
  * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
@@ -95,6 +95,21 @@ typedef enum UDateTimePatternField {
95
95
  UDATPG_FIELD_COUNT
96
96
  } UDateTimePatternField;
97
97
 
98
+ #ifndef U_HIDE_DRAFT_API
99
+ /**
100
+ * Field display name width constants for udatpg_getFieldDisplayName().
101
+ * @draft ICU 61
102
+ */
103
+ typedef enum UDateTimePGDisplayWidth {
104
+ /** @draft ICU 61 */
105
+ UDATPG_WIDE,
106
+ /** @draft ICU 61 */
107
+ UDATPG_ABBREVIATED,
108
+ /** @draft ICU 61 */
109
+ UDATPG_NARROW
110
+ } UDateTimePGDisplayWidth;
111
+ #endif // U_HIDE_DRAFT_API
112
+
98
113
  /**
99
114
  * Masks to control forcing the length of specified fields in the returned
100
115
  * pattern to match those in the skeleton (when this would not happen
@@ -410,12 +425,14 @@ udatpg_setAppendItemName(UDateTimePatternGenerator *dtpg,
410
425
 
411
426
  /**
412
427
  * Getter corresponding to setAppendItemNames. Values below 0 or at or above
413
- * UDATPG_FIELD_COUNT are illegal arguments.
428
+ * UDATPG_FIELD_COUNT are illegal arguments. Note: The more general function
429
+ * for getting date/time field display names is udatpg_getFieldDisplayName.
414
430
  *
415
431
  * @param dtpg a pointer to UDateTimePatternGenerator.
416
432
  * @param field UDateTimePatternField, such as UDATPG_ERA_FIELD
417
433
  * @param pLength A pointer that will receive the length of the name for field.
418
434
  * @return name for field
435
+ * @see udatpg_getFieldDisplayName
419
436
  * @stable ICU 3.8
420
437
  */
421
438
  U_STABLE const UChar * U_EXPORT2
@@ -423,6 +440,40 @@ udatpg_getAppendItemName(const UDateTimePatternGenerator *dtpg,
423
440
  UDateTimePatternField field,
424
441
  int32_t *pLength);
425
442
 
443
+ #ifndef U_HIDE_DRAFT_API
444
+ /**
445
+ * The general interface to get a display name for a particular date/time field,
446
+ * in one of several possible display widths.
447
+ *
448
+ * @param dtpg
449
+ * A pointer to the UDateTimePatternGenerator object with the localized
450
+ * display names.
451
+ * @param field
452
+ * The desired UDateTimePatternField, such as UDATPG_ERA_FIELD.
453
+ * @param width
454
+ * The desired UDateTimePGDisplayWidth, such as UDATPG_ABBREVIATED.
455
+ * @param fieldName
456
+ * A pointer to a buffer to receive the NULL-terminated display name. If the name
457
+ * fits into fieldName but cannot be NULL-terminated (length == capacity) then
458
+ * the error code is set to U_STRING_NOT_TERMINATED_WARNING. If the name doesn't
459
+ * fit into fieldName then the error code is set to U_BUFFER_OVERFLOW_ERROR.
460
+ * @param capacity
461
+ * The size of fieldName (in UChars).
462
+ * @param pErrorCode
463
+ * A pointer to a UErrorCode to receive any errors
464
+ * @return
465
+ * The full length of the name; if greater than capacity, fieldName contains a
466
+ * truncated result.
467
+ * @draft ICU 61
468
+ */
469
+ U_DRAFT int32_t U_EXPORT2
470
+ udatpg_getFieldDisplayName(const UDateTimePatternGenerator *dtpg,
471
+ UDateTimePatternField field,
472
+ UDateTimePGDisplayWidth width,
473
+ UChar *fieldName, int32_t capacity,
474
+ UErrorCode *pErrorCode);
475
+ #endif // U_HIDE_DRAFT_API
476
+
426
477
  /**
427
478
  * The DateTimeFormat is a message format pattern used to compose date and
428
479
  * time patterns. The default pattern in the root locale is "{1} {0}", where
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  *****************************************************************************************
@@ -44,14 +44,12 @@ enum UDisplayContextType {
44
44
  * @stable ICU 54
45
45
  */
46
46
  UDISPCTX_TYPE_DISPLAY_LENGTH = 2,
47
- #ifndef U_HIDE_DRAFT_API
48
47
  /**
49
48
  * Type to retrieve the substitute handling setting, e.g.
50
49
  * UDISPCTX_SUBSTITUTE, UDISPCTX_NO_SUBSTITUTE.
51
- * @draft ICU 58
50
+ * @stable ICU 58
52
51
  */
53
52
  UDISPCTX_TYPE_SUBSTITUTE_HANDLING = 3
54
- #endif /* U_HIDE_DRAFT_API */
55
53
  };
56
54
  /**
57
55
  * @stable ICU 51
@@ -143,7 +141,6 @@ enum UDisplayContext {
143
141
  * @stable ICU 54
144
142
  */
145
143
  UDISPCTX_LENGTH_SHORT = (UDISPCTX_TYPE_DISPLAY_LENGTH<<8) + 1,
146
- #ifndef U_HIDE_DRAFT_API
147
144
  /**
148
145
  * ================================
149
146
  * SUBSTITUTE_HANDLING can be set to one of UDISPCTX_SUBSTITUTE or
@@ -154,16 +151,15 @@ enum UDisplayContext {
154
151
  * A possible setting for SUBSTITUTE_HANDLING:
155
152
  * Returns a fallback value (e.g., the input code) when no data is available.
156
153
  * This is the default value.
157
- * @draft ICU 58
154
+ * @stable ICU 58
158
155
  */
159
156
  UDISPCTX_SUBSTITUTE = (UDISPCTX_TYPE_SUBSTITUTE_HANDLING<<8) + 0,
160
157
  /**
161
158
  * A possible setting for SUBSTITUTE_HANDLING:
162
159
  * Returns a null value when no data is available.
163
- * @draft ICU 58
160
+ * @stable ICU 58
164
161
  */
165
162
  UDISPCTX_NO_SUBSTITUTE = (UDISPCTX_TYPE_SUBSTITUTE_HANDLING<<8) + 1
166
- #endif /* U_HIDE_DRAFT_API */
167
163
 
168
164
  };
169
165
  /**
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  *******************************************************************************
@@ -8,7 +8,7 @@
8
8
  *
9
9
  *******************************************************************************
10
10
  * file name: uenum.h
11
- * encoding: US-ASCII
11
+ * encoding: UTF-8
12
12
  * tab size: 8 (not used)
13
13
  * indentation:2
14
14
  *
@@ -23,7 +23,9 @@
23
23
  #include "unicode/localpointer.h"
24
24
 
25
25
  #if U_SHOW_CPLUSPLUS_API
26
- #include "unicode/strenum.h"
26
+ U_NAMESPACE_BEGIN
27
+ class StringEnumeration;
28
+ U_NAMESPACE_END
27
29
  #endif
28
30
 
29
31
  /**
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  *****************************************************************************************
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  ********************************************************************************
@@ -57,7 +57,7 @@ typedef enum UFormattableType {
57
57
  * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
58
58
  */
59
59
  UFMT_COUNT
60
- #endif // U_HIDE_DEPRECATED_API
60
+ #endif /* U_HIDE_DEPRECATED_API */
61
61
  } UFormattableType;
62
62
 
63
63
 
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  *****************************************************************************************
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  *******************************************************************************
@@ -8,7 +8,7 @@
8
8
  *
9
9
  *******************************************************************************
10
10
  * file name: uidna.h
11
- * encoding: US-ASCII
11
+ * encoding: UTF-8
12
12
  * tab size: 8 (not used)
13
13
  * indentation:4
14
14
  *
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  *******************************************************************************
@@ -8,7 +8,7 @@
8
8
  *
9
9
  *******************************************************************************
10
10
  * file name: uiter.h
11
- * encoding: US-ASCII
11
+ * encoding: UTF-8
12
12
  * tab size: 8 (not used)
13
13
  * indentation:4
14
14
  *
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  *******************************************************************************
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  *****************************************************************************************
@@ -49,7 +49,7 @@ typedef struct UListFormatter UListFormatter; /**< C typedef for struct UListFo
49
49
  * or NULL if an error occurred.
50
50
  * @stable ICU 55
51
51
  */
52
- U_STABLE UListFormatter* U_EXPORT2
52
+ U_CAPI UListFormatter* U_EXPORT2
53
53
  ulistfmt_open(const char* locale,
54
54
  UErrorCode* status);
55
55
 
@@ -59,7 +59,7 @@ ulistfmt_open(const char* locale,
59
59
  * The UListFormatter object to close.
60
60
  * @stable ICU 55
61
61
  */
62
- U_STABLE void U_EXPORT2
62
+ U_CAPI void U_EXPORT2
63
63
  ulistfmt_close(UListFormatter *listfmt);
64
64
 
65
65
 
@@ -116,7 +116,7 @@ U_NAMESPACE_END
116
116
  * total buffer size needed (e.g. for illegal arguments).
117
117
  * @stable ICU 55
118
118
  */
119
- U_DRAFT int32_t U_EXPORT2
119
+ U_CAPI int32_t U_EXPORT2
120
120
  ulistfmt_format(const UListFormatter* listfmt,
121
121
  const UChar* const strings[],
122
122
  const int32_t * stringLengths,
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  **********************************************************************
@@ -61,7 +61,7 @@
61
61
  * http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt</a>
62
62
  *
63
63
  * <P>
64
- * The second option includes an additonal <STRONG>ISO Country
64
+ * The second option includes an additional <STRONG>ISO Country
65
65
  * Code.</STRONG> These codes are the upper-case two-letter codes
66
66
  * as defined by ISO-3166.
67
67
  * You can find a full list of these codes at a number of sites, such as:
@@ -69,7 +69,7 @@
69
69
  * http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html</a>
70
70
  *
71
71
  * <P>
72
- * The third option requires another additonal information--the
72
+ * The third option requires another additional information--the
73
73
  * <STRONG>Variant.</STRONG>
74
74
  * The Variant codes are vendor and browser-specific.
75
75
  * For example, use WIN for Windows, MAC for Macintosh, and POSIX for POSIX.
@@ -157,7 +157,7 @@
157
157
  * <STRONG>just</STRONG> a mechanism for identifying these services.
158
158
  *
159
159
  * <P>
160
- * Each international serivce that performs locale-sensitive operations
160
+ * Each international service that performs locale-sensitive operations
161
161
  * allows you
162
162
  * to get all the available objects of that type. You can sift
163
163
  * through these objects by language, country, or variant,
@@ -539,6 +539,9 @@ uloc_getISO3Country(const char* localeID);
539
539
  * Gets the Win32 LCID value for the specified locale.
540
540
  * If the ICU locale is not recognized by Windows, 0 will be returned.
541
541
  *
542
+ * LCIDs were deprecated with Windows Vista and Microsoft recommends
543
+ * that developers use BCP47 style tags instead (uloc_toLanguageTag).
544
+ *
542
545
  * @param localeID the locale to get the Win32 LCID value with
543
546
  * @return country the Win32 LCID for localeID
544
547
  * @stable ICU 2.0
@@ -577,7 +580,7 @@ uloc_getDisplayLanguage(const char* locale,
577
580
  * if the locale's language code is "en", passing Locale::getFrench() for
578
581
  * inLocale would result in "", while passing Locale::getGerman()
579
582
  * for inLocale would result in "". NULL may be used to specify the default.
580
- * @param script the displayable country code for localeID
583
+ * @param script the displayable script for the localeID
581
584
  * @param scriptCapacity the size of the script buffer to store the
582
585
  * displayable script code with
583
586
  * @param status error information if retrieving the displayable script code failed
@@ -852,10 +855,12 @@ uloc_openKeywords(const char* localeID,
852
855
  * Get the value for a keyword. Locale name does not need to be normalized.
853
856
  *
854
857
  * @param localeID locale name containing the keyword ("de_DE@currency=EURO;collation=PHONEBOOK")
855
- * @param keywordName name of the keyword for which we want the value. Case insensitive.
858
+ * @param keywordName name of the keyword for which we want the value; must not be
859
+ * NULL or empty, and must consist only of [A-Za-z0-9]. Case insensitive.
856
860
  * @param buffer receiving buffer
857
861
  * @param bufferCapacity capacity of receiving buffer
858
- * @param status containing error code - buffer not big enough.
862
+ * @param status containing error code: e.g. buffer not big enough or ill-formed localeID
863
+ * or keywordName parameters.
859
864
  * @return the length of keyword value
860
865
  * @stable ICU 2.8
861
866
  */
@@ -872,18 +877,26 @@ uloc_getKeywordValue(const char* localeID,
872
877
  * For removing all keywords, use uloc_getBaseName().
873
878
  *
874
879
  * NOTE: Unlike almost every other ICU function which takes a
875
- * buffer, this function will NOT truncate the output text. If a
876
- * BUFFER_OVERFLOW_ERROR is received, it means that the original
877
- * buffer is untouched. This is done to prevent incorrect or possibly
878
- * even malformed locales from being generated and used.
880
+ * buffer, this function will NOT truncate the output text, and will
881
+ * not update the buffer with unterminated text setting a status of
882
+ * U_STRING_NOT_TERMINATED_WARNING. If a BUFFER_OVERFLOW_ERROR is received,
883
+ * it means a terminated version of the updated locale ID would not fit
884
+ * in the buffer, and the original buffer is untouched. This is done to
885
+ * prevent incorrect or possibly even malformed locales from being generated
886
+ * and used.
879
887
  *
880
- * @param keywordName name of the keyword to be set. Case insensitive.
888
+ * @param keywordName name of the keyword to be set; must not be
889
+ * NULL or empty, and must consist only of [A-Za-z0-9]. Case insensitive.
881
890
  * @param keywordValue value of the keyword to be set. If 0-length or
882
- * NULL, will result in the keyword being removed. No error is given if
883
- * that keyword does not exist.
884
- * @param buffer input buffer containing locale to be modified.
891
+ * NULL, will result in the keyword being removed; no error is given if
892
+ * that keyword does not exist. Otherwise, must consist only of
893
+ * [A-Za-z0-9] and [/_+-].
894
+ * @param buffer input buffer containing well-formed locale ID to be
895
+ * modified.
885
896
  * @param bufferCapacity capacity of receiving buffer
886
- * @param status containing error code - buffer not big enough.
897
+ * @param status containing error code: e.g. buffer not big enough
898
+ * or ill-formed keywordName or keywordValue parameters, or ill-formed
899
+ * locale ID in buffer on input.
887
900
  * @return the length needed for the buffer
888
901
  * @see uloc_getKeywordValue
889
902
  * @stable ICU 3.2
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  ******************************************************************************
@@ -8,7 +8,7 @@
8
8
  * *
9
9
  ******************************************************************************
10
10
  * file name: ulocdata.h
11
- * encoding: US-ASCII
11
+ * encoding: UTF-8
12
12
  * tab size: 8 (not used)
13
13
  * indentation:4
14
14
  *
@@ -55,7 +55,7 @@ typedef enum ULocaleDataExemplarSetType {
55
55
  * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
56
56
  */
57
57
  ULOCDATA_ES_COUNT=4
58
- #endif // U_HIDE_DEPRECATED_API
58
+ #endif /* U_HIDE_DEPRECATED_API */
59
59
  } ULocaleDataExemplarSetType;
60
60
 
61
61
  /** The possible types of delimiters.
@@ -76,7 +76,7 @@ typedef enum ULocaleDataDelimiterType {
76
76
  * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
77
77
  */
78
78
  ULOCDATA_DELIMITER_COUNT = 4
79
- #endif // U_HIDE_DEPRECATED_API
79
+ #endif /* U_HIDE_DEPRECATED_API */
80
80
  } ULocaleDataDelimiterType;
81
81
 
82
82
  /**
@@ -207,7 +207,7 @@ typedef enum UMeasurementSystem {
207
207
  * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
208
208
  */
209
209
  UMS_LIMIT
210
- #endif // U_HIDE_DEPRECATED_API
210
+ #endif /* U_HIDE_DEPRECATED_API */
211
211
  } UMeasurementSystem;
212
212
 
213
213
  /**
@@ -1,4 +1,4 @@
1
- // Copyright (C) 2016 and later: Unicode, Inc. and others.
1
+ // © 2016 and later: Unicode, Inc. and others.
2
2
  // License & terms of use: http://www.unicode.org/copyright.html
3
3
  /*
4
4
  ******************************************************************************
@@ -8,7 +8,7 @@
8
8
  *
9
9
  ******************************************************************************
10
10
  * file name: umachine.h
11
- * encoding: US-ASCII
11
+ * encoding: UTF-8
12
12
  * tab size: 8 (not used)
13
13
  * indentation:4
14
14
  *
@@ -51,29 +51,6 @@
51
51
  */
52
52
  #include <stddef.h>
53
53
 
54
- #ifndef U_HIDE_INTERNAL_API
55
- /*
56
- * U_USE_CHAR16_T
57
- * When defined, force use of char16_t for UChar.
58
- * Note: char16_t is expected to become the default and required in the future,
59
- * and this option will be removed.
60
- * @internal
61
- */
62
- #ifdef U_USE_CHAR16_T
63
- #ifdef UCHAR_TYPE
64
- #undef UCHAR_TYPE
65
- #endif
66
- #define UCHAR_TYPE char16_t
67
-
68
- /*
69
- * In plain C, <uchar.h> is needed for the definition of char16_t
70
- */
71
- #ifndef __cplusplus
72
- #include <uchar.h>
73
- #endif
74
- #endif
75
- #endif /* U_HIDE_INTERNAL_API */
76
-
77
54
  /*==========================================================================*/
78
55
  /* For C wrappers, we use the symbol U_STABLE. */
79
56
  /* This works properly if the includer is C or C++. */
@@ -313,30 +290,96 @@ typedef int8_t UBool;
313
290
  /** Number of bytes in a UChar. @stable ICU 2.0 */
314
291
  #define U_SIZEOF_UCHAR 2
315
292
 
293
+ /**
294
+ * \def U_CHAR16_IS_TYPEDEF
295
+ * If 1, then char16_t is a typedef and not a real type (yet)
296
+ * @internal
297
+ */
298
+ #if (U_PLATFORM == U_PF_AIX) && defined(__cplusplus) &&(U_CPLUSPLUS_VERSION < 11)
299
+ // for AIX, uchar.h needs to be included
300
+ # include <uchar.h>
301
+ # define U_CHAR16_IS_TYPEDEF 1
302
+ #elif defined(_MSC_VER) && (_MSC_VER < 1900)
303
+ // Versions of Visual Studio/MSVC below 2015 do not support char16_t as a real type,
304
+ // and instead use a typedef. https://msdn.microsoft.com/library/bb531344.aspx
305
+ # define U_CHAR16_IS_TYPEDEF 1
306
+ #else
307
+ # define U_CHAR16_IS_TYPEDEF 0
308
+ #endif
309
+
310
+
316
311
  /**
317
312
  * \var UChar
318
- * Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t),
319
- * or wchar_t if that is 16 bits wide; always assumed to be unsigned.
320
- * If neither is available, then define UChar to be uint16_t.
321
313
  *
322
- * This makes the definition of UChar platform-dependent
323
- * but allows direct string type compatibility with platforms with
324
- * 16-bit wchar_t types.
314
+ * The base type for UTF-16 code units and pointers.
315
+ * Unsigned 16-bit integer.
316
+ * Starting with ICU 59, C++ API uses char16_t directly, while C API continues to use UChar.
317
+ *
318
+ * UChar is configurable by defining the macro UCHAR_TYPE
319
+ * on the preprocessor or compiler command line:
320
+ * -DUCHAR_TYPE=uint16_t or -DUCHAR_TYPE=wchar_t (if U_SIZEOF_WCHAR_T==2) etc.
321
+ * (The UCHAR_TYPE can also be #defined earlier in this file, for outside the ICU library code.)
322
+ * This is for transitional use from application code that uses uint16_t or wchar_t for UTF-16.
323
+ *
324
+ * The default is UChar=char16_t.
325
+ *
326
+ * C++11 defines char16_t as bit-compatible with uint16_t, but as a distinct type.
327
+ *
328
+ * In C, char16_t is a simple typedef of uint_least16_t.
329
+ * ICU requires uint_least16_t=uint16_t for data memory mapping.
330
+ * On macOS, char16_t is not available because the uchar.h standard header is missing.
325
331
  *
326
332
  * @stable ICU 4.4
327
333
  */
328
- #if defined(UCHAR_TYPE)
334
+
335
+ #if 1
336
+ // #if 1 is normal. UChar defaults to char16_t in C++.
337
+ // For configuration testing of UChar=uint16_t temporarily change this to #if 0.
338
+ // The intltest Makefile #defines UCHAR_TYPE=char16_t,
339
+ // so we only #define it to uint16_t if it is undefined so far.
340
+ #elif !defined(UCHAR_TYPE)
341
+ # define UCHAR_TYPE uint16_t
342
+ #endif
343
+
344
+ #if defined(U_COMBINED_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION) || \
345
+ defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION)
346
+ // Inside the ICU library code, never configurable.
347
+ typedef char16_t UChar;
348
+ #elif defined(UCHAR_TYPE)
329
349
  typedef UCHAR_TYPE UChar;
330
- /* Not #elif U_HAVE_CHAR16_T -- because that is type-incompatible with pre-C++11 callers
331
- typedef char16_t UChar; */
332
- #elif U_SIZEOF_WCHAR_T==2
333
- typedef wchar_t UChar;
334
- #elif defined(__CHAR16_TYPE__)
335
- typedef __CHAR16_TYPE__ UChar;
350
+ #elif defined(__cplusplus)
351
+ typedef char16_t UChar;
336
352
  #else
337
353
  typedef uint16_t UChar;
338
354
  #endif
339
355
 
356
+ /**
357
+ * \var OldUChar
358
+ * Default ICU 58 definition of UChar.
359
+ * A base type for UTF-16 code units and pointers.
360
+ * Unsigned 16-bit integer.
361
+ *
362
+ * Define OldUChar to be wchar_t if that is 16 bits wide.
363
+ * If wchar_t is not 16 bits wide, then define UChar to be uint16_t.
364
+ *
365
+ * This makes the definition of OldUChar platform-dependent
366
+ * but allows direct string type compatibility with platforms with
367
+ * 16-bit wchar_t types.
368
+ *
369
+ * This is how UChar was defined in ICU 58, for transition convenience.
370
+ * Exception: ICU 58 UChar was defined to UCHAR_TYPE if that macro was defined.
371
+ * The current UChar responds to UCHAR_TYPE but OldUChar does not.
372
+ *
373
+ * @stable ICU 59
374
+ */
375
+ #if U_SIZEOF_WCHAR_T==2
376
+ typedef wchar_t OldUChar;
377
+ #elif defined(__CHAR16_TYPE__)
378
+ typedef __CHAR16_TYPE__ OldUChar;
379
+ #else
380
+ typedef uint16_t OldUChar;
381
+ #endif
382
+
340
383
  /**
341
384
  * Define UChar32 as a type for single Unicode code points.
342
385
  * UChar32 is a signed 32-bit integer (same as int32_t).