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
  **********************************************************************
@@ -6,7 +6,7 @@
6
6
  * Corporation and others. All Rights Reserved.
7
7
  **********************************************************************
8
8
  * file name: umisc.h
9
- * encoding: US-ASCII
9
+ * encoding: UTF-8
10
10
  * tab size: 8 (not used)
11
11
  * indentation:4
12
12
  *
@@ -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
  * COPYRIGHT:
@@ -8,7 +8,7 @@
8
8
  ********************************************************************
9
9
  *
10
10
  * file name: umsg.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
  **********************************************************************
@@ -30,7 +30,7 @@ U_NAMESPACE_BEGIN
30
30
  * defined range.
31
31
  * @stable ICU 3.0
32
32
  */
33
- #define U_ETHER ((UChar)0xFFFF)
33
+ #define U_ETHER ((char16_t)0xFFFF)
34
34
 
35
35
  /**
36
36
  *
@@ -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
  * Copyright (C) 2001-2005, International Business Machines Corporation and others. All Rights Reserved.
@@ -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
  ***************************************************************************
@@ -294,7 +294,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter {
294
294
  * indicating that toPattern() must generate a pattern
295
295
  * representation from the inversion list.
296
296
  */
297
- UChar *pat;
297
+ char16_t *pat;
298
298
  UVector* strings; // maintained in sorted order
299
299
  UnicodeSetStringSpan *stringSpan;
300
300
 
@@ -891,7 +891,7 @@ public:
891
891
  * @stable ICU 3.8
892
892
  * @see USetSpanCondition
893
893
  */
894
- int32_t span(const UChar *s, int32_t length, USetSpanCondition spanCondition) const;
894
+ int32_t span(const char16_t *s, int32_t length, USetSpanCondition spanCondition) const;
895
895
 
896
896
  /**
897
897
  * Returns the end of the substring of the input string according to the USetSpanCondition.
@@ -924,7 +924,7 @@ public:
924
924
  * @stable ICU 3.8
925
925
  * @see USetSpanCondition
926
926
  */
927
- int32_t spanBack(const UChar *s, int32_t length, USetSpanCondition spanCondition) const;
927
+ int32_t spanBack(const char16_t *s, int32_t length, USetSpanCondition spanCondition) const;
928
928
 
929
929
  /**
930
930
  * Returns the start of the substring of the input string according to the USetSpanCondition.
@@ -1521,6 +1521,7 @@ private:
1521
1521
  UnicodeString& rebuiltPat,
1522
1522
  uint32_t options,
1523
1523
  UnicodeSet& (UnicodeSet::*caseClosure)(int32_t attribute),
1524
+ int32_t depth,
1524
1525
  UErrorCode& ec);
1525
1526
 
1526
1527
  //----------------------------------------------------------------
@@ -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
  **********************************************************************
@@ -28,25 +28,16 @@
28
28
  * \brief C++ API: Unicode String
29
29
  */
30
30
 
31
+ #include <cstddef>
31
32
  #include "unicode/utypes.h"
33
+ #include "unicode/char16ptr.h"
32
34
  #include "unicode/rep.h"
33
35
  #include "unicode/std_string.h"
34
36
  #include "unicode/stringpiece.h"
35
37
  #include "unicode/bytestream.h"
36
- #include "unicode/ucasemap.h"
37
38
 
38
39
  struct UConverter; // unicode/ucnv.h
39
40
 
40
- #ifndef U_COMPARE_CODE_POINT_ORDER
41
- /* see also ustring.h and unorm.h */
42
- /**
43
- * Option bit for u_strCaseCompare, u_strcasecmp, unorm_compare, etc:
44
- * Compare strings in code point order instead of code unit order.
45
- * @stable ICU 2.2
46
- */
47
- #define U_COMPARE_CODE_POINT_ORDER 0x8000
48
- #endif
49
-
50
41
  #ifndef USTRING_H
51
42
  /**
52
43
  * \ingroup ustring_ustrlen
@@ -55,30 +46,34 @@ U_STABLE int32_t U_EXPORT2
55
46
  u_strlen(const UChar *s);
56
47
  #endif
57
48
 
58
- /**
59
- * \def U_STRING_CASE_MAPPER_DEFINED
60
- * @internal
61
- */
62
- #ifndef U_STRING_CASE_MAPPER_DEFINED
63
- #define U_STRING_CASE_MAPPER_DEFINED
49
+ U_NAMESPACE_BEGIN
50
+
51
+ #if !UCONFIG_NO_BREAK_ITERATION
52
+ class BreakIterator; // unicode/brkiter.h
53
+ #endif
54
+ class Edits;
55
+
56
+ U_NAMESPACE_END
64
57
 
58
+ // Not #ifndef U_HIDE_INTERNAL_API because UnicodeString needs the UStringCaseMapper.
65
59
  /**
66
60
  * Internal string case mapping function type.
61
+ * All error checking must be done.
62
+ * src and dest must not overlap.
67
63
  * @internal
68
64
  */
69
65
  typedef int32_t U_CALLCONV
70
- UStringCaseMapper(const UCaseMap *csm,
71
- UChar *dest, int32_t destCapacity,
72
- const UChar *src, int32_t srcLength,
73
- UErrorCode *pErrorCode);
74
-
66
+ UStringCaseMapper(int32_t caseLocale, uint32_t options,
67
+ #if !UCONFIG_NO_BREAK_ITERATION
68
+ icu::BreakIterator *iter,
75
69
  #endif
70
+ char16_t *dest, int32_t destCapacity,
71
+ const char16_t *src, int32_t srcLength,
72
+ icu::Edits *edits,
73
+ UErrorCode &errorCode);
76
74
 
77
75
  U_NAMESPACE_BEGIN
78
76
 
79
- #if !UCONFIG_NO_BREAK_ITERATION
80
- class BreakIterator; // unicode/brkiter.h
81
- #endif
82
77
  class Locale; // unicode/locid.h
83
78
  class StringCharacterIterator;
84
79
  class UnicodeStringAppendable; // unicode/appendable.h
@@ -99,10 +94,12 @@ class UnicodeStringAppendable; // unicode/appendable.h
99
94
 
100
95
  /**
101
96
  * Unicode String literals in C++.
102
- * Dependent on the platform properties, different UnicodeString
103
- * constructors should be used to create a UnicodeString object from
104
- * a string literal.
105
- * The macros are defined for maximum performance.
97
+ *
98
+ * Note: these macros are not recommended for new code.
99
+ * Prior to the availability of C++11 and u"unicode string literals",
100
+ * these macros were provided for portability and efficiency when
101
+ * initializing UnicodeStrings from literals.
102
+ *
106
103
  * They work only for strings that contain "invariant characters", i.e.,
107
104
  * only latin letters, digits, and some punctuation.
108
105
  * See utypes.h for details.
@@ -110,18 +107,12 @@ class UnicodeStringAppendable; // unicode/appendable.h
110
107
  * The string parameter must be a C string literal.
111
108
  * The length of the string, not including the terminating
112
109
  * <code>NUL</code>, must be specified as a constant.
113
- * The U_STRING_DECL macro should be invoked exactly once for one
114
- * such string variable before it is used.
115
110
  * @stable ICU 2.0
116
111
  */
117
- #if defined(U_DECLARE_UTF16)
118
- # define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const UChar *)U_DECLARE_UTF16(cs), _length)
119
- #elif U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16)))
120
- # define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const UChar *)L ## cs, _length)
121
- #elif U_SIZEOF_UCHAR==1 && U_CHARSET_FAMILY==U_ASCII_FAMILY
122
- # define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const UChar *)cs, _length)
112
+ #if !U_CHAR16_IS_TYPEDEF
113
+ # define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, u ## cs, _length)
123
114
  #else
124
- # define UNICODE_STRING(cs, _length) icu::UnicodeString(cs, _length, US_INV)
115
+ # define UNICODE_STRING(cs, _length) icu::UnicodeString(TRUE, (const char16_t*)u ## cs, _length)
125
116
  #endif
126
117
 
127
118
  /**
@@ -142,7 +133,7 @@ class UnicodeStringAppendable; // unicode/appendable.h
142
133
  /**
143
134
  * \def UNISTR_FROM_CHAR_EXPLICIT
144
135
  * This can be defined to be empty or "explicit".
145
- * If explicit, then the UnicodeString(UChar) and UnicodeString(UChar32)
136
+ * If explicit, then the UnicodeString(char16_t) and UnicodeString(UChar32)
146
137
  * constructors are marked as explicit, preventing their inadvertent use.
147
138
  * @stable ICU 49
148
139
  */
@@ -159,7 +150,7 @@ class UnicodeStringAppendable; // unicode/appendable.h
159
150
  /**
160
151
  * \def UNISTR_FROM_STRING_EXPLICIT
161
152
  * This can be defined to be empty or "explicit".
162
- * If explicit, then the UnicodeString(const char *) and UnicodeString(const UChar *)
153
+ * If explicit, then the UnicodeString(const char *) and UnicodeString(const char16_t *)
163
154
  * constructors are marked as explicit, preventing their inadvertent use.
164
155
  *
165
156
  * In particular, this helps prevent accidentally depending on ICU conversion code
@@ -193,18 +184,18 @@ class UnicodeStringAppendable; // unicode/appendable.h
193
184
  * to 4 * sizeof(pointer) (or 3 * sizeof(pointer) for P128 data models),
194
185
  * to hold the fields for heap-allocated strings.
195
186
  * Such a minimum size also ensures that the object is easily large enough
196
- * to hold at least 2 UChars, for one supplementary code point (U16_MAX_LENGTH).
187
+ * to hold at least 2 char16_ts, for one supplementary code point (U16_MAX_LENGTH).
197
188
  *
198
189
  * sizeof(UnicodeString) >= 48 should work for all known platforms.
199
190
  *
200
191
  * For example, on a 64-bit machine where sizeof(vtable pointer) is 8,
201
192
  * sizeof(UnicodeString) = 64 would leave space for
202
193
  * (64 - sizeof(vtable pointer) - 2) / U_SIZEOF_UCHAR = (64 - 8 - 2) / 2 = 27
203
- * UChars stored inside the object.
194
+ * char16_ts stored inside the object.
204
195
  *
205
196
  * The minimum object size on a 64-bit machine would be
206
197
  * 4 * sizeof(pointer) = 4 * 8 = 32 bytes,
207
- * and the internal buffer would hold up to 11 UChars in that case.
198
+ * and the internal buffer would hold up to 11 char16_ts in that case.
208
199
  *
209
200
  * @see U16_MAX_LENGTH
210
201
  * @stable ICU 56
@@ -236,7 +227,7 @@ class UnicodeStringAppendable; // unicode/appendable.h
236
227
  * <p>In ICU, a Unicode string consists of 16-bit Unicode <em>code units</em>.
237
228
  * A Unicode character may be stored with either one code unit
238
229
  * (the most common case) or with a matched pair of special code units
239
- * ("surrogates"). The data type for code units is UChar.
230
+ * ("surrogates"). The data type for code units is char16_t.
240
231
  * For single-character handling, a Unicode character code <em>point</em> is a value
241
232
  * in the range 0..0x10ffff. ICU uses the UChar32 type for code points.</p>
242
233
  *
@@ -252,7 +243,7 @@ class UnicodeStringAppendable; // unicode/appendable.h
252
243
  * than other ICU APIs. In particular:
253
244
  * - If indexes are out of bounds for a UnicodeString object
254
245
  * (<0 or >length()) then they are "pinned" to the nearest boundary.
255
- * - If primitive string pointer values (e.g., const UChar * or char *)
246
+ * - If primitive string pointer values (e.g., const char16_t * or char *)
256
247
  * for input strings are NULL, then those input string parameters are treated
257
248
  * as if they pointed to an empty string.
258
249
  * However, this is <em>not</em> the case for char * parameters for charset names
@@ -439,7 +430,7 @@ public:
439
430
  * in <code>srcChars</code>.
440
431
  * @stable ICU 2.0
441
432
  */
442
- inline int8_t compare(const UChar *srcChars,
433
+ inline int8_t compare(ConstChar16Ptr srcChars,
443
434
  int32_t srcLength) const;
444
435
 
445
436
  /**
@@ -458,7 +449,7 @@ public:
458
449
  */
459
450
  inline int8_t compare(int32_t start,
460
451
  int32_t length,
461
- const UChar *srcChars) const;
452
+ const char16_t *srcChars) const;
462
453
 
463
454
  /**
464
455
  * Compare the characters bitwise in the range
@@ -479,7 +470,7 @@ public:
479
470
  */
480
471
  inline int8_t compare(int32_t start,
481
472
  int32_t length,
482
- const UChar *srcChars,
473
+ const char16_t *srcChars,
483
474
  int32_t srcStart,
484
475
  int32_t srcLength) const;
485
476
 
@@ -593,7 +584,7 @@ public:
593
584
  * in code point order
594
585
  * @stable ICU 2.0
595
586
  */
596
- inline int8_t compareCodePointOrder(const UChar *srcChars,
587
+ inline int8_t compareCodePointOrder(ConstChar16Ptr srcChars,
597
588
  int32_t srcLength) const;
598
589
 
599
590
  /**
@@ -617,7 +608,7 @@ public:
617
608
  */
618
609
  inline int8_t compareCodePointOrder(int32_t start,
619
610
  int32_t length,
620
- const UChar *srcChars) const;
611
+ const char16_t *srcChars) const;
621
612
 
622
613
  /**
623
614
  * Compare two Unicode strings in code point order.
@@ -642,7 +633,7 @@ public:
642
633
  */
643
634
  inline int8_t compareCodePointOrder(int32_t start,
644
635
  int32_t length,
645
- const UChar *srcChars,
636
+ const char16_t *srcChars,
646
637
  int32_t srcStart,
647
638
  int32_t srcLength) const;
648
639
 
@@ -766,7 +757,7 @@ public:
766
757
  * @return A negative, zero, or positive integer indicating the comparison result.
767
758
  * @stable ICU 2.0
768
759
  */
769
- inline int8_t caseCompare(const UChar *srcChars,
760
+ inline int8_t caseCompare(ConstChar16Ptr srcChars,
770
761
  int32_t srcLength,
771
762
  uint32_t options) const;
772
763
 
@@ -792,7 +783,7 @@ public:
792
783
  */
793
784
  inline int8_t caseCompare(int32_t start,
794
785
  int32_t length,
795
- const UChar *srcChars,
786
+ const char16_t *srcChars,
796
787
  uint32_t options) const;
797
788
 
798
789
  /**
@@ -819,7 +810,7 @@ public:
819
810
  */
820
811
  inline int8_t caseCompare(int32_t start,
821
812
  int32_t length,
822
- const UChar *srcChars,
813
+ const char16_t *srcChars,
823
814
  int32_t srcStart,
824
815
  int32_t srcLength,
825
816
  uint32_t options) const;
@@ -884,7 +875,7 @@ public:
884
875
  * FALSE otherwise
885
876
  * @stable ICU 2.0
886
877
  */
887
- inline UBool startsWith(const UChar *srcChars,
878
+ inline UBool startsWith(ConstChar16Ptr srcChars,
888
879
  int32_t srcLength) const;
889
880
 
890
881
  /**
@@ -896,7 +887,7 @@ public:
896
887
  * @return TRUE if this ends with the characters in <TT>srcChars</TT>, FALSE otherwise
897
888
  * @stable ICU 2.0
898
889
  */
899
- inline UBool startsWith(const UChar *srcChars,
890
+ inline UBool startsWith(const char16_t *srcChars,
900
891
  int32_t srcStart,
901
892
  int32_t srcLength) const;
902
893
 
@@ -931,7 +922,7 @@ public:
931
922
  * FALSE otherwise
932
923
  * @stable ICU 2.0
933
924
  */
934
- inline UBool endsWith(const UChar *srcChars,
925
+ inline UBool endsWith(ConstChar16Ptr srcChars,
935
926
  int32_t srcLength) const;
936
927
 
937
928
  /**
@@ -944,7 +935,7 @@ public:
944
935
  * FALSE otherwise
945
936
  * @stable ICU 2.0
946
937
  */
947
- inline UBool endsWith(const UChar *srcChars,
938
+ inline UBool endsWith(const char16_t *srcChars,
948
939
  int32_t srcStart,
949
940
  int32_t srcLength) const;
950
941
 
@@ -1021,7 +1012,7 @@ public:
1021
1012
  * or -1 if not found.
1022
1013
  * @stable ICU 2.0
1023
1014
  */
1024
- inline int32_t indexOf(const UChar *srcChars,
1015
+ inline int32_t indexOf(const char16_t *srcChars,
1025
1016
  int32_t srcLength,
1026
1017
  int32_t start) const;
1027
1018
 
@@ -1037,7 +1028,7 @@ public:
1037
1028
  * or -1 if not found.
1038
1029
  * @stable ICU 2.0
1039
1030
  */
1040
- inline int32_t indexOf(const UChar *srcChars,
1031
+ inline int32_t indexOf(ConstChar16Ptr srcChars,
1041
1032
  int32_t srcLength,
1042
1033
  int32_t start,
1043
1034
  int32_t length) const;
@@ -1058,7 +1049,7 @@ public:
1058
1049
  * or -1 if not found.
1059
1050
  * @stable ICU 2.0
1060
1051
  */
1061
- int32_t indexOf(const UChar *srcChars,
1052
+ int32_t indexOf(const char16_t *srcChars,
1062
1053
  int32_t srcStart,
1063
1054
  int32_t srcLength,
1064
1055
  int32_t start,
@@ -1071,7 +1062,7 @@ public:
1071
1062
  * @return The offset into this of <TT>c</TT>, or -1 if not found.
1072
1063
  * @stable ICU 2.0
1073
1064
  */
1074
- inline int32_t indexOf(UChar c) const;
1065
+ inline int32_t indexOf(char16_t c) const;
1075
1066
 
1076
1067
  /**
1077
1068
  * Locate in this the first occurrence of the code point <TT>c</TT>,
@@ -1091,7 +1082,7 @@ public:
1091
1082
  * @return The offset into this of <TT>c</TT>, or -1 if not found.
1092
1083
  * @stable ICU 2.0
1093
1084
  */
1094
- inline int32_t indexOf(UChar c,
1085
+ inline int32_t indexOf(char16_t c,
1095
1086
  int32_t start) const;
1096
1087
 
1097
1088
  /**
@@ -1116,7 +1107,7 @@ public:
1116
1107
  * @return The offset into this of <TT>c</TT>, or -1 if not found.
1117
1108
  * @stable ICU 2.0
1118
1109
  */
1119
- inline int32_t indexOf(UChar c,
1110
+ inline int32_t indexOf(char16_t c,
1120
1111
  int32_t start,
1121
1112
  int32_t length) const;
1122
1113
 
@@ -1204,7 +1195,7 @@ public:
1204
1195
  * or -1 if not found.
1205
1196
  * @stable ICU 2.0
1206
1197
  */
1207
- inline int32_t lastIndexOf(const UChar *srcChars,
1198
+ inline int32_t lastIndexOf(const char16_t *srcChars,
1208
1199
  int32_t srcLength,
1209
1200
  int32_t start) const;
1210
1201
 
@@ -1220,7 +1211,7 @@ public:
1220
1211
  * or -1 if not found.
1221
1212
  * @stable ICU 2.0
1222
1213
  */
1223
- inline int32_t lastIndexOf(const UChar *srcChars,
1214
+ inline int32_t lastIndexOf(ConstChar16Ptr srcChars,
1224
1215
  int32_t srcLength,
1225
1216
  int32_t start,
1226
1217
  int32_t length) const;
@@ -1241,7 +1232,7 @@ public:
1241
1232
  * or -1 if not found.
1242
1233
  * @stable ICU 2.0
1243
1234
  */
1244
- int32_t lastIndexOf(const UChar *srcChars,
1235
+ int32_t lastIndexOf(const char16_t *srcChars,
1245
1236
  int32_t srcStart,
1246
1237
  int32_t srcLength,
1247
1238
  int32_t start,
@@ -1254,7 +1245,7 @@ public:
1254
1245
  * @return The offset into this of <TT>c</TT>, or -1 if not found.
1255
1246
  * @stable ICU 2.0
1256
1247
  */
1257
- inline int32_t lastIndexOf(UChar c) const;
1248
+ inline int32_t lastIndexOf(char16_t c) const;
1258
1249
 
1259
1250
  /**
1260
1251
  * Locate in this the last occurrence of the code point <TT>c</TT>,
@@ -1274,7 +1265,7 @@ public:
1274
1265
  * @return The offset into this of <TT>c</TT>, or -1 if not found.
1275
1266
  * @stable ICU 2.0
1276
1267
  */
1277
- inline int32_t lastIndexOf(UChar c,
1268
+ inline int32_t lastIndexOf(char16_t c,
1278
1269
  int32_t start) const;
1279
1270
 
1280
1271
  /**
@@ -1299,7 +1290,7 @@ public:
1299
1290
  * @return The offset into this of <TT>c</TT>, or -1 if not found.
1300
1291
  * @stable ICU 2.0
1301
1292
  */
1302
- inline int32_t lastIndexOf(UChar c,
1293
+ inline int32_t lastIndexOf(char16_t c,
1303
1294
  int32_t start,
1304
1295
  int32_t length) const;
1305
1296
 
@@ -1329,7 +1320,7 @@ public:
1329
1320
  * or 0xffff if the offset is not valid for this string
1330
1321
  * @stable ICU 2.0
1331
1322
  */
1332
- inline UChar charAt(int32_t offset) const;
1323
+ inline char16_t charAt(int32_t offset) const;
1333
1324
 
1334
1325
  /**
1335
1326
  * Return the code unit at offset <tt>offset</tt>.
@@ -1338,7 +1329,7 @@ public:
1338
1329
  * @return the code unit at offset <tt>offset</tt>
1339
1330
  * @stable ICU 2.0
1340
1331
  */
1341
- inline UChar operator[] (int32_t offset) const;
1332
+ inline char16_t operator[] (int32_t offset) const;
1342
1333
 
1343
1334
  /**
1344
1335
  * Return the code point that contains the code unit
@@ -1459,7 +1450,7 @@ public:
1459
1450
  */
1460
1451
  inline void extract(int32_t start,
1461
1452
  int32_t length,
1462
- UChar *dst,
1453
+ Char16Ptr dst,
1463
1454
  int32_t dstStart = 0) const;
1464
1455
 
1465
1456
  /**
@@ -1478,13 +1469,13 @@ public:
1478
1469
  * then extract() will not copy the contents.
1479
1470
  *
1480
1471
  * @param dest Destination string buffer.
1481
- * @param destCapacity Number of UChars available at dest.
1472
+ * @param destCapacity Number of char16_ts available at dest.
1482
1473
  * @param errorCode ICU error code.
1483
1474
  * @return length()
1484
1475
  * @stable ICU 2.0
1485
1476
  */
1486
1477
  int32_t
1487
- extract(UChar *dest, int32_t destCapacity,
1478
+ extract(Char16Ptr dest, int32_t destCapacity,
1488
1479
  UErrorCode &errorCode) const;
1489
1480
 
1490
1481
  /**
@@ -1514,7 +1505,7 @@ public:
1514
1505
  */
1515
1506
  inline void extractBetween(int32_t start,
1516
1507
  int32_t limit,
1517
- UChar *dst,
1508
+ char16_t *dst,
1518
1509
  int32_t dstStart = 0) const;
1519
1510
 
1520
1511
  /**
@@ -1715,8 +1706,6 @@ public:
1715
1706
  */
1716
1707
  void toUTF8(ByteSink &sink) const;
1717
1708
 
1718
- #if U_HAVE_STD_STRING
1719
-
1720
1709
  /**
1721
1710
  * Convert the UnicodeString to UTF-8 and append the result
1722
1711
  * to a standard string.
@@ -1731,13 +1720,11 @@ public:
1731
1720
  */
1732
1721
  template<typename StringClass>
1733
1722
  StringClass &toUTF8String(StringClass &result) const {
1734
- StringByteSink<StringClass> sbs(&result);
1723
+ StringByteSink<StringClass> sbs(&result, length());
1735
1724
  toUTF8(sbs);
1736
1725
  return result;
1737
1726
  }
1738
1727
 
1739
- #endif
1740
-
1741
1728
  /**
1742
1729
  * Convert the UnicodeString to UTF-32.
1743
1730
  * Unpaired surrogates are replaced with U+FFFD.
@@ -1759,7 +1746,7 @@ public:
1759
1746
 
1760
1747
  /**
1761
1748
  * Return the length of the UnicodeString object.
1762
- * The length is the number of UChar code units are in the UnicodeString.
1749
+ * The length is the number of char16_t code units are in the UnicodeString.
1763
1750
  * If you want the number of code points, please use countChar32().
1764
1751
  * @return the length of the UnicodeString object
1765
1752
  * @see countChar32
@@ -1768,14 +1755,14 @@ public:
1768
1755
  inline int32_t length(void) const;
1769
1756
 
1770
1757
  /**
1771
- * Count Unicode code points in the length UChar code units of the string.
1772
- * A code point may occupy either one or two UChar code units.
1758
+ * Count Unicode code points in the length char16_t code units of the string.
1759
+ * A code point may occupy either one or two char16_t code units.
1773
1760
  * Counting code points involves reading all code units.
1774
1761
  *
1775
1762
  * This functions is basically the inverse of moveIndex32().
1776
1763
  *
1777
1764
  * @param start the index of the first code unit to check
1778
- * @param length the number of UChar code units to check
1765
+ * @param length the number of char16_t code units to check
1779
1766
  * @return the number of code points in the specified code units
1780
1767
  * @see length
1781
1768
  * @stable ICU 2.0
@@ -1784,7 +1771,7 @@ public:
1784
1771
  countChar32(int32_t start=0, int32_t length=INT32_MAX) const;
1785
1772
 
1786
1773
  /**
1787
- * Check if the length UChar code units of the string
1774
+ * Check if the length char16_t code units of the string
1788
1775
  * contain more Unicode code points than a certain number.
1789
1776
  * This is more efficient than counting all code points in this part of the string
1790
1777
  * and comparing that number with a threshold.
@@ -1792,10 +1779,10 @@ public:
1792
1779
  * falls within a certain range, and
1793
1780
  * never needs to count more than 'number+1' code points.
1794
1781
  * Logically equivalent to (countChar32(start, length)>number).
1795
- * A Unicode code point may occupy either one or two UChar code units.
1782
+ * A Unicode code point may occupy either one or two char16_t code units.
1796
1783
  *
1797
1784
  * @param start the index of the first code unit to check (0 for the entire string)
1798
- * @param length the number of UChar code units to check
1785
+ * @param length the number of char16_t code units to check
1799
1786
  * (use INT32_MAX for the entire string; remember that start/length
1800
1787
  * values are pinned)
1801
1788
  * @param number The number of code points in the (sub)string is compared against
@@ -1821,7 +1808,7 @@ public:
1821
1808
  * This is useful together with the getBuffer functions.
1822
1809
  * See there for details.
1823
1810
  *
1824
- * @return the number of UChars available in the internal buffer
1811
+ * @return the number of char16_ts available in the internal buffer
1825
1812
  * @see getBuffer
1826
1813
  * @stable ICU 2.0
1827
1814
  */
@@ -1904,7 +1891,6 @@ public:
1904
1891
  */
1905
1892
  UnicodeString &fastCopyFrom(const UnicodeString &src);
1906
1893
 
1907
- #if U_HAVE_RVALUE_REFERENCES
1908
1894
  /**
1909
1895
  * Move assignment operator, might leave src in bogus state.
1910
1896
  * This string will have the same contents and state that the source string had.
@@ -1916,7 +1902,7 @@ public:
1916
1902
  UnicodeString &operator=(UnicodeString &&src) U_NOEXCEPT {
1917
1903
  return moveFrom(src);
1918
1904
  }
1919
- #endif
1905
+
1920
1906
  // do not use #ifndef U_HIDE_DRAFT_API for moveFrom, needed by non-draft API
1921
1907
  /**
1922
1908
  * Move assignment, might leave src in bogus state.
@@ -1955,7 +1941,7 @@ public:
1955
1941
  * @return a reference to this
1956
1942
  * @stable ICU 2.0
1957
1943
  */
1958
- inline UnicodeString& operator= (UChar ch);
1944
+ inline UnicodeString& operator= (char16_t ch);
1959
1945
 
1960
1946
  /**
1961
1947
  * Assignment operator. Replace the characters in this UnicodeString
@@ -2015,7 +2001,7 @@ public:
2015
2001
  * @return a reference to this
2016
2002
  * @stable ICU 2.0
2017
2003
  */
2018
- inline UnicodeString& setTo(const UChar *srcChars,
2004
+ inline UnicodeString& setTo(const char16_t *srcChars,
2019
2005
  int32_t srcLength);
2020
2006
 
2021
2007
  /**
@@ -2026,7 +2012,7 @@ public:
2026
2012
  * @return a reference to this
2027
2013
  * @stable ICU 2.0
2028
2014
  */
2029
- UnicodeString& setTo(UChar srcChar);
2015
+ UnicodeString& setTo(char16_t srcChar);
2030
2016
 
2031
2017
  /**
2032
2018
  * Set the characters in the UnicodeString object to the code point
@@ -2039,7 +2025,7 @@ public:
2039
2025
  UnicodeString& setTo(UChar32 srcChar);
2040
2026
 
2041
2027
  /**
2042
- * Aliasing setTo() function, analogous to the readonly-aliasing UChar* constructor.
2028
+ * Aliasing setTo() function, analogous to the readonly-aliasing char16_t* constructor.
2043
2029
  * The text will be used for the UnicodeString object, but
2044
2030
  * it will not be released when the UnicodeString is destroyed.
2045
2031
  * This has copy-on-write semantics:
@@ -2062,11 +2048,11 @@ public:
2062
2048
  * @stable ICU 2.0
2063
2049
  */
2064
2050
  UnicodeString &setTo(UBool isTerminated,
2065
- const UChar *text,
2051
+ ConstChar16Ptr text,
2066
2052
  int32_t textLength);
2067
2053
 
2068
2054
  /**
2069
- * Aliasing setTo() function, analogous to the writable-aliasing UChar* constructor.
2055
+ * Aliasing setTo() function, analogous to the writable-aliasing char16_t* constructor.
2070
2056
  * The text will be used for the UnicodeString object, but
2071
2057
  * it will not be released when the UnicodeString is destroyed.
2072
2058
  * This has write-through semantics:
@@ -2075,16 +2061,16 @@ public:
2075
2061
  * a new buffer will be allocated and the contents copied as with regularly
2076
2062
  * constructed strings.
2077
2063
  * In an assignment to another UnicodeString, the buffer will be copied.
2078
- * The extract(UChar *dst) function detects whether the dst pointer is the same
2064
+ * The extract(Char16Ptr dst) function detects whether the dst pointer is the same
2079
2065
  * as the string buffer itself and will in this case not copy the contents.
2080
2066
  *
2081
2067
  * @param buffer The characters to alias for the UnicodeString.
2082
2068
  * @param buffLength The number of Unicode characters in <code>buffer</code> to alias.
2083
- * @param buffCapacity The size of <code>buffer</code> in UChars.
2069
+ * @param buffCapacity The size of <code>buffer</code> in char16_ts.
2084
2070
  * @return a reference to this
2085
2071
  * @stable ICU 2.0
2086
2072
  */
2087
- UnicodeString &setTo(UChar *buffer,
2073
+ UnicodeString &setTo(char16_t *buffer,
2088
2074
  int32_t buffLength,
2089
2075
  int32_t buffCapacity);
2090
2076
 
@@ -2120,7 +2106,7 @@ public:
2120
2106
  * s.truncate(0); // set to an empty string (complete truncation), or
2121
2107
  * s=UnicodeString(); // assign an empty string, or
2122
2108
  * s.setTo((UChar32)-1); // set to a pseudo code point that is out of range, or
2123
- * static const UChar nul=0;
2109
+ * static const char16_t nul=0;
2124
2110
  * s.setTo(&nul, 0); // set to an empty C Unicode string
2125
2111
  * }
2126
2112
  * \endcode
@@ -2138,7 +2124,7 @@ public:
2138
2124
  * @stable ICU 2.0
2139
2125
  */
2140
2126
  UnicodeString& setCharAt(int32_t offset,
2141
- UChar ch);
2127
+ char16_t ch);
2142
2128
 
2143
2129
 
2144
2130
  /* Append operations */
@@ -2150,7 +2136,7 @@ public:
2150
2136
  * @return a reference to this
2151
2137
  * @stable ICU 2.0
2152
2138
  */
2153
- inline UnicodeString& operator+= (UChar ch);
2139
+ inline UnicodeString& operator+= (char16_t ch);
2154
2140
 
2155
2141
  /**
2156
2142
  * Append operator. Append the code point <TT>ch</TT> to the UnicodeString
@@ -2210,7 +2196,7 @@ public:
2210
2196
  * @return a reference to this
2211
2197
  * @stable ICU 2.0
2212
2198
  */
2213
- inline UnicodeString& append(const UChar *srcChars,
2199
+ inline UnicodeString& append(const char16_t *srcChars,
2214
2200
  int32_t srcStart,
2215
2201
  int32_t srcLength);
2216
2202
 
@@ -2223,7 +2209,7 @@ public:
2223
2209
  * @return a reference to this
2224
2210
  * @stable ICU 2.0
2225
2211
  */
2226
- inline UnicodeString& append(const UChar *srcChars,
2212
+ inline UnicodeString& append(ConstChar16Ptr srcChars,
2227
2213
  int32_t srcLength);
2228
2214
 
2229
2215
  /**
@@ -2232,7 +2218,7 @@ public:
2232
2218
  * @return a reference to this
2233
2219
  * @stable ICU 2.0
2234
2220
  */
2235
- inline UnicodeString& append(UChar srcChar);
2221
+ inline UnicodeString& append(char16_t srcChar);
2236
2222
 
2237
2223
  /**
2238
2224
  * Append the code point <TT>srcChar</TT> to the UnicodeString object.
@@ -2288,7 +2274,7 @@ public:
2288
2274
  * @stable ICU 2.0
2289
2275
  */
2290
2276
  inline UnicodeString& insert(int32_t start,
2291
- const UChar *srcChars,
2277
+ const char16_t *srcChars,
2292
2278
  int32_t srcStart,
2293
2279
  int32_t srcLength);
2294
2280
 
@@ -2302,7 +2288,7 @@ public:
2302
2288
  * @stable ICU 2.0
2303
2289
  */
2304
2290
  inline UnicodeString& insert(int32_t start,
2305
- const UChar *srcChars,
2291
+ ConstChar16Ptr srcChars,
2306
2292
  int32_t srcLength);
2307
2293
 
2308
2294
  /**
@@ -2314,7 +2300,7 @@ public:
2314
2300
  * @stable ICU 2.0
2315
2301
  */
2316
2302
  inline UnicodeString& insert(int32_t start,
2317
- UChar srcChar);
2303
+ char16_t srcChar);
2318
2304
 
2319
2305
  /**
2320
2306
  * Insert the code point <TT>srcChar</TT> into the UnicodeString object at
@@ -2388,7 +2374,7 @@ public:
2388
2374
  */
2389
2375
  UnicodeString& replace(int32_t start,
2390
2376
  int32_t length,
2391
- const UChar *srcChars,
2377
+ const char16_t *srcChars,
2392
2378
  int32_t srcStart,
2393
2379
  int32_t srcLength);
2394
2380
 
@@ -2406,7 +2392,7 @@ public:
2406
2392
  */
2407
2393
  inline UnicodeString& replace(int32_t start,
2408
2394
  int32_t length,
2409
- const UChar *srcChars,
2395
+ ConstChar16Ptr srcChars,
2410
2396
  int32_t srcLength);
2411
2397
 
2412
2398
  /**
@@ -2422,7 +2408,7 @@ public:
2422
2408
  */
2423
2409
  inline UnicodeString& replace(int32_t start,
2424
2410
  int32_t length,
2425
- UChar srcChar);
2411
+ char16_t srcChar);
2426
2412
 
2427
2413
  /**
2428
2414
  * Replace the characters in the range
@@ -2620,7 +2606,7 @@ public:
2620
2606
  * @stable ICU 2.0
2621
2607
  */
2622
2608
  UBool padLeading(int32_t targetLength,
2623
- UChar padChar = 0x0020);
2609
+ char16_t padChar = 0x0020);
2624
2610
 
2625
2611
  /**
2626
2612
  * Pad the end of this UnicodeString with the character <TT>padChar</TT>.
@@ -2634,7 +2620,7 @@ public:
2634
2620
  * @stable ICU 2.0
2635
2621
  */
2636
2622
  UBool padTrailing(int32_t targetLength,
2637
- UChar padChar = 0x0020);
2623
+ char16_t padChar = 0x0020);
2638
2624
 
2639
2625
  /**
2640
2626
  * Truncate this UnicodeString to the <TT>targetLength</TT>.
@@ -2789,11 +2775,11 @@ public:
2789
2775
  * break iterator is opened.
2790
2776
  * Otherwise the provided iterator is set to the string's text.
2791
2777
  * @param locale The locale to consider.
2778
+ * @param options Options bit set, usually 0. See U_TITLECASE_NO_LOWERCASE,
2779
+ * U_TITLECASE_NO_BREAK_ADJUSTMENT, U_TITLECASE_ADJUST_TO_CASED,
2780
+ * U_TITLECASE_WHOLE_STRING, U_TITLECASE_SENTENCES.
2792
2781
  * @param options Options bit set, see ucasemap_open().
2793
2782
  * @return A reference to this.
2794
- * @see U_TITLECASE_NO_LOWERCASE
2795
- * @see U_TITLECASE_NO_BREAK_ADJUSTMENT
2796
- * @see ucasemap_open
2797
2783
  * @stable ICU 3.8
2798
2784
  */
2799
2785
  UnicodeString &toTitle(BreakIterator *titleIter, const Locale &locale, uint32_t options);
@@ -2821,7 +2807,7 @@ public:
2821
2807
 
2822
2808
  /**
2823
2809
  * Get a read/write pointer to the internal buffer.
2824
- * The buffer is guaranteed to be large enough for at least minCapacity UChars,
2810
+ * The buffer is guaranteed to be large enough for at least minCapacity char16_ts,
2825
2811
  * writable, and is still owned by the UnicodeString object.
2826
2812
  * Calls to getBuffer(minCapacity) must not be nested, and
2827
2813
  * must be matched with calls to releaseBuffer(newLength).
@@ -2852,17 +2838,17 @@ public:
2852
2838
  * - You must call releaseBuffer(newLength) before and in order to
2853
2839
  * return to normal UnicodeString operation.
2854
2840
  *
2855
- * @param minCapacity the minimum number of UChars that are to be available
2841
+ * @param minCapacity the minimum number of char16_ts that are to be available
2856
2842
  * in the buffer, starting at the returned pointer;
2857
2843
  * default to the current string capacity if minCapacity==-1
2858
2844
  * @return a writable pointer to the internal string buffer,
2859
- * or 0 if an error occurs (nested calls, out of memory)
2845
+ * or nullptr if an error occurs (nested calls, out of memory)
2860
2846
  *
2861
2847
  * @see releaseBuffer
2862
2848
  * @see getTerminatedBuffer()
2863
2849
  * @stable ICU 2.0
2864
2850
  */
2865
- UChar *getBuffer(int32_t minCapacity);
2851
+ char16_t *getBuffer(int32_t minCapacity);
2866
2852
 
2867
2853
  /**
2868
2854
  * Release a read/write buffer on a UnicodeString object with an
@@ -2910,13 +2896,13 @@ public:
2910
2896
  * be modified.
2911
2897
  *
2912
2898
  * @return a read-only pointer to the internal string buffer,
2913
- * or 0 if the string is empty or bogus
2899
+ * or nullptr if the string is empty or bogus
2914
2900
  *
2915
2901
  * @see getBuffer(int32_t minCapacity)
2916
2902
  * @see getTerminatedBuffer()
2917
2903
  * @stable ICU 2.0
2918
2904
  */
2919
- inline const UChar *getBuffer() const;
2905
+ inline const char16_t *getBuffer() const;
2920
2906
 
2921
2907
  /**
2922
2908
  * Get a read-only pointer to the internal buffer,
@@ -2951,7 +2937,7 @@ public:
2951
2937
  * @see getBuffer()
2952
2938
  * @stable ICU 2.2
2953
2939
  */
2954
- const UChar *getTerminatedBuffer();
2940
+ const char16_t *getTerminatedBuffer();
2955
2941
 
2956
2942
  //========================================
2957
2943
  // Constructors
@@ -2963,8 +2949,8 @@ public:
2963
2949
  inline UnicodeString();
2964
2950
 
2965
2951
  /**
2966
- * Construct a UnicodeString with capacity to hold <TT>capacity</TT> UChars
2967
- * @param capacity the number of UChars this UnicodeString should hold
2952
+ * Construct a UnicodeString with capacity to hold <TT>capacity</TT> char16_ts
2953
+ * @param capacity the number of char16_ts this UnicodeString should hold
2968
2954
  * before a resize is necessary; if count is greater than 0 and count
2969
2955
  * code points c take up more space than capacity, then capacity is adjusted
2970
2956
  * accordingly.
@@ -2976,7 +2962,7 @@ public:
2976
2962
  UnicodeString(int32_t capacity, UChar32 c, int32_t count);
2977
2963
 
2978
2964
  /**
2979
- * Single UChar (code unit) constructor.
2965
+ * Single char16_t (code unit) constructor.
2980
2966
  *
2981
2967
  * It is recommended to mark this constructor "explicit" by
2982
2968
  * <code>-DUNISTR_FROM_CHAR_EXPLICIT=explicit</code>
@@ -2984,7 +2970,7 @@ public:
2984
2970
  * @param ch the character to place in the UnicodeString
2985
2971
  * @stable ICU 2.0
2986
2972
  */
2987
- UNISTR_FROM_CHAR_EXPLICIT UnicodeString(UChar ch);
2973
+ UNISTR_FROM_CHAR_EXPLICIT UnicodeString(char16_t ch);
2988
2974
 
2989
2975
  /**
2990
2976
  * Single UChar32 (code point) constructor.
@@ -2998,7 +2984,7 @@ public:
2998
2984
  UNISTR_FROM_CHAR_EXPLICIT UnicodeString(UChar32 ch);
2999
2985
 
3000
2986
  /**
3001
- * UChar* constructor.
2987
+ * char16_t* constructor.
3002
2988
  *
3003
2989
  * It is recommended to mark this constructor "explicit" by
3004
2990
  * <code>-DUNISTR_FROM_STRING_EXPLICIT=explicit</code>
@@ -3007,20 +2993,97 @@ public:
3007
2993
  * must be NULL (U+0000) terminated.
3008
2994
  * @stable ICU 2.0
3009
2995
  */
3010
- UNISTR_FROM_STRING_EXPLICIT UnicodeString(const UChar *text);
2996
+ UNISTR_FROM_STRING_EXPLICIT UnicodeString(const char16_t *text);
2997
+
2998
+ #if !U_CHAR16_IS_TYPEDEF
2999
+ /**
3000
+ * uint16_t * constructor.
3001
+ * Delegates to UnicodeString(const char16_t *).
3002
+ *
3003
+ * It is recommended to mark this constructor "explicit" by
3004
+ * <code>-DUNISTR_FROM_STRING_EXPLICIT=explicit</code>
3005
+ * on the compiler command line or similar.
3006
+ * @param text NUL-terminated UTF-16 string
3007
+ * @stable ICU 59
3008
+ */
3009
+ UNISTR_FROM_STRING_EXPLICIT UnicodeString(const uint16_t *text) :
3010
+ UnicodeString(ConstChar16Ptr(text)) {}
3011
+ #endif
3011
3012
 
3013
+ #if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
3012
3014
  /**
3013
- * UChar* constructor.
3015
+ * wchar_t * constructor.
3016
+ * (Only defined if U_SIZEOF_WCHAR_T==2.)
3017
+ * Delegates to UnicodeString(const char16_t *).
3018
+ *
3019
+ * It is recommended to mark this constructor "explicit" by
3020
+ * <code>-DUNISTR_FROM_STRING_EXPLICIT=explicit</code>
3021
+ * on the compiler command line or similar.
3022
+ * @param text NUL-terminated UTF-16 string
3023
+ * @stable ICU 59
3024
+ */
3025
+ UNISTR_FROM_STRING_EXPLICIT UnicodeString(const wchar_t *text) :
3026
+ UnicodeString(ConstChar16Ptr(text)) {}
3027
+ #endif
3028
+
3029
+ /**
3030
+ * nullptr_t constructor.
3031
+ * Effectively the same as the default constructor, makes an empty string object.
3032
+ *
3033
+ * It is recommended to mark this constructor "explicit" by
3034
+ * <code>-DUNISTR_FROM_STRING_EXPLICIT=explicit</code>
3035
+ * on the compiler command line or similar.
3036
+ * @param text nullptr
3037
+ * @stable ICU 59
3038
+ */
3039
+ UNISTR_FROM_STRING_EXPLICIT inline UnicodeString(const std::nullptr_t text);
3040
+
3041
+ /**
3042
+ * char16_t* constructor.
3014
3043
  * @param text The characters to place in the UnicodeString.
3015
3044
  * @param textLength The number of Unicode characters in <TT>text</TT>
3016
3045
  * to copy.
3017
3046
  * @stable ICU 2.0
3018
3047
  */
3019
- UnicodeString(const UChar *text,
3048
+ UnicodeString(const char16_t *text,
3020
3049
  int32_t textLength);
3021
3050
 
3051
+ #if !U_CHAR16_IS_TYPEDEF
3052
+ /**
3053
+ * uint16_t * constructor.
3054
+ * Delegates to UnicodeString(const char16_t *, int32_t).
3055
+ * @param text UTF-16 string
3056
+ * @param length string length
3057
+ * @stable ICU 59
3058
+ */
3059
+ UnicodeString(const uint16_t *text, int32_t length) :
3060
+ UnicodeString(ConstChar16Ptr(text), length) {}
3061
+ #endif
3062
+
3063
+ #if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
3064
+ /**
3065
+ * wchar_t * constructor.
3066
+ * (Only defined if U_SIZEOF_WCHAR_T==2.)
3067
+ * Delegates to UnicodeString(const char16_t *, int32_t).
3068
+ * @param text NUL-terminated UTF-16 string
3069
+ * @param length string length
3070
+ * @stable ICU 59
3071
+ */
3072
+ UnicodeString(const wchar_t *text, int32_t length) :
3073
+ UnicodeString(ConstChar16Ptr(text), length) {}
3074
+ #endif
3075
+
3022
3076
  /**
3023
- * Readonly-aliasing UChar* constructor.
3077
+ * nullptr_t constructor.
3078
+ * Effectively the same as the default constructor, makes an empty string object.
3079
+ * @param text nullptr
3080
+ * @param length ignored
3081
+ * @stable ICU 59
3082
+ */
3083
+ inline UnicodeString(const std::nullptr_t text, int32_t length);
3084
+
3085
+ /**
3086
+ * Readonly-aliasing char16_t* constructor.
3024
3087
  * The text will be used for the UnicodeString object, but
3025
3088
  * it will not be released when the UnicodeString is destroyed.
3026
3089
  * This has copy-on-write semantics:
@@ -3042,11 +3105,11 @@ public:
3042
3105
  * @stable ICU 2.0
3043
3106
  */
3044
3107
  UnicodeString(UBool isTerminated,
3045
- const UChar *text,
3108
+ ConstChar16Ptr text,
3046
3109
  int32_t textLength);
3047
3110
 
3048
3111
  /**
3049
- * Writable-aliasing UChar* constructor.
3112
+ * Writable-aliasing char16_t* constructor.
3050
3113
  * The text will be used for the UnicodeString object, but
3051
3114
  * it will not be released when the UnicodeString is destroyed.
3052
3115
  * This has write-through semantics:
@@ -3055,15 +3118,52 @@ public:
3055
3118
  * a new buffer will be allocated and the contents copied as with regularly
3056
3119
  * constructed strings.
3057
3120
  * In an assignment to another UnicodeString, the buffer will be copied.
3058
- * The extract(UChar *dst) function detects whether the dst pointer is the same
3121
+ * The extract(Char16Ptr dst) function detects whether the dst pointer is the same
3059
3122
  * as the string buffer itself and will in this case not copy the contents.
3060
3123
  *
3061
3124
  * @param buffer The characters to alias for the UnicodeString.
3062
3125
  * @param buffLength The number of Unicode characters in <code>buffer</code> to alias.
3063
- * @param buffCapacity The size of <code>buffer</code> in UChars.
3126
+ * @param buffCapacity The size of <code>buffer</code> in char16_ts.
3064
3127
  * @stable ICU 2.0
3065
3128
  */
3066
- UnicodeString(UChar *buffer, int32_t buffLength, int32_t buffCapacity);
3129
+ UnicodeString(char16_t *buffer, int32_t buffLength, int32_t buffCapacity);
3130
+
3131
+ #if !U_CHAR16_IS_TYPEDEF
3132
+ /**
3133
+ * Writable-aliasing uint16_t * constructor.
3134
+ * Delegates to UnicodeString(const char16_t *, int32_t, int32_t).
3135
+ * @param buffer writable buffer of/for UTF-16 text
3136
+ * @param buffLength length of the current buffer contents
3137
+ * @param buffCapacity buffer capacity
3138
+ * @stable ICU 59
3139
+ */
3140
+ UnicodeString(uint16_t *buffer, int32_t buffLength, int32_t buffCapacity) :
3141
+ UnicodeString(Char16Ptr(buffer), buffLength, buffCapacity) {}
3142
+ #endif
3143
+
3144
+ #if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
3145
+ /**
3146
+ * Writable-aliasing wchar_t * constructor.
3147
+ * (Only defined if U_SIZEOF_WCHAR_T==2.)
3148
+ * Delegates to UnicodeString(const char16_t *, int32_t, int32_t).
3149
+ * @param buffer writable buffer of/for UTF-16 text
3150
+ * @param buffLength length of the current buffer contents
3151
+ * @param buffCapacity buffer capacity
3152
+ * @stable ICU 59
3153
+ */
3154
+ UnicodeString(wchar_t *buffer, int32_t buffLength, int32_t buffCapacity) :
3155
+ UnicodeString(Char16Ptr(buffer), buffLength, buffCapacity) {}
3156
+ #endif
3157
+
3158
+ /**
3159
+ * Writable-aliasing nullptr_t constructor.
3160
+ * Effectively the same as the default constructor, makes an empty string object.
3161
+ * @param buffer nullptr
3162
+ * @param buffLength ignored
3163
+ * @param buffCapacity ignored
3164
+ * @stable ICU 59
3165
+ */
3166
+ inline UnicodeString(std::nullptr_t buffer, int32_t buffLength, int32_t buffCapacity);
3067
3167
 
3068
3168
  #if U_CHARSET_IS_UTF8 || !UCONFIG_NO_CONVERSION
3069
3169
 
@@ -3213,7 +3313,6 @@ public:
3213
3313
  */
3214
3314
  UnicodeString(const UnicodeString& that);
3215
3315
 
3216
- #if U_HAVE_RVALUE_REFERENCES
3217
3316
  /**
3218
3317
  * Move constructor, might leave src in bogus state.
3219
3318
  * This string will have the same contents and state that the source string had.
@@ -3221,7 +3320,6 @@ public:
3221
3320
  * @stable ICU 56
3222
3321
  */
3223
3322
  UnicodeString(UnicodeString &&src) U_NOEXCEPT;
3224
- #endif
3225
3323
 
3226
3324
  /**
3227
3325
  * 'Substring' constructor from tail of source string.
@@ -3380,7 +3478,7 @@ protected:
3380
3478
  * UnicodeString::charAt() to be inline again (see jitterbug 709).
3381
3479
  * @stable ICU 2.4
3382
3480
  */
3383
- virtual UChar getCharAt(int32_t offset) const;
3481
+ virtual char16_t getCharAt(int32_t offset) const;
3384
3482
 
3385
3483
  /**
3386
3484
  * The change in Replaceable to use virtual getChar32At() allows
@@ -3416,7 +3514,7 @@ private:
3416
3514
 
3417
3515
  int8_t doCompare(int32_t start,
3418
3516
  int32_t length,
3419
- const UChar *srcChars,
3517
+ const char16_t *srcChars,
3420
3518
  int32_t srcStart,
3421
3519
  int32_t srcLength) const;
3422
3520
 
@@ -3429,7 +3527,7 @@ private:
3429
3527
 
3430
3528
  int8_t doCompareCodePointOrder(int32_t start,
3431
3529
  int32_t length,
3432
- const UChar *srcChars,
3530
+ const char16_t *srcChars,
3433
3531
  int32_t srcStart,
3434
3532
  int32_t srcLength) const;
3435
3533
 
@@ -3444,12 +3542,12 @@ private:
3444
3542
  int8_t
3445
3543
  doCaseCompare(int32_t start,
3446
3544
  int32_t length,
3447
- const UChar *srcChars,
3545
+ const char16_t *srcChars,
3448
3546
  int32_t srcStart,
3449
3547
  int32_t srcLength,
3450
3548
  uint32_t options) const;
3451
3549
 
3452
- int32_t doIndexOf(UChar c,
3550
+ int32_t doIndexOf(char16_t c,
3453
3551
  int32_t start,
3454
3552
  int32_t length) const;
3455
3553
 
@@ -3457,7 +3555,7 @@ private:
3457
3555
  int32_t start,
3458
3556
  int32_t length) const;
3459
3557
 
3460
- int32_t doLastIndexOf(UChar c,
3558
+ int32_t doLastIndexOf(char16_t c,
3461
3559
  int32_t start,
3462
3560
  int32_t length) const;
3463
3561
 
@@ -3467,14 +3565,14 @@ private:
3467
3565
 
3468
3566
  void doExtract(int32_t start,
3469
3567
  int32_t length,
3470
- UChar *dst,
3568
+ char16_t *dst,
3471
3569
  int32_t dstStart) const;
3472
3570
 
3473
3571
  inline void doExtract(int32_t start,
3474
3572
  int32_t length,
3475
3573
  UnicodeString& target) const;
3476
3574
 
3477
- inline UChar doCharAt(int32_t offset) const;
3575
+ inline char16_t doCharAt(int32_t offset) const;
3478
3576
 
3479
3577
  UnicodeString& doReplace(int32_t start,
3480
3578
  int32_t length,
@@ -3484,12 +3582,12 @@ private:
3484
3582
 
3485
3583
  UnicodeString& doReplace(int32_t start,
3486
3584
  int32_t length,
3487
- const UChar *srcChars,
3585
+ const char16_t *srcChars,
3488
3586
  int32_t srcStart,
3489
3587
  int32_t srcLength);
3490
3588
 
3491
3589
  UnicodeString& doAppend(const UnicodeString& src, int32_t srcStart, int32_t srcLength);
3492
- UnicodeString& doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLength);
3590
+ UnicodeString& doAppend(const char16_t *srcChars, int32_t srcStart, int32_t srcLength);
3493
3591
 
3494
3592
  UnicodeString& doReverse(int32_t start,
3495
3593
  int32_t length);
@@ -3499,8 +3597,8 @@ private:
3499
3597
 
3500
3598
  // get pointer to start of array
3501
3599
  // these do not check for kOpenGetBuffer, unlike the public getBuffer() function
3502
- inline UChar* getArrayStart(void);
3503
- inline const UChar* getArrayStart(void) const;
3600
+ inline char16_t* getArrayStart(void);
3601
+ inline const char16_t* getArrayStart(void) const;
3504
3602
 
3505
3603
  inline UBool hasShortLength() const;
3506
3604
  inline int32_t getShortLength() const;
@@ -3517,7 +3615,7 @@ private:
3517
3615
  inline void setShortLength(int32_t len);
3518
3616
  inline void setLength(int32_t len);
3519
3617
  inline void setToEmpty();
3520
- inline void setArray(UChar *array, int32_t len, int32_t capacity); // sets length but not flags
3618
+ inline void setArray(char16_t *array, int32_t len, int32_t capacity); // sets length but not flags
3521
3619
 
3522
3620
  // allocate the array; result may be the stack buffer
3523
3621
  // sets refCount to 1 if appropriate
@@ -3600,7 +3698,11 @@ private:
3600
3698
  * as in ustr_imp.h for ustrcase_map().
3601
3699
  */
3602
3700
  UnicodeString &
3603
- caseMap(const UCaseMap *csm, UStringCaseMapper *stringCaseMapper);
3701
+ caseMap(int32_t caseLocale, uint32_t options,
3702
+ #if !UCONFIG_NO_BREAK_ITERATION
3703
+ BreakIterator *iter,
3704
+ #endif
3705
+ UStringCaseMapper *stringCaseMapper);
3604
3706
 
3605
3707
  // ref counting
3606
3708
  void addRef(void);
@@ -3691,15 +3793,15 @@ private:
3691
3793
  // Each struct of the union must begin with fLengthAndFlags.
3692
3794
  struct {
3693
3795
  int16_t fLengthAndFlags; // bit fields: see constants above
3694
- UChar fBuffer[US_STACKBUF_SIZE]; // buffer for short strings
3796
+ char16_t fBuffer[US_STACKBUF_SIZE]; // buffer for short strings
3695
3797
  } fStackFields;
3696
3798
  struct {
3697
3799
  int16_t fLengthAndFlags; // bit fields: see constants above
3698
3800
  int32_t fLength; // number of characters in fArray if >127; else undefined
3699
- int32_t fCapacity; // capacity of fArray (in UChars)
3801
+ int32_t fCapacity; // capacity of fArray (in char16_ts)
3700
3802
  // array pointer last to minimize padding for machines with P128 data model
3701
3803
  // or pointer sizes that are not a power of 2
3702
- UChar *fArray; // the Unicode data
3804
+ char16_t *fArray; // the Unicode data
3703
3805
  } fFields;
3704
3806
  } fUnion;
3705
3807
  };
@@ -3752,13 +3854,13 @@ UnicodeString::pinIndices(int32_t& start,
3752
3854
  }
3753
3855
  }
3754
3856
 
3755
- inline UChar*
3857
+ inline char16_t*
3756
3858
  UnicodeString::getArrayStart() {
3757
3859
  return (fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) ?
3758
3860
  fUnion.fStackFields.fBuffer : fUnion.fFields.fArray;
3759
3861
  }
3760
3862
 
3761
- inline const UChar*
3863
+ inline const char16_t*
3762
3864
  UnicodeString::getArrayStart() const {
3763
3865
  return (fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) ?
3764
3866
  fUnion.fStackFields.fBuffer : fUnion.fFields.fArray;
@@ -3773,6 +3875,18 @@ UnicodeString::UnicodeString() {
3773
3875
  fUnion.fStackFields.fLengthAndFlags=kShortString;
3774
3876
  }
3775
3877
 
3878
+ inline UnicodeString::UnicodeString(const std::nullptr_t /*text*/) {
3879
+ fUnion.fStackFields.fLengthAndFlags=kShortString;
3880
+ }
3881
+
3882
+ inline UnicodeString::UnicodeString(const std::nullptr_t /*text*/, int32_t /*length*/) {
3883
+ fUnion.fStackFields.fLengthAndFlags=kShortString;
3884
+ }
3885
+
3886
+ inline UnicodeString::UnicodeString(std::nullptr_t /*buffer*/, int32_t /*buffLength*/, int32_t /*buffCapacity*/) {
3887
+ fUnion.fStackFields.fLengthAndFlags=kShortString;
3888
+ }
3889
+
3776
3890
  //========================================
3777
3891
  // Read-only implementation methods
3778
3892
  //========================================
@@ -3819,10 +3933,10 @@ UnicodeString::isBufferWritable() const
3819
3933
  (!(fUnion.fFields.fLengthAndFlags&kRefCounted) || refCount()==1));
3820
3934
  }
3821
3935
 
3822
- inline const UChar *
3936
+ inline const char16_t *
3823
3937
  UnicodeString::getBuffer() const {
3824
3938
  if(fUnion.fFields.fLengthAndFlags&(kIsBogus|kOpenGetBuffer)) {
3825
- return 0;
3939
+ return nullptr;
3826
3940
  } else if(fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) {
3827
3941
  return fUnion.fStackFields.fBuffer;
3828
3942
  } else {
@@ -3890,7 +4004,7 @@ UnicodeString::compare(int32_t start,
3890
4004
  { return doCompare(start, _length, srcText, 0, srcText.length()); }
3891
4005
 
3892
4006
  inline int8_t
3893
- UnicodeString::compare(const UChar *srcChars,
4007
+ UnicodeString::compare(ConstChar16Ptr srcChars,
3894
4008
  int32_t srcLength) const
3895
4009
  { return doCompare(0, length(), srcChars, 0, srcLength); }
3896
4010
 
@@ -3905,13 +4019,13 @@ UnicodeString::compare(int32_t start,
3905
4019
  inline int8_t
3906
4020
  UnicodeString::compare(int32_t start,
3907
4021
  int32_t _length,
3908
- const UChar *srcChars) const
4022
+ const char16_t *srcChars) const
3909
4023
  { return doCompare(start, _length, srcChars, 0, _length); }
3910
4024
 
3911
4025
  inline int8_t
3912
4026
  UnicodeString::compare(int32_t start,
3913
4027
  int32_t _length,
3914
- const UChar *srcChars,
4028
+ const char16_t *srcChars,
3915
4029
  int32_t srcStart,
3916
4030
  int32_t srcLength) const
3917
4031
  { return doCompare(start, _length, srcChars, srcStart, srcLength); }
@@ -3951,7 +4065,7 @@ UnicodeString::compareCodePointOrder(int32_t start,
3951
4065
  { return doCompareCodePointOrder(start, _length, srcText, 0, srcText.length()); }
3952
4066
 
3953
4067
  inline int8_t
3954
- UnicodeString::compareCodePointOrder(const UChar *srcChars,
4068
+ UnicodeString::compareCodePointOrder(ConstChar16Ptr srcChars,
3955
4069
  int32_t srcLength) const
3956
4070
  { return doCompareCodePointOrder(0, length(), srcChars, 0, srcLength); }
3957
4071
 
@@ -3966,13 +4080,13 @@ UnicodeString::compareCodePointOrder(int32_t start,
3966
4080
  inline int8_t
3967
4081
  UnicodeString::compareCodePointOrder(int32_t start,
3968
4082
  int32_t _length,
3969
- const UChar *srcChars) const
4083
+ const char16_t *srcChars) const
3970
4084
  { return doCompareCodePointOrder(start, _length, srcChars, 0, _length); }
3971
4085
 
3972
4086
  inline int8_t
3973
4087
  UnicodeString::compareCodePointOrder(int32_t start,
3974
4088
  int32_t _length,
3975
- const UChar *srcChars,
4089
+ const char16_t *srcChars,
3976
4090
  int32_t srcStart,
3977
4091
  int32_t srcLength) const
3978
4092
  { return doCompareCodePointOrder(start, _length, srcChars, srcStart, srcLength); }
@@ -4016,7 +4130,7 @@ UnicodeString::caseCompare(int32_t start,
4016
4130
  }
4017
4131
 
4018
4132
  inline int8_t
4019
- UnicodeString::caseCompare(const UChar *srcChars,
4133
+ UnicodeString::caseCompare(ConstChar16Ptr srcChars,
4020
4134
  int32_t srcLength,
4021
4135
  uint32_t options) const {
4022
4136
  return doCaseCompare(0, length(), srcChars, 0, srcLength, options);
@@ -4035,7 +4149,7 @@ UnicodeString::caseCompare(int32_t start,
4035
4149
  inline int8_t
4036
4150
  UnicodeString::caseCompare(int32_t start,
4037
4151
  int32_t _length,
4038
- const UChar *srcChars,
4152
+ const char16_t *srcChars,
4039
4153
  uint32_t options) const {
4040
4154
  return doCaseCompare(start, _length, srcChars, 0, _length, options);
4041
4155
  }
@@ -4043,7 +4157,7 @@ UnicodeString::caseCompare(int32_t start,
4043
4157
  inline int8_t
4044
4158
  UnicodeString::caseCompare(int32_t start,
4045
4159
  int32_t _length,
4046
- const UChar *srcChars,
4160
+ const char16_t *srcChars,
4047
4161
  int32_t srcStart,
4048
4162
  int32_t srcLength,
4049
4163
  uint32_t options) const {
@@ -4094,7 +4208,7 @@ UnicodeString::indexOf(const UnicodeString& text,
4094
4208
  { return indexOf(text, 0, text.length(), start, _length); }
4095
4209
 
4096
4210
  inline int32_t
4097
- UnicodeString::indexOf(const UChar *srcChars,
4211
+ UnicodeString::indexOf(const char16_t *srcChars,
4098
4212
  int32_t srcLength,
4099
4213
  int32_t start) const {
4100
4214
  pinIndex(start);
@@ -4102,14 +4216,14 @@ UnicodeString::indexOf(const UChar *srcChars,
4102
4216
  }
4103
4217
 
4104
4218
  inline int32_t
4105
- UnicodeString::indexOf(const UChar *srcChars,
4219
+ UnicodeString::indexOf(ConstChar16Ptr srcChars,
4106
4220
  int32_t srcLength,
4107
4221
  int32_t start,
4108
4222
  int32_t _length) const
4109
4223
  { return indexOf(srcChars, 0, srcLength, start, _length); }
4110
4224
 
4111
4225
  inline int32_t
4112
- UnicodeString::indexOf(UChar c,
4226
+ UnicodeString::indexOf(char16_t c,
4113
4227
  int32_t start,
4114
4228
  int32_t _length) const
4115
4229
  { return doIndexOf(c, start, _length); }
@@ -4121,7 +4235,7 @@ UnicodeString::indexOf(UChar32 c,
4121
4235
  { return doIndexOf(c, start, _length); }
4122
4236
 
4123
4237
  inline int32_t
4124
- UnicodeString::indexOf(UChar c) const
4238
+ UnicodeString::indexOf(char16_t c) const
4125
4239
  { return doIndexOf(c, 0, length()); }
4126
4240
 
4127
4241
  inline int32_t
@@ -4129,7 +4243,7 @@ UnicodeString::indexOf(UChar32 c) const
4129
4243
  { return indexOf(c, 0, length()); }
4130
4244
 
4131
4245
  inline int32_t
4132
- UnicodeString::indexOf(UChar c,
4246
+ UnicodeString::indexOf(char16_t c,
4133
4247
  int32_t start) const {
4134
4248
  pinIndex(start);
4135
4249
  return doIndexOf(c, start, length() - start);
@@ -4143,14 +4257,14 @@ UnicodeString::indexOf(UChar32 c,
4143
4257
  }
4144
4258
 
4145
4259
  inline int32_t
4146
- UnicodeString::lastIndexOf(const UChar *srcChars,
4260
+ UnicodeString::lastIndexOf(ConstChar16Ptr srcChars,
4147
4261
  int32_t srcLength,
4148
4262
  int32_t start,
4149
4263
  int32_t _length) const
4150
4264
  { return lastIndexOf(srcChars, 0, srcLength, start, _length); }
4151
4265
 
4152
4266
  inline int32_t
4153
- UnicodeString::lastIndexOf(const UChar *srcChars,
4267
+ UnicodeString::lastIndexOf(const char16_t *srcChars,
4154
4268
  int32_t srcLength,
4155
4269
  int32_t start) const {
4156
4270
  pinIndex(start);
@@ -4191,7 +4305,7 @@ UnicodeString::lastIndexOf(const UnicodeString& text) const
4191
4305
  { return lastIndexOf(text, 0, text.length(), 0, length()); }
4192
4306
 
4193
4307
  inline int32_t
4194
- UnicodeString::lastIndexOf(UChar c,
4308
+ UnicodeString::lastIndexOf(char16_t c,
4195
4309
  int32_t start,
4196
4310
  int32_t _length) const
4197
4311
  { return doLastIndexOf(c, start, _length); }
@@ -4204,7 +4318,7 @@ UnicodeString::lastIndexOf(UChar32 c,
4204
4318
  }
4205
4319
 
4206
4320
  inline int32_t
4207
- UnicodeString::lastIndexOf(UChar c) const
4321
+ UnicodeString::lastIndexOf(char16_t c) const
4208
4322
  { return doLastIndexOf(c, 0, length()); }
4209
4323
 
4210
4324
  inline int32_t
@@ -4213,7 +4327,7 @@ UnicodeString::lastIndexOf(UChar32 c) const {
4213
4327
  }
4214
4328
 
4215
4329
  inline int32_t
4216
- UnicodeString::lastIndexOf(UChar c,
4330
+ UnicodeString::lastIndexOf(char16_t c,
4217
4331
  int32_t start) const {
4218
4332
  pinIndex(start);
4219
4333
  return doLastIndexOf(c, start, length() - start);
@@ -4237,17 +4351,17 @@ UnicodeString::startsWith(const UnicodeString& srcText,
4237
4351
  { return doCompare(0, srcLength, srcText, srcStart, srcLength) == 0; }
4238
4352
 
4239
4353
  inline UBool
4240
- UnicodeString::startsWith(const UChar *srcChars, int32_t srcLength) const {
4354
+ UnicodeString::startsWith(ConstChar16Ptr srcChars, int32_t srcLength) const {
4241
4355
  if(srcLength < 0) {
4242
- srcLength = u_strlen(srcChars);
4356
+ srcLength = u_strlen(toUCharPtr(srcChars));
4243
4357
  }
4244
4358
  return doCompare(0, srcLength, srcChars, 0, srcLength) == 0;
4245
4359
  }
4246
4360
 
4247
4361
  inline UBool
4248
- UnicodeString::startsWith(const UChar *srcChars, int32_t srcStart, int32_t srcLength) const {
4362
+ UnicodeString::startsWith(const char16_t *srcChars, int32_t srcStart, int32_t srcLength) const {
4249
4363
  if(srcLength < 0) {
4250
- srcLength = u_strlen(srcChars);
4364
+ srcLength = u_strlen(toUCharPtr(srcChars));
4251
4365
  }
4252
4366
  return doCompare(0, srcLength, srcChars, srcStart, srcLength) == 0;
4253
4367
  }
@@ -4267,21 +4381,21 @@ UnicodeString::endsWith(const UnicodeString& srcText,
4267
4381
  }
4268
4382
 
4269
4383
  inline UBool
4270
- UnicodeString::endsWith(const UChar *srcChars,
4384
+ UnicodeString::endsWith(ConstChar16Ptr srcChars,
4271
4385
  int32_t srcLength) const {
4272
4386
  if(srcLength < 0) {
4273
- srcLength = u_strlen(srcChars);
4387
+ srcLength = u_strlen(toUCharPtr(srcChars));
4274
4388
  }
4275
4389
  return doCompare(length() - srcLength, srcLength,
4276
4390
  srcChars, 0, srcLength) == 0;
4277
4391
  }
4278
4392
 
4279
4393
  inline UBool
4280
- UnicodeString::endsWith(const UChar *srcChars,
4394
+ UnicodeString::endsWith(const char16_t *srcChars,
4281
4395
  int32_t srcStart,
4282
4396
  int32_t srcLength) const {
4283
4397
  if(srcLength < 0) {
4284
- srcLength = u_strlen(srcChars + srcStart);
4398
+ srcLength = u_strlen(toUCharPtr(srcChars + srcStart));
4285
4399
  }
4286
4400
  return doCompare(length() - srcLength, srcLength,
4287
4401
  srcChars, srcStart, srcLength) == 0;
@@ -4307,14 +4421,14 @@ UnicodeString::replace(int32_t start,
4307
4421
  inline UnicodeString&
4308
4422
  UnicodeString::replace(int32_t start,
4309
4423
  int32_t _length,
4310
- const UChar *srcChars,
4424
+ ConstChar16Ptr srcChars,
4311
4425
  int32_t srcLength)
4312
4426
  { return doReplace(start, _length, srcChars, 0, srcLength); }
4313
4427
 
4314
4428
  inline UnicodeString&
4315
4429
  UnicodeString::replace(int32_t start,
4316
4430
  int32_t _length,
4317
- const UChar *srcChars,
4431
+ const char16_t *srcChars,
4318
4432
  int32_t srcStart,
4319
4433
  int32_t srcLength)
4320
4434
  { return doReplace(start, _length, srcChars, srcStart, srcLength); }
@@ -4322,7 +4436,7 @@ UnicodeString::replace(int32_t start,
4322
4436
  inline UnicodeString&
4323
4437
  UnicodeString::replace(int32_t start,
4324
4438
  int32_t _length,
4325
- UChar srcChar)
4439
+ char16_t srcChar)
4326
4440
  { return doReplace(start, _length, &srcChar, 0, 1); }
4327
4441
 
4328
4442
  inline UnicodeString&
@@ -4365,7 +4479,7 @@ UnicodeString::doExtract(int32_t start,
4365
4479
  inline void
4366
4480
  UnicodeString::extract(int32_t start,
4367
4481
  int32_t _length,
4368
- UChar *target,
4482
+ Char16Ptr target,
4369
4483
  int32_t targetStart) const
4370
4484
  { doExtract(start, _length, target, targetStart); }
4371
4485
 
@@ -4393,7 +4507,7 @@ UnicodeString::extract(int32_t start,
4393
4507
  inline void
4394
4508
  UnicodeString::extractBetween(int32_t start,
4395
4509
  int32_t limit,
4396
- UChar *dst,
4510
+ char16_t *dst,
4397
4511
  int32_t dstStart) const {
4398
4512
  pinIndex(start);
4399
4513
  pinIndex(limit);
@@ -4405,7 +4519,7 @@ UnicodeString::tempSubStringBetween(int32_t start, int32_t limit) const {
4405
4519
  return tempSubString(start, limit - start);
4406
4520
  }
4407
4521
 
4408
- inline UChar
4522
+ inline char16_t
4409
4523
  UnicodeString::doCharAt(int32_t offset) const
4410
4524
  {
4411
4525
  if((uint32_t)offset < (uint32_t)length()) {
@@ -4415,11 +4529,11 @@ UnicodeString::doCharAt(int32_t offset) const
4415
4529
  }
4416
4530
  }
4417
4531
 
4418
- inline UChar
4532
+ inline char16_t
4419
4533
  UnicodeString::charAt(int32_t offset) const
4420
4534
  { return doCharAt(offset); }
4421
4535
 
4422
- inline UChar
4536
+ inline char16_t
4423
4537
  UnicodeString::operator[] (int32_t offset) const
4424
4538
  { return doCharAt(offset); }
4425
4539
 
@@ -4460,14 +4574,14 @@ UnicodeString::setToEmpty() {
4460
4574
  }
4461
4575
 
4462
4576
  inline void
4463
- UnicodeString::setArray(UChar *array, int32_t len, int32_t capacity) {
4577
+ UnicodeString::setArray(char16_t *array, int32_t len, int32_t capacity) {
4464
4578
  setLength(len);
4465
4579
  fUnion.fFields.fArray = array;
4466
4580
  fUnion.fFields.fCapacity = capacity;
4467
4581
  }
4468
4582
 
4469
4583
  inline UnicodeString&
4470
- UnicodeString::operator= (UChar ch)
4584
+ UnicodeString::operator= (char16_t ch)
4471
4585
  { return doReplace(0, length(), &ch, 0, 1); }
4472
4586
 
4473
4587
  inline UnicodeString&
@@ -4499,7 +4613,7 @@ UnicodeString::setTo(const UnicodeString& srcText)
4499
4613
  }
4500
4614
 
4501
4615
  inline UnicodeString&
4502
- UnicodeString::setTo(const UChar *srcChars,
4616
+ UnicodeString::setTo(const char16_t *srcChars,
4503
4617
  int32_t srcLength)
4504
4618
  {
4505
4619
  unBogus();
@@ -4507,7 +4621,7 @@ UnicodeString::setTo(const UChar *srcChars,
4507
4621
  }
4508
4622
 
4509
4623
  inline UnicodeString&
4510
- UnicodeString::setTo(UChar srcChar)
4624
+ UnicodeString::setTo(char16_t srcChar)
4511
4625
  {
4512
4626
  unBogus();
4513
4627
  return doReplace(0, length(), &srcChar, 0, 1);
@@ -4531,22 +4645,22 @@ UnicodeString::append(const UnicodeString& srcText)
4531
4645
  { return doAppend(srcText, 0, srcText.length()); }
4532
4646
 
4533
4647
  inline UnicodeString&
4534
- UnicodeString::append(const UChar *srcChars,
4648
+ UnicodeString::append(const char16_t *srcChars,
4535
4649
  int32_t srcStart,
4536
4650
  int32_t srcLength)
4537
4651
  { return doAppend(srcChars, srcStart, srcLength); }
4538
4652
 
4539
4653
  inline UnicodeString&
4540
- UnicodeString::append(const UChar *srcChars,
4654
+ UnicodeString::append(ConstChar16Ptr srcChars,
4541
4655
  int32_t srcLength)
4542
4656
  { return doAppend(srcChars, 0, srcLength); }
4543
4657
 
4544
4658
  inline UnicodeString&
4545
- UnicodeString::append(UChar srcChar)
4659
+ UnicodeString::append(char16_t srcChar)
4546
4660
  { return doAppend(&srcChar, 0, 1); }
4547
4661
 
4548
4662
  inline UnicodeString&
4549
- UnicodeString::operator+= (UChar ch)
4663
+ UnicodeString::operator+= (char16_t ch)
4550
4664
  { return doAppend(&ch, 0, 1); }
4551
4665
 
4552
4666
  inline UnicodeString&
@@ -4572,20 +4686,20 @@ UnicodeString::insert(int32_t start,
4572
4686
 
4573
4687
  inline UnicodeString&
4574
4688
  UnicodeString::insert(int32_t start,
4575
- const UChar *srcChars,
4689
+ const char16_t *srcChars,
4576
4690
  int32_t srcStart,
4577
4691
  int32_t srcLength)
4578
4692
  { return doReplace(start, 0, srcChars, srcStart, srcLength); }
4579
4693
 
4580
4694
  inline UnicodeString&
4581
4695
  UnicodeString::insert(int32_t start,
4582
- const UChar *srcChars,
4696
+ ConstChar16Ptr srcChars,
4583
4697
  int32_t srcLength)
4584
4698
  { return doReplace(start, 0, srcChars, 0, srcLength); }
4585
4699
 
4586
4700
  inline UnicodeString&
4587
4701
  UnicodeString::insert(int32_t start,
4588
- UChar srcChar)
4702
+ char16_t srcChar)
4589
4703
  { return doReplace(start, 0, &srcChar, 0, 1); }
4590
4704
 
4591
4705
  inline UnicodeString&