pango 2.2.4-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (530) hide show
  1. checksums.yaml +7 -0
  2. data/README +33 -0
  3. data/Rakefile +65 -0
  4. data/ext/pango/depend +12 -0
  5. data/ext/pango/extconf.rb +90 -0
  6. data/ext/pango/pango.def +18 -0
  7. data/ext/pango/rbpango.c +318 -0
  8. data/ext/pango/rbpango.h +96 -0
  9. data/ext/pango/rbpangoanalysis.c +218 -0
  10. data/ext/pango/rbpangoattribute.c +499 -0
  11. data/ext/pango/rbpangoattriterator.c +141 -0
  12. data/ext/pango/rbpangoattrlist.c +101 -0
  13. data/ext/pango/rbpangocairo.c +122 -0
  14. data/ext/pango/rbpangocairocontext.c +131 -0
  15. data/ext/pango/rbpangocolor.c +120 -0
  16. data/ext/pango/rbpangocontext.c +309 -0
  17. data/ext/pango/rbpangoconversions.h +111 -0
  18. data/ext/pango/rbpangocoverage.c +106 -0
  19. data/ext/pango/rbpangoengine.c +73 -0
  20. data/ext/pango/rbpangofont.c +110 -0
  21. data/ext/pango/rbpangofontdescription.c +282 -0
  22. data/ext/pango/rbpangofontface.c +73 -0
  23. data/ext/pango/rbpangofontfamily.c +79 -0
  24. data/ext/pango/rbpangofontmap.c +102 -0
  25. data/ext/pango/rbpangofontmetrics.c +85 -0
  26. data/ext/pango/rbpangofontset.c +69 -0
  27. data/ext/pango/rbpangofontsetsimple.c +60 -0
  28. data/ext/pango/rbpangoglyphinfo.c +123 -0
  29. data/ext/pango/rbpangoglyphitem.c +125 -0
  30. data/ext/pango/rbpangoglyphstring.c +151 -0
  31. data/ext/pango/rbpangogravity.c +54 -0
  32. data/ext/pango/rbpangoitem.c +95 -0
  33. data/ext/pango/rbpangolanguage.c +86 -0
  34. data/ext/pango/rbpangolayout.c +572 -0
  35. data/ext/pango/rbpangolayoutiter.c +189 -0
  36. data/ext/pango/rbpangolayoutline.c +239 -0
  37. data/ext/pango/rbpangologattr.c +109 -0
  38. data/ext/pango/rbpangomatrix.c +143 -0
  39. data/ext/pango/rbpangoprivate.h +49 -0
  40. data/ext/pango/rbpangorectangle.c +170 -0
  41. data/ext/pango/rbpangorenderer.c +193 -0
  42. data/ext/pango/rbpangoscript.c +84 -0
  43. data/ext/pango/rbpangoscriptiter.c +92 -0
  44. data/ext/pango/rbpangotabarray.c +128 -0
  45. data/extconf.rb +49 -0
  46. data/lib/2.0/pango.so +0 -0
  47. data/lib/2.1/pango.so +0 -0
  48. data/lib/2.2/pango.so +0 -0
  49. data/lib/pango.rb +79 -0
  50. data/sample/attribute.rb +82 -0
  51. data/sample/break.rb +28 -0
  52. data/sample/gdk_layout.rb +27 -0
  53. data/sample/glyphstring.rb +61 -0
  54. data/sample/item.rb +37 -0
  55. data/sample/label.rb +23 -0
  56. data/sample/layout.rb +102 -0
  57. data/sample/pango_cairo.rb +66 -0
  58. data/sample/parse.rb +33 -0
  59. data/sample/sample.txt +10 -0
  60. data/sample/script.rb +23 -0
  61. data/test/pango-test-utils.rb +9 -0
  62. data/test/run-test.rb +28 -0
  63. data/test/test-analysis.rb +26 -0
  64. data/test/test-attribute.rb +19 -0
  65. data/test/test-color.rb +47 -0
  66. data/test/test-language.rb +7 -0
  67. data/test/test-layout.rb +34 -0
  68. data/test/test-log-attr.rb +26 -0
  69. data/test/test-matrix.rb +26 -0
  70. data/test/test-rectangle.rb +26 -0
  71. data/vendor/local/bin/derb.exe +0 -0
  72. data/vendor/local/bin/genbrk.exe +0 -0
  73. data/vendor/local/bin/genccode.exe +0 -0
  74. data/vendor/local/bin/gencfu.exe +0 -0
  75. data/vendor/local/bin/gencmn.exe +0 -0
  76. data/vendor/local/bin/gencnval.exe +0 -0
  77. data/vendor/local/bin/gendict.exe +0 -0
  78. data/vendor/local/bin/gennorm2.exe +0 -0
  79. data/vendor/local/bin/genrb.exe +0 -0
  80. data/vendor/local/bin/gensprep.exe +0 -0
  81. data/vendor/local/bin/hb-ot-shape-closure.exe +0 -0
  82. data/vendor/local/bin/hb-shape.exe +0 -0
  83. data/vendor/local/bin/hb-view.exe +0 -0
  84. data/vendor/local/bin/icu-config +820 -0
  85. data/vendor/local/bin/icuinfo.exe +0 -0
  86. data/vendor/local/bin/icupkg.exe +0 -0
  87. data/vendor/local/bin/libharfbuzz-0.dll +0 -0
  88. data/vendor/local/bin/libpango-1.0-0.dll +0 -0
  89. data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
  90. data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
  91. data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
  92. data/vendor/local/bin/makeconv.exe +0 -0
  93. data/vendor/local/bin/pango-querymodules.exe +0 -0
  94. data/vendor/local/bin/pango-view.exe +0 -0
  95. data/vendor/local/bin/pkgdata.exe +0 -0
  96. data/vendor/local/bin/uconv.exe +0 -0
  97. data/vendor/local/etc/pango/pango.modules +19 -0
  98. data/vendor/local/include/harfbuzz/hb-blob.h +126 -0
  99. data/vendor/local/include/harfbuzz/hb-buffer.h +344 -0
  100. data/vendor/local/include/harfbuzz/hb-common.h +344 -0
  101. data/vendor/local/include/harfbuzz/hb-deprecated.h +51 -0
  102. data/vendor/local/include/harfbuzz/hb-face.h +117 -0
  103. data/vendor/local/include/harfbuzz/hb-font.h +507 -0
  104. data/vendor/local/include/harfbuzz/hb-ft.h +62 -0
  105. data/vendor/local/include/harfbuzz/hb-glib.h +52 -0
  106. data/vendor/local/include/harfbuzz/hb-icu.h +52 -0
  107. data/vendor/local/include/harfbuzz/hb-ot-font.h +41 -0
  108. data/vendor/local/include/harfbuzz/hb-ot-layout.h +302 -0
  109. data/vendor/local/include/harfbuzz/hb-ot-shape.h +53 -0
  110. data/vendor/local/include/harfbuzz/hb-ot-tag.h +59 -0
  111. data/vendor/local/include/harfbuzz/hb-ot.h +43 -0
  112. data/vendor/local/include/harfbuzz/hb-set.h +154 -0
  113. data/vendor/local/include/harfbuzz/hb-shape-plan.h +89 -0
  114. data/vendor/local/include/harfbuzz/hb-shape.h +81 -0
  115. data/vendor/local/include/harfbuzz/hb-unicode.h +445 -0
  116. data/vendor/local/include/harfbuzz/hb-version.h +66 -0
  117. data/vendor/local/include/harfbuzz/hb.h +47 -0
  118. data/vendor/local/include/layout/LEFontInstance.h +550 -0
  119. data/vendor/local/include/layout/LEGlyphFilter.h +45 -0
  120. data/vendor/local/include/layout/LEGlyphStorage.h +546 -0
  121. data/vendor/local/include/layout/LEInsertionList.h +177 -0
  122. data/vendor/local/include/layout/LELanguages.h +112 -0
  123. data/vendor/local/include/layout/LEScripts.h +263 -0
  124. data/vendor/local/include/layout/LESwaps.h +100 -0
  125. data/vendor/local/include/layout/LETableReference.h +418 -0
  126. data/vendor/local/include/layout/LETypes.h +728 -0
  127. data/vendor/local/include/layout/LayoutEngine.h +518 -0
  128. data/vendor/local/include/layout/ParagraphLayout.h +747 -0
  129. data/vendor/local/include/layout/RunArrays.h +676 -0
  130. data/vendor/local/include/layout/loengine.h +225 -0
  131. data/vendor/local/include/layout/playout.h +466 -0
  132. data/vendor/local/include/layout/plruns.h +441 -0
  133. data/vendor/local/include/pango-1.0/pango/pango-attributes.h +514 -0
  134. data/vendor/local/include/pango-1.0/pango/pango-bidi-type.h +136 -0
  135. data/vendor/local/include/pango-1.0/pango/pango-break.h +173 -0
  136. data/vendor/local/include/pango-1.0/pango/pango-context.h +112 -0
  137. data/vendor/local/include/pango-1.0/pango/pango-coverage.h +79 -0
  138. data/vendor/local/include/pango-1.0/pango/pango-engine.h +429 -0
  139. data/vendor/local/include/pango-1.0/pango/pango-enum-types.h +69 -0
  140. data/vendor/local/include/pango-1.0/pango/pango-features.h +12 -0
  141. data/vendor/local/include/pango-1.0/pango/pango-font.h +622 -0
  142. data/vendor/local/include/pango-1.0/pango/pango-fontmap.h +167 -0
  143. data/vendor/local/include/pango-1.0/pango/pango-fontset.h +169 -0
  144. data/vendor/local/include/pango-1.0/pango/pango-glyph-item.h +158 -0
  145. data/vendor/local/include/pango-1.0/pango/pango-glyph.h +197 -0
  146. data/vendor/local/include/pango-1.0/pango/pango-gravity.h +128 -0
  147. data/vendor/local/include/pango-1.0/pango/pango-item.h +109 -0
  148. data/vendor/local/include/pango-1.0/pango/pango-language.h +61 -0
  149. data/vendor/local/include/pango-1.0/pango/pango-layout.h +340 -0
  150. data/vendor/local/include/pango-1.0/pango/pango-matrix.h +117 -0
  151. data/vendor/local/include/pango-1.0/pango/pango-modules.h +71 -0
  152. data/vendor/local/include/pango-1.0/pango/pango-ot.h +391 -0
  153. data/vendor/local/include/pango-1.0/pango/pango-renderer.h +260 -0
  154. data/vendor/local/include/pango-1.0/pango/pango-script.h +260 -0
  155. data/vendor/local/include/pango-1.0/pango/pango-tabs.h +87 -0
  156. data/vendor/local/include/pango-1.0/pango/pango-types.h +200 -0
  157. data/vendor/local/include/pango-1.0/pango/pango-utils.h +189 -0
  158. data/vendor/local/include/pango-1.0/pango/pango.h +48 -0
  159. data/vendor/local/include/pango-1.0/pango/pangocairo.h +169 -0
  160. data/vendor/local/include/pango-1.0/pango/pangofc-decoder.h +110 -0
  161. data/vendor/local/include/pango-1.0/pango/pangofc-font.h +153 -0
  162. data/vendor/local/include/pango-1.0/pango/pangofc-fontmap.h +289 -0
  163. data/vendor/local/include/pango-1.0/pango/pangoft2.h +133 -0
  164. data/vendor/local/include/pango-1.0/pango/pangowin32.h +128 -0
  165. data/vendor/local/include/unicode/alphaindex.h +752 -0
  166. data/vendor/local/include/unicode/appendable.h +232 -0
  167. data/vendor/local/include/unicode/basictz.h +214 -0
  168. data/vendor/local/include/unicode/brkiter.h +655 -0
  169. data/vendor/local/include/unicode/bytestream.h +257 -0
  170. data/vendor/local/include/unicode/bytestrie.h +519 -0
  171. data/vendor/local/include/unicode/bytestriebuilder.h +181 -0
  172. data/vendor/local/include/unicode/calendar.h +2519 -0
  173. data/vendor/local/include/unicode/caniter.h +208 -0
  174. data/vendor/local/include/unicode/chariter.h +722 -0
  175. data/vendor/local/include/unicode/choicfmt.h +594 -0
  176. data/vendor/local/include/unicode/coleitr.h +404 -0
  177. data/vendor/local/include/unicode/coll.h +1267 -0
  178. data/vendor/local/include/unicode/compactdecimalformat.h +330 -0
  179. data/vendor/local/include/unicode/curramt.h +130 -0
  180. data/vendor/local/include/unicode/currpinf.h +258 -0
  181. data/vendor/local/include/unicode/currunit.h +110 -0
  182. data/vendor/local/include/unicode/datefmt.h +883 -0
  183. data/vendor/local/include/unicode/dbbi.h +40 -0
  184. data/vendor/local/include/unicode/dcfmtsym.h +482 -0
  185. data/vendor/local/include/unicode/decimfmt.h +2479 -0
  186. data/vendor/local/include/unicode/docmain.h +215 -0
  187. data/vendor/local/include/unicode/dtfmtsym.h +912 -0
  188. data/vendor/local/include/unicode/dtintrv.h +158 -0
  189. data/vendor/local/include/unicode/dtitvfmt.h +985 -0
  190. data/vendor/local/include/unicode/dtitvinf.h +514 -0
  191. data/vendor/local/include/unicode/dtptngen.h +498 -0
  192. data/vendor/local/include/unicode/dtrule.h +250 -0
  193. data/vendor/local/include/unicode/enumset.h +64 -0
  194. data/vendor/local/include/unicode/errorcode.h +137 -0
  195. data/vendor/local/include/unicode/fieldpos.h +291 -0
  196. data/vendor/local/include/unicode/filteredbrk.h +131 -0
  197. data/vendor/local/include/unicode/fmtable.h +760 -0
  198. data/vendor/local/include/unicode/format.h +305 -0
  199. data/vendor/local/include/unicode/fpositer.h +117 -0
  200. data/vendor/local/include/unicode/gender.h +111 -0
  201. data/vendor/local/include/unicode/gregocal.h +777 -0
  202. data/vendor/local/include/unicode/icudataver.h +41 -0
  203. data/vendor/local/include/unicode/icuplug.h +371 -0
  204. data/vendor/local/include/unicode/idna.h +323 -0
  205. data/vendor/local/include/unicode/listformatter.h +167 -0
  206. data/vendor/local/include/unicode/localpointer.h +304 -0
  207. data/vendor/local/include/unicode/locdspnm.h +204 -0
  208. data/vendor/local/include/unicode/locid.h +815 -0
  209. data/vendor/local/include/unicode/measfmt.h +389 -0
  210. data/vendor/local/include/unicode/measunit.h +1443 -0
  211. data/vendor/local/include/unicode/measure.h +159 -0
  212. data/vendor/local/include/unicode/messagepattern.h +943 -0
  213. data/vendor/local/include/unicode/msgfmt.h +1093 -0
  214. data/vendor/local/include/unicode/normalizer2.h +658 -0
  215. data/vendor/local/include/unicode/normlzr.h +797 -0
  216. data/vendor/local/include/unicode/numfmt.h +1187 -0
  217. data/vendor/local/include/unicode/numsys.h +208 -0
  218. data/vendor/local/include/unicode/parseerr.h +92 -0
  219. data/vendor/local/include/unicode/parsepos.h +230 -0
  220. data/vendor/local/include/unicode/platform.h +751 -0
  221. data/vendor/local/include/unicode/plurfmt.h +615 -0
  222. data/vendor/local/include/unicode/plurrule.h +501 -0
  223. data/vendor/local/include/unicode/ptypes.h +126 -0
  224. data/vendor/local/include/unicode/putil.h +181 -0
  225. data/vendor/local/include/unicode/rbbi.h +782 -0
  226. data/vendor/local/include/unicode/rbnf.h +1032 -0
  227. data/vendor/local/include/unicode/rbtz.h +362 -0
  228. data/vendor/local/include/unicode/regex.h +1857 -0
  229. data/vendor/local/include/unicode/region.h +228 -0
  230. data/vendor/local/include/unicode/reldatefmt.h +498 -0
  231. data/vendor/local/include/unicode/rep.h +261 -0
  232. data/vendor/local/include/unicode/resbund.h +490 -0
  233. data/vendor/local/include/unicode/schriter.h +187 -0
  234. data/vendor/local/include/unicode/scientificformathelper.h +139 -0
  235. data/vendor/local/include/unicode/search.h +575 -0
  236. data/vendor/local/include/unicode/selfmt.h +367 -0
  237. data/vendor/local/include/unicode/simpletz.h +928 -0
  238. data/vendor/local/include/unicode/smpdtfmt.h +1592 -0
  239. data/vendor/local/include/unicode/sortkey.h +338 -0
  240. data/vendor/local/include/unicode/std_string.h +37 -0
  241. data/vendor/local/include/unicode/strenum.h +276 -0
  242. data/vendor/local/include/unicode/stringpiece.h +224 -0
  243. data/vendor/local/include/unicode/stringtriebuilder.h +402 -0
  244. data/vendor/local/include/unicode/stsearch.h +504 -0
  245. data/vendor/local/include/unicode/symtable.h +112 -0
  246. data/vendor/local/include/unicode/tblcoll.h +873 -0
  247. data/vendor/local/include/unicode/timezone.h +948 -0
  248. data/vendor/local/include/unicode/tmunit.h +129 -0
  249. data/vendor/local/include/unicode/tmutamt.h +168 -0
  250. data/vendor/local/include/unicode/tmutfmt.h +243 -0
  251. data/vendor/local/include/unicode/translit.h +1342 -0
  252. data/vendor/local/include/unicode/tzfmt.h +1098 -0
  253. data/vendor/local/include/unicode/tznames.h +404 -0
  254. data/vendor/local/include/unicode/tzrule.h +828 -0
  255. data/vendor/local/include/unicode/tztrans.h +195 -0
  256. data/vendor/local/include/unicode/ubidi.h +2186 -0
  257. data/vendor/local/include/unicode/ubrk.h +540 -0
  258. data/vendor/local/include/unicode/ucal.h +1560 -0
  259. data/vendor/local/include/unicode/ucasemap.h +423 -0
  260. data/vendor/local/include/unicode/ucat.h +158 -0
  261. data/vendor/local/include/unicode/uchar.h +3426 -0
  262. data/vendor/local/include/unicode/ucharstrie.h +576 -0
  263. data/vendor/local/include/unicode/ucharstriebuilder.h +185 -0
  264. data/vendor/local/include/unicode/uchriter.h +381 -0
  265. data/vendor/local/include/unicode/uclean.h +258 -0
  266. data/vendor/local/include/unicode/ucnv.h +2036 -0
  267. data/vendor/local/include/unicode/ucnv_cb.h +162 -0
  268. data/vendor/local/include/unicode/ucnv_err.h +463 -0
  269. data/vendor/local/include/unicode/ucnvsel.h +187 -0
  270. data/vendor/local/include/unicode/ucol.h +1474 -0
  271. data/vendor/local/include/unicode/ucoleitr.h +266 -0
  272. data/vendor/local/include/unicode/uconfig.h +430 -0
  273. data/vendor/local/include/unicode/ucsdet.h +413 -0
  274. data/vendor/local/include/unicode/ucurr.h +424 -0
  275. data/vendor/local/include/unicode/udat.h +1536 -0
  276. data/vendor/local/include/unicode/udata.h +430 -0
  277. data/vendor/local/include/unicode/udateintervalformat.h +181 -0
  278. data/vendor/local/include/unicode/udatpg.h +588 -0
  279. data/vendor/local/include/unicode/udisplaycontext.h +150 -0
  280. data/vendor/local/include/unicode/uenum.h +206 -0
  281. data/vendor/local/include/unicode/uformattable.h +280 -0
  282. data/vendor/local/include/unicode/ugender.h +82 -0
  283. data/vendor/local/include/unicode/uidna.h +762 -0
  284. data/vendor/local/include/unicode/uiter.h +707 -0
  285. data/vendor/local/include/unicode/uldnames.h +302 -0
  286. data/vendor/local/include/unicode/uloc.h +1256 -0
  287. data/vendor/local/include/unicode/ulocdata.h +277 -0
  288. data/vendor/local/include/unicode/umachine.h +356 -0
  289. data/vendor/local/include/unicode/umisc.h +60 -0
  290. data/vendor/local/include/unicode/umsg.h +623 -0
  291. data/vendor/local/include/unicode/unifilt.h +120 -0
  292. data/vendor/local/include/unicode/unifunct.h +125 -0
  293. data/vendor/local/include/unicode/unimatch.h +163 -0
  294. data/vendor/local/include/unicode/unirepl.h +97 -0
  295. data/vendor/local/include/unicode/uniset.h +1691 -0
  296. data/vendor/local/include/unicode/unistr.h +4470 -0
  297. data/vendor/local/include/unicode/unorm.h +561 -0
  298. data/vendor/local/include/unicode/unorm2.h +528 -0
  299. data/vendor/local/include/unicode/unum.h +1328 -0
  300. data/vendor/local/include/unicode/unumsys.h +170 -0
  301. data/vendor/local/include/unicode/uobject.h +320 -0
  302. data/vendor/local/include/unicode/upluralrules.h +145 -0
  303. data/vendor/local/include/unicode/uregex.h +1591 -0
  304. data/vendor/local/include/unicode/uregion.h +248 -0
  305. data/vendor/local/include/unicode/urename.h +1784 -0
  306. data/vendor/local/include/unicode/urep.h +155 -0
  307. data/vendor/local/include/unicode/ures.h +887 -0
  308. data/vendor/local/include/unicode/uscript.h +642 -0
  309. data/vendor/local/include/unicode/usearch.h +885 -0
  310. data/vendor/local/include/unicode/uset.h +1126 -0
  311. data/vendor/local/include/unicode/usetiter.h +318 -0
  312. data/vendor/local/include/unicode/ushape.h +474 -0
  313. data/vendor/local/include/unicode/uspoof.h +1064 -0
  314. data/vendor/local/include/unicode/usprep.h +269 -0
  315. data/vendor/local/include/unicode/ustdio.h +1018 -0
  316. data/vendor/local/include/unicode/ustream.h +68 -0
  317. data/vendor/local/include/unicode/ustring.h +1700 -0
  318. data/vendor/local/include/unicode/ustringtrie.h +95 -0
  319. data/vendor/local/include/unicode/utext.h +1600 -0
  320. data/vendor/local/include/unicode/utf.h +223 -0
  321. data/vendor/local/include/unicode/utf16.h +623 -0
  322. data/vendor/local/include/unicode/utf32.h +23 -0
  323. data/vendor/local/include/unicode/utf8.h +824 -0
  324. data/vendor/local/include/unicode/utf_old.h +1169 -0
  325. data/vendor/local/include/unicode/utmscale.h +481 -0
  326. data/vendor/local/include/unicode/utrace.h +359 -0
  327. data/vendor/local/include/unicode/utrans.h +658 -0
  328. data/vendor/local/include/unicode/utypes.h +723 -0
  329. data/vendor/local/include/unicode/uvernum.h +170 -0
  330. data/vendor/local/include/unicode/uversion.h +193 -0
  331. data/vendor/local/include/unicode/vtzone.h +455 -0
  332. data/vendor/local/lib/girepository-1.0/Pango-1.0.typelib +0 -0
  333. data/vendor/local/lib/girepository-1.0/PangoCairo-1.0.typelib +0 -0
  334. data/vendor/local/lib/girepository-1.0/PangoFT2-1.0.typelib +0 -0
  335. data/vendor/local/lib/icu/54.1/Makefile.inc +293 -0
  336. data/vendor/local/lib/icu/54.1/pkgdata.inc +17 -0
  337. data/vendor/local/lib/icu/Makefile.inc +293 -0
  338. data/vendor/local/lib/icu/pkgdata.inc +17 -0
  339. data/vendor/local/lib/icudt.dll +0 -0
  340. data/vendor/local/lib/icudt54.dll +0 -0
  341. data/vendor/local/lib/icuin.dll +0 -0
  342. data/vendor/local/lib/icuin54.dll +0 -0
  343. data/vendor/local/lib/icuio.dll +0 -0
  344. data/vendor/local/lib/icuio54.dll +0 -0
  345. data/vendor/local/lib/icule.dll +0 -0
  346. data/vendor/local/lib/icule54.dll +0 -0
  347. data/vendor/local/lib/iculx.dll +0 -0
  348. data/vendor/local/lib/iculx54.dll +0 -0
  349. data/vendor/local/lib/icutest.dll +0 -0
  350. data/vendor/local/lib/icutest54.dll +0 -0
  351. data/vendor/local/lib/icutu.dll +0 -0
  352. data/vendor/local/lib/icutu54.dll +0 -0
  353. data/vendor/local/lib/icuuc.dll +0 -0
  354. data/vendor/local/lib/icuuc54.dll +0 -0
  355. data/vendor/local/lib/libharfbuzz-icu.a +0 -0
  356. data/vendor/local/lib/libharfbuzz-icu.la +41 -0
  357. data/vendor/local/lib/libharfbuzz.dll.a +0 -0
  358. data/vendor/local/lib/libharfbuzz.la +41 -0
  359. data/vendor/local/lib/libicudt.dll.a +0 -0
  360. data/vendor/local/lib/libicuin.dll.a +0 -0
  361. data/vendor/local/lib/libicuio.dll.a +0 -0
  362. data/vendor/local/lib/libicule.dll.a +0 -0
  363. data/vendor/local/lib/libiculx.dll.a +0 -0
  364. data/vendor/local/lib/libicutest.dll.a +0 -0
  365. data/vendor/local/lib/libicutu.dll.a +0 -0
  366. data/vendor/local/lib/libicuuc.dll.a +0 -0
  367. data/vendor/local/lib/libpango-1.0.dll.a +0 -0
  368. data/vendor/local/lib/libpango-1.0.la +41 -0
  369. data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
  370. data/vendor/local/lib/libpangocairo-1.0.la +41 -0
  371. data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
  372. data/vendor/local/lib/libpangoft2-1.0.la +41 -0
  373. data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
  374. data/vendor/local/lib/libpangowin32-1.0.la +41 -0
  375. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.dll +0 -0
  376. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.dll.a +0 -0
  377. data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.la +41 -0
  378. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.dll +0 -0
  379. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.dll.a +0 -0
  380. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.la +41 -0
  381. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.dll +0 -0
  382. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.dll.a +0 -0
  383. data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.la +41 -0
  384. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.dll +0 -0
  385. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.dll.a +0 -0
  386. data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.la +41 -0
  387. data/vendor/local/lib/pkgconfig/harfbuzz-icu.pc +13 -0
  388. data/vendor/local/lib/pkgconfig/harfbuzz.pc +11 -0
  389. data/vendor/local/lib/pkgconfig/icu-i18n.pc +38 -0
  390. data/vendor/local/lib/pkgconfig/icu-io.pc +38 -0
  391. data/vendor/local/lib/pkgconfig/icu-le.pc +38 -0
  392. data/vendor/local/lib/pkgconfig/icu-lx.pc +38 -0
  393. data/vendor/local/lib/pkgconfig/icu-uc.pc +38 -0
  394. data/vendor/local/lib/pkgconfig/pango.pc +14 -0
  395. data/vendor/local/lib/pkgconfig/pangocairo.pc +11 -0
  396. data/vendor/local/lib/pkgconfig/pangoft2.pc +12 -0
  397. data/vendor/local/lib/pkgconfig/pangowin32.pc +11 -0
  398. data/vendor/local/share/gir-1.0/Pango-1.0.gir +13329 -0
  399. data/vendor/local/share/gir-1.0/PangoCairo-1.0.gir +833 -0
  400. data/vendor/local/share/gir-1.0/PangoFT2-1.0.gir +354 -0
  401. data/vendor/local/share/gtk-doc/html/harfbuzz/annotation-glossary.html +75 -0
  402. data/vendor/local/share/gtk-doc/html/harfbuzz/api-index-full.html +1449 -0
  403. data/vendor/local/share/gtk-doc/html/harfbuzz/ch01.html +98 -0
  404. data/vendor/local/share/gtk-doc/html/harfbuzz/deprecated-api-index.html +46 -0
  405. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-blob.html +610 -0
  406. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-buffer.html +1780 -0
  407. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-common.html +1337 -0
  408. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-coretext.html +144 -0
  409. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-deprecated.html +99 -0
  410. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-face.html +630 -0
  411. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-font.html +2529 -0
  412. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ft.html +188 -0
  413. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-glib.html +120 -0
  414. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-gobject.html +50 -0
  415. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-graphite2.html +120 -0
  416. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-icu.html +120 -0
  417. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-layout.html +771 -0
  418. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-tag.html +172 -0
  419. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot.html +50 -0
  420. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-set.html +966 -0
  421. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape-plan.html +405 -0
  422. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape.html +286 -0
  423. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-unicode.html +1523 -0
  424. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-uniscribe.html +100 -0
  425. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-version.html +182 -0
  426. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb.html +50 -0
  427. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz.devhelp2 +378 -0
  428. data/vendor/local/share/gtk-doc/html/harfbuzz/home.png +0 -0
  429. data/vendor/local/share/gtk-doc/html/harfbuzz/index.html +105 -0
  430. data/vendor/local/share/gtk-doc/html/harfbuzz/index.sgml +496 -0
  431. data/vendor/local/share/gtk-doc/html/harfbuzz/left-insensitive.png +0 -0
  432. data/vendor/local/share/gtk-doc/html/harfbuzz/left.png +0 -0
  433. data/vendor/local/share/gtk-doc/html/harfbuzz/object-tree.html +59 -0
  434. data/vendor/local/share/gtk-doc/html/harfbuzz/right-insensitive.png +0 -0
  435. data/vendor/local/share/gtk-doc/html/harfbuzz/right.png +0 -0
  436. data/vendor/local/share/gtk-doc/html/harfbuzz/style.css +476 -0
  437. data/vendor/local/share/gtk-doc/html/harfbuzz/up-insensitive.png +0 -0
  438. data/vendor/local/share/gtk-doc/html/harfbuzz/up.png +0 -0
  439. data/vendor/local/share/gtk-doc/html/pango/PangoEngineLang.html +224 -0
  440. data/vendor/local/share/gtk-doc/html/pango/PangoEngineShape.html +255 -0
  441. data/vendor/local/share/gtk-doc/html/pango/PangoFcDecoder.html +246 -0
  442. data/vendor/local/share/gtk-doc/html/pango/PangoFcFont.html +500 -0
  443. data/vendor/local/share/gtk-doc/html/pango/PangoFcFontMap.html +1001 -0
  444. data/vendor/local/share/gtk-doc/html/pango/PangoMarkupFormat.html +301 -0
  445. data/vendor/local/share/gtk-doc/html/pango/PangoRenderer.html +1219 -0
  446. data/vendor/local/share/gtk-doc/html/pango/annotation-glossary.html +89 -0
  447. data/vendor/local/share/gtk-doc/html/pango/api-index-1-10.html +135 -0
  448. data/vendor/local/share/gtk-doc/html/pango/api-index-1-12.html +49 -0
  449. data/vendor/local/share/gtk-doc/html/pango/api-index-1-14.html +64 -0
  450. data/vendor/local/share/gtk-doc/html/pango/api-index-1-16.html +228 -0
  451. data/vendor/local/share/gtk-doc/html/pango/api-index-1-18.html +152 -0
  452. data/vendor/local/share/gtk-doc/html/pango/api-index-1-2.html +122 -0
  453. data/vendor/local/share/gtk-doc/html/pango/api-index-1-20.html +87 -0
  454. data/vendor/local/share/gtk-doc/html/pango/api-index-1-22.html +124 -0
  455. data/vendor/local/share/gtk-doc/html/pango/api-index-1-24.html +97 -0
  456. data/vendor/local/share/gtk-doc/html/pango/api-index-1-26.html +46 -0
  457. data/vendor/local/share/gtk-doc/html/pango/api-index-1-30.html +39 -0
  458. data/vendor/local/share/gtk-doc/html/pango/api-index-1-31-0.html +39 -0
  459. data/vendor/local/share/gtk-doc/html/pango/api-index-1-32-4.html +53 -0
  460. data/vendor/local/share/gtk-doc/html/pango/api-index-1-32.html +42 -0
  461. data/vendor/local/share/gtk-doc/html/pango/api-index-1-34.html +38 -0
  462. data/vendor/local/share/gtk-doc/html/pango/api-index-1-4.html +201 -0
  463. data/vendor/local/share/gtk-doc/html/pango/api-index-1-6.html +165 -0
  464. data/vendor/local/share/gtk-doc/html/pango/api-index-1-8.html +171 -0
  465. data/vendor/local/share/gtk-doc/html/pango/api-index-deprecated.html +284 -0
  466. data/vendor/local/share/gtk-doc/html/pango/api-index-full.html +2968 -0
  467. data/vendor/local/share/gtk-doc/html/pango/home.png +0 -0
  468. data/vendor/local/share/gtk-doc/html/pango/index.html +146 -0
  469. data/vendor/local/share/gtk-doc/html/pango/index.sgml +957 -0
  470. data/vendor/local/share/gtk-doc/html/pango/layout.gif +0 -0
  471. data/vendor/local/share/gtk-doc/html/pango/left-insensitive.png +0 -0
  472. data/vendor/local/share/gtk-doc/html/pango/left.png +0 -0
  473. data/vendor/local/share/gtk-doc/html/pango/lowlevel.html +68 -0
  474. data/vendor/local/share/gtk-doc/html/pango/pango-Bidirectional-Text.html +514 -0
  475. data/vendor/local/share/gtk-doc/html/pango/pango-Cairo-Rendering.html +1632 -0
  476. data/vendor/local/share/gtk-doc/html/pango/pango-CoreText-Fonts.html +115 -0
  477. data/vendor/local/share/gtk-doc/html/pango/pango-Coverage-Maps.html +508 -0
  478. data/vendor/local/share/gtk-doc/html/pango/pango-Engines.html +358 -0
  479. data/vendor/local/share/gtk-doc/html/pango/pango-Fonts.html +4154 -0
  480. data/vendor/local/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html +956 -0
  481. data/vendor/local/share/gtk-doc/html/pango/pango-Glyph-Storage.html +2627 -0
  482. data/vendor/local/share/gtk-doc/html/pango/pango-Layout-Objects.html +4153 -0
  483. data/vendor/local/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html +965 -0
  484. data/vendor/local/share/gtk-doc/html/pango/pango-Modules.html +331 -0
  485. data/vendor/local/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html +2202 -0
  486. data/vendor/local/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html +1430 -0
  487. data/vendor/local/share/gtk-doc/html/pango/pango-Tab-Stops.html +582 -0
  488. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Attributes.html +3356 -0
  489. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Processing.html +2079 -0
  490. data/vendor/local/share/gtk-doc/html/pango/pango-Version-Checking.html +325 -0
  491. data/vendor/local/share/gtk-doc/html/pango/pango-Vertical-Text.html +523 -0
  492. data/vendor/local/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html +1028 -0
  493. data/vendor/local/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html +1275 -0
  494. data/vendor/local/share/gtk-doc/html/pango/pango-hierarchy.html +91 -0
  495. data/vendor/local/share/gtk-doc/html/pango/pango-querymodules.html +131 -0
  496. data/vendor/local/share/gtk-doc/html/pango/pango.devhelp2 +786 -0
  497. data/vendor/local/share/gtk-doc/html/pango/pango.html +63 -0
  498. data/vendor/local/share/gtk-doc/html/pango/rendering.html +47 -0
  499. data/vendor/local/share/gtk-doc/html/pango/right-insensitive.png +0 -0
  500. data/vendor/local/share/gtk-doc/html/pango/right.png +0 -0
  501. data/vendor/local/share/gtk-doc/html/pango/rotated-text.png +0 -0
  502. data/vendor/local/share/gtk-doc/html/pango/style.css +476 -0
  503. data/vendor/local/share/gtk-doc/html/pango/tools.html +33 -0
  504. data/vendor/local/share/gtk-doc/html/pango/up-insensitive.png +0 -0
  505. data/vendor/local/share/gtk-doc/html/pango/up.png +0 -0
  506. data/vendor/local/share/icu/54.1/config/mh-mingw64 +158 -0
  507. data/vendor/local/share/icu/54.1/install-sh +251 -0
  508. data/vendor/local/share/icu/54.1/license.html +385 -0
  509. data/vendor/local/share/icu/54.1/mkinstalldirs +43 -0
  510. data/vendor/local/share/license/harfbuzz/AUTHORS +9 -0
  511. data/vendor/local/share/license/harfbuzz/COPYING +36 -0
  512. data/vendor/local/share/license/pango/AUTHORS +2 -0
  513. data/vendor/local/share/license/pango/COPYING +482 -0
  514. data/vendor/local/share/man/man1/derb.1 +196 -0
  515. data/vendor/local/share/man/man1/genbrk.1 +112 -0
  516. data/vendor/local/share/man/man1/gencfu.1 +91 -0
  517. data/vendor/local/share/man/man1/gencnval.1 +91 -0
  518. data/vendor/local/share/man/man1/gendict.1 +131 -0
  519. data/vendor/local/share/man/man1/genrb.1 +146 -0
  520. data/vendor/local/share/man/man1/icu-config.1 +288 -0
  521. data/vendor/local/share/man/man1/makeconv.1 +112 -0
  522. data/vendor/local/share/man/man1/pango-querymodules.1 +106 -0
  523. data/vendor/local/share/man/man1/pango-view.1 +1 -0
  524. data/vendor/local/share/man/man1/pkgdata.1 +258 -0
  525. data/vendor/local/share/man/man1/uconv.1 +443 -0
  526. data/vendor/local/share/man/man8/genccode.8 +106 -0
  527. data/vendor/local/share/man/man8/gencmn.8 +129 -0
  528. data/vendor/local/share/man/man8/gensprep.8 +102 -0
  529. data/vendor/local/share/man/man8/icupkg.8 +204 -0
  530. metadata +599 -0
@@ -0,0 +1,1018 @@
1
+ /*
2
+ ******************************************************************************
3
+ *
4
+ * Copyright (C) 1998-2014, International Business Machines
5
+ * Corporation and others. All Rights Reserved.
6
+ *
7
+ ******************************************************************************
8
+ *
9
+ * File ustdio.h
10
+ *
11
+ * Modification History:
12
+ *
13
+ * Date Name Description
14
+ * 10/16/98 stephen Creation.
15
+ * 11/06/98 stephen Modified per code review.
16
+ * 03/12/99 stephen Modified for new C API.
17
+ * 07/19/99 stephen Minor doc update.
18
+ * 02/01/01 george Added sprintf & sscanf with all of its variants
19
+ ******************************************************************************
20
+ */
21
+
22
+ #ifndef USTDIO_H
23
+ #define USTDIO_H
24
+
25
+ #include <stdio.h>
26
+ #include <stdarg.h>
27
+
28
+ #include "unicode/utypes.h"
29
+ #include "unicode/ucnv.h"
30
+ #include "unicode/utrans.h"
31
+ #include "unicode/localpointer.h"
32
+ #include "unicode/unum.h"
33
+
34
+ #if !UCONFIG_NO_CONVERSION
35
+
36
+ /*
37
+ TODO
38
+ The following is a small list as to what is currently wrong/suggestions for
39
+ ustdio.
40
+
41
+ * Make sure that * in the scanf format specification works for all formats.
42
+ * Each UFILE takes up at least 2KB.
43
+ Look into adding setvbuf() for configurable buffers.
44
+ * This library does buffering. The OS should do this for us already. Check on
45
+ this, and remove it from this library, if this is the case. Double buffering
46
+ wastes a lot of time and space.
47
+ * Test stdin and stdout with the u_f* functions
48
+ * Testing should be done for reading and writing multi-byte encodings,
49
+ and make sure that a character that is contained across buffer boundries
50
+ works even for incomplete characters.
51
+ * Make sure that the last character is flushed when the file/string is closed.
52
+ * snprintf should follow the C99 standard for the return value, which is
53
+ return the number of characters (excluding the trailing '\0')
54
+ which would have been written to the destination string regardless
55
+ of available space. This is like pre-flighting.
56
+ * Everything that uses %s should do what operator>> does for UnicodeString.
57
+ It should convert one byte at a time, and once a character is
58
+ converted then check to see if it's whitespace or in the scanset.
59
+ If it's whitespace or in the scanset, put all the bytes back (do nothing
60
+ for sprintf/sscanf).
61
+ * If bad string data is encountered, make sure that the function fails
62
+ without memory leaks and the unconvertable characters are valid
63
+ substitution or are escaped characters.
64
+ * u_fungetc() can't unget a character when it's at the beginning of the
65
+ internal conversion buffer. For example, read the buffer size # of
66
+ characters, and then ungetc to get the previous character that was
67
+ at the end of the last buffer.
68
+ * u_fflush() and u_fclose should return an int32_t like C99 functions.
69
+ 0 is returned if the operation was successful and EOF otherwise.
70
+ * u_fsettransliterator does not support U_READ side of transliteration.
71
+ * The format specifier should limit the size of a format or honor it in
72
+ order to prevent buffer overruns. (e.g. %256.256d).
73
+ * u_fread and u_fwrite don't exist. They're needed for reading and writing
74
+ data structures without any conversion.
75
+ * u_file_read and u_file_write are used for writing strings. u_fgets and
76
+ u_fputs or u_fread and u_fwrite should be used to do this.
77
+ * The width parameter for all scanf formats, including scanset, needs
78
+ better testing. This prevents buffer overflows.
79
+ * Figure out what is suppose to happen when a codepage is changed midstream.
80
+ Maybe a flush or a rewind are good enough.
81
+ * Make sure that a UFile opened with "rw" can be used after using
82
+ u_fflush with a u_frewind.
83
+ * scanf(%i) should detect what type of number to use.
84
+ * Add more testing of the alternate format, %#
85
+ * Look at newline handling of fputs/puts
86
+ * Think more about codeunit/codepoint error handling/support in %S,%s,%C,%c,%[]
87
+ * Complete the file documentation with proper doxygen formatting.
88
+ See http://oss.software.ibm.com/pipermail/icu/2003-July/005647.html
89
+ */
90
+
91
+ /**
92
+ * \file
93
+ * \brief C API: Unicode stdio-like API
94
+ *
95
+ * <h2>Unicode stdio-like C API</h2>
96
+ *
97
+ * <p>This API provides an stdio-like API wrapper around ICU's other
98
+ * formatting and parsing APIs. It is meant to ease the transition of adding
99
+ * Unicode support to a preexisting applications using stdio. The following
100
+ * is a small list of noticable differences between stdio and ICU I/O's
101
+ * ustdio implementation.</p>
102
+ *
103
+ * <ul>
104
+ * <li>Locale specific formatting and parsing is only done with file IO.</li>
105
+ * <li>u_fstropen can be used to simulate file IO with strings.
106
+ * This is similar to the iostream API, and it allows locale specific
107
+ * formatting and parsing to be used.</li>
108
+ * <li>This API provides uniform formatting and parsing behavior between
109
+ * platforms (unlike the standard stdio implementations found on various
110
+ * platforms).</li>
111
+ * <li>This API is better suited for text data handling than binary data
112
+ * handling when compared to the typical stdio implementation.</li>
113
+ * <li>You can specify a Transliterator while using the file IO.</li>
114
+ * <li>You can specify a file's codepage separately from the default
115
+ * system codepage.</li>
116
+ * </ul>
117
+ *
118
+ * <h2>Formatting and Parsing Specification</h2>
119
+ *
120
+ * General printf format:<br>
121
+ * %[format modifier][width][.precision][type modifier][format]
122
+ *
123
+ * General scanf format:<br>
124
+ * %[*][format modifier][width][type modifier][format]
125
+ *
126
+ <table cellspacing="3">
127
+ <tr><td>format</td><td>default<br>printf<br>type</td><td>default<br>scanf<br>type</td><td>description</td></tr>
128
+ <tr><td>%E</td><td>double</td><td>float</td><td>Scientific with an uppercase exponent</td></tr>
129
+ <tr><td>%e</td><td>double</td><td>float</td><td>Scientific with a lowercase exponent</td></tr>
130
+ <tr><td>%G</td><td>double</td><td>float</td><td>Use %E or %f for best format</td></tr>
131
+ <tr><td>%g</td><td>double</td><td>float</td><td>Use %e or %f for best format</td></tr>
132
+ <tr><td>%f</td><td>double</td><td>float</td><td>Simple floating point without the exponent</td></tr>
133
+ <tr><td>%X</td><td>int32_t</td><td>int32_t</td><td>ustdio special uppercase hex radix formatting</td></tr>
134
+ <tr><td>%x</td><td>int32_t</td><td>int32_t</td><td>ustdio special lowercase hex radix formatting</td></tr>
135
+ <tr><td>%d</td><td>int32_t</td><td>int32_t</td><td>Decimal format</td></tr>
136
+ <tr><td>%i</td><td>int32_t</td><td>int32_t</td><td>Same as %d</td></tr>
137
+ <tr><td>%n</td><td>int32_t</td><td>int32_t</td><td>count (write the number of UTF-16 codeunits read/written)</td></tr>
138
+ <tr><td>%o</td><td>int32_t</td><td>int32_t</td><td>ustdio special octal radix formatting</td></tr>
139
+ <tr><td>%u</td><td>uint32_t</td><td>uint32_t</td><td>Decimal format</td></tr>
140
+ <tr><td>%p</td><td>void *</td><td>void *</td><td>Prints the pointer value</td></tr>
141
+ <tr><td>%s</td><td>char *</td><td>char *</td><td>Use default converter or specified converter from fopen</td></tr>
142
+ <tr><td>%c</td><td>char</td><td>char</td><td>Use default converter or specified converter from fopen<br>
143
+ When width is specified for scanf, this acts like a non-NULL-terminated char * string.<br>
144
+ By default, only one char is written.</td></tr>
145
+ <tr><td>%S</td><td>UChar *</td><td>UChar *</td><td>Null terminated UTF-16 string</td></tr>
146
+ <tr><td>%C</td><td>UChar</td><td>UChar</td><td>16-bit Unicode code unit<br>
147
+ When width is specified for scanf, this acts like a non-NULL-terminated UChar * string<br>
148
+ By default, only one codepoint is written.</td></tr>
149
+ <tr><td>%[]</td><td>&nbsp;</td><td>UChar *</td><td>Null terminated UTF-16 string which contains the filtered set of characters specified by the UnicodeSet</td></tr>
150
+ <tr><td>%%</td><td>&nbsp;</td><td>&nbsp;</td><td>Show a percent sign</td></tr>
151
+ </table>
152
+
153
+ Format modifiers
154
+ <table>
155
+ <tr><td>modifier</td><td>formats</td><td>type</td><td>comments</td></tr>
156
+ <tr><td>%h</td><td>%d, %i, %o, %x</td><td>int16_t</td><td>short format</td></tr>
157
+ <tr><td>%h</td><td>%u</td><td>uint16_t</td><td>short format</td></tr>
158
+ <tr><td>%h</td><td>c</td><td>char</td><td><b>(Unimplemented)</b> Use invariant converter</td></tr>
159
+ <tr><td>%h</td><td>s</td><td>char *</td><td><b>(Unimplemented)</b> Use invariant converter</td></tr>
160
+ <tr><td>%h</td><td>C</td><td>char</td><td><b>(Unimplemented)</b> 8-bit Unicode code unit</td></tr>
161
+ <tr><td>%h</td><td>S</td><td>char *</td><td><b>(Unimplemented)</b> Null terminated UTF-8 string</td></tr>
162
+ <tr><td>%l</td><td>%d, %i, %o, %x</td><td>int32_t</td><td>long format (no effect)</td></tr>
163
+ <tr><td>%l</td><td>%u</td><td>uint32_t</td><td>long format (no effect)</td></tr>
164
+ <tr><td>%l</td><td>c</td><td>N/A</td><td><b>(Unimplemented)</b> Reserved for future implementation</td></tr>
165
+ <tr><td>%l</td><td>s</td><td>N/A</td><td><b>(Unimplemented)</b> Reserved for future implementation</td></tr>
166
+ <tr><td>%l</td><td>C</td><td>UChar32</td><td><b>(Unimplemented)</b> 32-bit Unicode code unit</td></tr>
167
+ <tr><td>%l</td><td>S</td><td>UChar32 *</td><td><b>(Unimplemented)</b> Null terminated UTF-32 string</td></tr>
168
+ <tr><td>%ll</td><td>%d, %i, %o, %x</td><td>int64_t</td><td>long long format</td></tr>
169
+ <tr><td>%ll</td><td>%u</td><td>uint64_t</td><td><b>(Unimplemented)</b> long long format</td></tr>
170
+ <tr><td>%-</td><td><i>all</i></td><td>N/A</td><td>Left justify</td></tr>
171
+ <tr><td>%+</td><td>%d, %i, %o, %x, %e, %f, %g, %E, %G</td><td>N/A</td><td>Always show the plus or minus sign. Needs data for plus sign.</td></tr>
172
+ <tr><td>% </td><td>%d, %i, %o, %x, %e, %f, %g, %E, %G</td><td>N/A</td><td>Instead of a "+" output a blank character for positive numbers.</td></tr>
173
+ <tr><td>%#</td><td>%d, %i, %o, %x, %e, %f, %g, %E, %G</td><td>N/A</td><td>Precede octal value with 0, hex with 0x and show the
174
+ decimal point for floats.</td></tr>
175
+ <tr><td>%<i>n</i></td><td><i>all</i></td><td>N/A</td><td>Width of input/output. num is an actual number from 0 to
176
+ some large number.</td></tr>
177
+ <tr><td>%.<i>n</i></td><td>%e, %f, %g, %E, %F, %G</td><td>N/A</td><td>Significant digits precision. num is an actual number from
178
+ 0 to some large number.<br>If * is used in printf, then the precision is passed in as an argument before the number to be formatted.</td></tr>
179
+ </table>
180
+
181
+ printf modifier
182
+ %* int32_t Next argument after this one specifies the width
183
+
184
+ scanf modifier
185
+ %* N/A This field is scanned, but not stored
186
+
187
+ <p>If you are using this C API instead of the ustream.h API for C++,
188
+ you can use one of the following u_fprintf examples to display a UnicodeString.</p>
189
+
190
+ <pre><code>
191
+ UFILE *out = u_finit(stdout, NULL, NULL);
192
+ UnicodeString string1("string 1");
193
+ UnicodeString string2("string 2");
194
+ u_fprintf(out, "%S\n", string1.getTerminatedBuffer());
195
+ u_fprintf(out, "%.*S\n", string2.length(), string2.getBuffer());
196
+ u_fclose(out);
197
+ </code></pre>
198
+
199
+ */
200
+
201
+
202
+ /**
203
+ * When an end of file is encountered, this value can be returned.
204
+ * @see u_fgetc
205
+ * @stable 3.0
206
+ */
207
+ #define U_EOF 0xFFFF
208
+
209
+ /** Forward declaration of a Unicode-aware file @stable 3.0 */
210
+ typedef struct UFILE UFILE;
211
+
212
+ /**
213
+ * Enum for which direction of stream a transliterator applies to.
214
+ * @see u_fsettransliterator
215
+ * @stable ICU 3.0
216
+ */
217
+ typedef enum {
218
+ U_READ = 1,
219
+ U_WRITE = 2,
220
+ U_READWRITE =3 /* == (U_READ | U_WRITE) */
221
+ } UFileDirection;
222
+
223
+ /**
224
+ * Open a UFILE.
225
+ * A UFILE is a wrapper around a FILE* that is locale and codepage aware.
226
+ * That is, data written to a UFILE will be formatted using the conventions
227
+ * specified by that UFILE's Locale; this data will be in the character set
228
+ * specified by that UFILE's codepage.
229
+ * @param filename The name of the file to open.
230
+ * @param perm The read/write permission for the UFILE; one of "r", "w", "rw"
231
+ * @param locale The locale whose conventions will be used to format
232
+ * and parse output. If this parameter is NULL, the default locale will
233
+ * be used.
234
+ * @param codepage The codepage in which data will be written to and
235
+ * read from the file. If this paramter is NULL the system default codepage
236
+ * will be used.
237
+ * @return A new UFILE, or NULL if an error occurred.
238
+ * @stable ICU 3.0
239
+ */
240
+ U_STABLE UFILE* U_EXPORT2
241
+ u_fopen(const char *filename,
242
+ const char *perm,
243
+ const char *locale,
244
+ const char *codepage);
245
+
246
+ #ifndef U_HIDE_DRAFT_API
247
+ /**
248
+ * Open a UFILE with a UChar* filename
249
+ * A UFILE is a wrapper around a FILE* that is locale and codepage aware.
250
+ * That is, data written to a UFILE will be formatted using the conventions
251
+ * specified by that UFILE's Locale; this data will be in the character set
252
+ * specified by that UFILE's codepage.
253
+ * @param filename The name of the file to open.
254
+ * @param perm The read/write permission for the UFILE; one of "r", "w", "rw"
255
+ * @param locale The locale whose conventions will be used to format
256
+ * and parse output. If this parameter is NULL, the default locale will
257
+ * be used.
258
+ * @param codepage The codepage in which data will be written to and
259
+ * read from the file. If this paramter is NULL the system default codepage
260
+ * will be used.
261
+ * @return A new UFILE, or NULL if an error occurred.
262
+ * @draft ICU 54
263
+ */
264
+ U_DRAFT UFILE* U_EXPORT2
265
+ u_fopen_u(const UChar *filename,
266
+ const char *perm,
267
+ const char *locale,
268
+ const char *codepage);
269
+ #endif /* U_HIDE_DRAFT_API */
270
+
271
+ /**
272
+ * Open a UFILE on top of an existing FILE* stream. The FILE* stream
273
+ * ownership remains with the caller. To have the UFILE take over
274
+ * ownership and responsibility for the FILE* stream, use the
275
+ * function u_fadopt.
276
+ * @param f The FILE* to which this UFILE will attach and use.
277
+ * @param locale The locale whose conventions will be used to format
278
+ * and parse output. If this parameter is NULL, the default locale will
279
+ * be used.
280
+ * @param codepage The codepage in which data will be written to and
281
+ * read from the file. If this paramter is NULL, data will be written and
282
+ * read using the default codepage for <TT>locale</TT>, unless <TT>locale</TT>
283
+ * is NULL, in which case the system default codepage will be used.
284
+ * @return A new UFILE, or NULL if an error occurred.
285
+ * @stable ICU 3.0
286
+ */
287
+ U_STABLE UFILE* U_EXPORT2
288
+ u_finit(FILE *f,
289
+ const char *locale,
290
+ const char *codepage);
291
+
292
+ /**
293
+ * Open a UFILE on top of an existing FILE* stream. The FILE* stream
294
+ * ownership is transferred to the new UFILE. It will be closed when the
295
+ * UFILE is closed.
296
+ * @param f The FILE* which this UFILE will take ownership of.
297
+ * @param locale The locale whose conventions will be used to format
298
+ * and parse output. If this parameter is NULL, the default locale will
299
+ * be used.
300
+ * @param codepage The codepage in which data will be written to and
301
+ * read from the file. If this paramter is NULL, data will be written and
302
+ * read using the default codepage for <TT>locale</TT>, unless <TT>locale</TT>
303
+ * is NULL, in which case the system default codepage will be used.
304
+ * @return A new UFILE, or NULL if an error occurred. If an error occurs
305
+ * the ownership of the FILE* stream remains with the caller.
306
+ * @stable ICU 4.4
307
+ */
308
+ U_STABLE UFILE* U_EXPORT2
309
+ u_fadopt(FILE *f,
310
+ const char *locale,
311
+ const char *codepage);
312
+
313
+ /**
314
+ * Create a UFILE that can be used for localized formatting or parsing.
315
+ * The u_sprintf and u_sscanf functions do not read or write numbers for a
316
+ * specific locale. The ustdio.h file functions can be used on this UFILE.
317
+ * The string is usable once u_fclose or u_fflush has been called on the
318
+ * returned UFILE.
319
+ * @param stringBuf The string used for reading or writing.
320
+ * @param capacity The number of code units available for use in stringBuf
321
+ * @param locale The locale whose conventions will be used to format
322
+ * and parse output. If this parameter is NULL, the default locale will
323
+ * be used.
324
+ * @return A new UFILE, or NULL if an error occurred.
325
+ * @stable ICU 3.0
326
+ */
327
+ U_STABLE UFILE* U_EXPORT2
328
+ u_fstropen(UChar *stringBuf,
329
+ int32_t capacity,
330
+ const char *locale);
331
+
332
+ /**
333
+ * Close a UFILE. Implies u_fflush first.
334
+ * @param file The UFILE to close.
335
+ * @stable ICU 3.0
336
+ * @see u_fflush
337
+ */
338
+ U_STABLE void U_EXPORT2
339
+ u_fclose(UFILE *file);
340
+
341
+ #if U_SHOW_CPLUSPLUS_API
342
+
343
+ U_NAMESPACE_BEGIN
344
+
345
+ /**
346
+ * \class LocalUFILEPointer
347
+ * "Smart pointer" class, closes a UFILE via u_fclose().
348
+ * For most methods see the LocalPointerBase base class.
349
+ *
350
+ * @see LocalPointerBase
351
+ * @see LocalPointer
352
+ * @stable ICU 4.4
353
+ */
354
+ U_DEFINE_LOCAL_OPEN_POINTER(LocalUFILEPointer, UFILE, u_fclose);
355
+
356
+ U_NAMESPACE_END
357
+
358
+ #endif
359
+
360
+ /**
361
+ * Tests if the UFILE is at the end of the file stream.
362
+ * @param f The UFILE from which to read.
363
+ * @return Returns TRUE after the first read operation that attempts to
364
+ * read past the end of the file. It returns FALSE if the current position is
365
+ * not end of file.
366
+ * @stable ICU 3.0
367
+ */
368
+ U_STABLE UBool U_EXPORT2
369
+ u_feof(UFILE *f);
370
+
371
+ /**
372
+ * Flush output of a UFILE. Implies a flush of
373
+ * converter/transliterator state. (That is, a logical break is
374
+ * made in the output stream - for example if a different type of
375
+ * output is desired.) The underlying OS level file is also flushed.
376
+ * Note that for a stateful encoding, the converter may write additional
377
+ * bytes to return the stream to default state.
378
+ * @param file The UFILE to flush.
379
+ * @stable ICU 3.0
380
+ */
381
+ U_STABLE void U_EXPORT2
382
+ u_fflush(UFILE *file);
383
+
384
+ /**
385
+ * Rewind the file pointer to the beginning of the file.
386
+ * @param file The UFILE to rewind.
387
+ * @stable ICU 3.0
388
+ */
389
+ U_STABLE void
390
+ u_frewind(UFILE *file);
391
+
392
+ /**
393
+ * Get the FILE* associated with a UFILE.
394
+ * @param f The UFILE
395
+ * @return A FILE*, owned by the UFILE. (The FILE <EM>must not</EM> be modified or closed)
396
+ * @stable ICU 3.0
397
+ */
398
+ U_STABLE FILE* U_EXPORT2
399
+ u_fgetfile(UFILE *f);
400
+
401
+ #if !UCONFIG_NO_FORMATTING
402
+
403
+ /**
404
+ * Get the locale whose conventions are used to format and parse output.
405
+ * This is the same locale passed in the preceding call to<TT>u_fsetlocale</TT>
406
+ * or <TT>u_fopen</TT>.
407
+ * @param file The UFILE to set.
408
+ * @return The locale whose conventions are used to format and parse output.
409
+ * @stable ICU 3.0
410
+ */
411
+ U_STABLE const char* U_EXPORT2
412
+ u_fgetlocale(UFILE *file);
413
+
414
+ /**
415
+ * Set the locale whose conventions will be used to format and parse output.
416
+ * @param locale The locale whose conventions will be used to format
417
+ * and parse output.
418
+ * @param file The UFILE to query.
419
+ * @return NULL if successful, otherwise a negative number.
420
+ * @stable ICU 3.0
421
+ */
422
+ U_STABLE int32_t U_EXPORT2
423
+ u_fsetlocale(UFILE *file,
424
+ const char *locale);
425
+
426
+ #endif
427
+
428
+ /**
429
+ * Get the codepage in which data is written to and read from the UFILE.
430
+ * This is the same codepage passed in the preceding call to
431
+ * <TT>u_fsetcodepage</TT> or <TT>u_fopen</TT>.
432
+ * @param file The UFILE to query.
433
+ * @return The codepage in which data is written to and read from the UFILE,
434
+ * or NULL if an error occurred.
435
+ * @stable ICU 3.0
436
+ */
437
+ U_STABLE const char* U_EXPORT2
438
+ u_fgetcodepage(UFILE *file);
439
+
440
+ /**
441
+ * Set the codepage in which data will be written to and read from the UFILE.
442
+ * All Unicode data written to the UFILE will be converted to this codepage
443
+ * before it is written to the underlying FILE*. It it generally a bad idea to
444
+ * mix codepages within a file. This should only be called right
445
+ * after opening the <TT>UFile</TT>, or after calling <TT>u_frewind</TT>.
446
+ * @param codepage The codepage in which data will be written to
447
+ * and read from the file. For example <TT>"latin-1"</TT> or <TT>"ibm-943"</TT>.
448
+ * A value of NULL means the default codepage for the UFILE's current
449
+ * locale will be used.
450
+ * @param file The UFILE to set.
451
+ * @return 0 if successful, otherwise a negative number.
452
+ * @see u_frewind
453
+ * @stable ICU 3.0
454
+ */
455
+ U_STABLE int32_t U_EXPORT2
456
+ u_fsetcodepage(const char *codepage,
457
+ UFILE *file);
458
+
459
+
460
+ /**
461
+ * Returns an alias to the converter being used for this file.
462
+ * @param f The UFILE to get the value from
463
+ * @return alias to the converter (The converter <EM>must not</EM> be modified or closed)
464
+ * @stable ICU 3.0
465
+ */
466
+ U_STABLE UConverter* U_EXPORT2 u_fgetConverter(UFILE *f);
467
+
468
+ #if !UCONFIG_NO_FORMATTING
469
+ /**
470
+ * Returns an alias to the number formatter being used for this file.
471
+ * @param f The UFILE to get the value from
472
+ * @return alias to the number formatter (The formatter <EM>must not</EM> be modified or closed)
473
+ * @stable ICU 51
474
+ */
475
+ U_STABLE const UNumberFormat* U_EXPORT2 u_fgetNumberFormat(UFILE *f);
476
+
477
+ /* Output functions */
478
+
479
+ /**
480
+ * Write formatted data to <TT>stdout</TT>.
481
+ * @param patternSpecification A pattern specifying how <TT>u_printf</TT> will
482
+ * interpret the variable arguments received and format the data.
483
+ * @return The number of Unicode characters written to <TT>stdout</TT>
484
+ * @stable ICU 49
485
+ */
486
+ U_STABLE int32_t U_EXPORT2
487
+ u_printf(const char *patternSpecification,
488
+ ... );
489
+
490
+ /**
491
+ * Write formatted data to a UFILE.
492
+ * @param f The UFILE to which to write.
493
+ * @param patternSpecification A pattern specifying how <TT>u_fprintf</TT> will
494
+ * interpret the variable arguments received and format the data.
495
+ * @return The number of Unicode characters written to <TT>f</TT>.
496
+ * @stable ICU 3.0
497
+ */
498
+ U_STABLE int32_t U_EXPORT2
499
+ u_fprintf(UFILE *f,
500
+ const char *patternSpecification,
501
+ ... );
502
+
503
+ /**
504
+ * Write formatted data to a UFILE.
505
+ * This is identical to <TT>u_fprintf</TT>, except that it will
506
+ * <EM>not</EM> call <TT>va_start</TT> and <TT>va_end</TT>.
507
+ * @param f The UFILE to which to write.
508
+ * @param patternSpecification A pattern specifying how <TT>u_fprintf</TT> will
509
+ * interpret the variable arguments received and format the data.
510
+ * @param ap The argument list to use.
511
+ * @return The number of Unicode characters written to <TT>f</TT>.
512
+ * @see u_fprintf
513
+ * @stable ICU 3.0
514
+ */
515
+ U_STABLE int32_t U_EXPORT2
516
+ u_vfprintf(UFILE *f,
517
+ const char *patternSpecification,
518
+ va_list ap);
519
+
520
+ /**
521
+ * Write formatted data to <TT>stdout</TT>.
522
+ * @param patternSpecification A pattern specifying how <TT>u_printf_u</TT> will
523
+ * interpret the variable arguments received and format the data.
524
+ * @return The number of Unicode characters written to <TT>stdout</TT>
525
+ * @stable ICU 49
526
+ */
527
+ U_STABLE int32_t U_EXPORT2
528
+ u_printf_u(const UChar *patternSpecification,
529
+ ... );
530
+
531
+ /**
532
+ * Get a UFILE for <TT>stdout</TT>.
533
+ * @return UFILE that writes to <TT>stdout</TT>
534
+ * @stable ICU 49
535
+ */
536
+ U_STABLE UFILE * U_EXPORT2
537
+ u_get_stdout(void);
538
+
539
+ /**
540
+ * Write formatted data to a UFILE.
541
+ * @param f The UFILE to which to write.
542
+ * @param patternSpecification A pattern specifying how <TT>u_fprintf</TT> will
543
+ * interpret the variable arguments received and format the data.
544
+ * @return The number of Unicode characters written to <TT>f</TT>.
545
+ * @stable ICU 3.0
546
+ */
547
+ U_STABLE int32_t U_EXPORT2
548
+ u_fprintf_u(UFILE *f,
549
+ const UChar *patternSpecification,
550
+ ... );
551
+
552
+ /**
553
+ * Write formatted data to a UFILE.
554
+ * This is identical to <TT>u_fprintf_u</TT>, except that it will
555
+ * <EM>not</EM> call <TT>va_start</TT> and <TT>va_end</TT>.
556
+ * @param f The UFILE to which to write.
557
+ * @param patternSpecification A pattern specifying how <TT>u_fprintf</TT> will
558
+ * interpret the variable arguments received and format the data.
559
+ * @param ap The argument list to use.
560
+ * @return The number of Unicode characters written to <TT>f</TT>.
561
+ * @see u_fprintf_u
562
+ * @stable ICU 3.0
563
+ */
564
+ U_STABLE int32_t U_EXPORT2
565
+ u_vfprintf_u(UFILE *f,
566
+ const UChar *patternSpecification,
567
+ va_list ap);
568
+ #endif
569
+ /**
570
+ * Write a Unicode to a UFILE. The null (U+0000) terminated UChar*
571
+ * <TT>s</TT> will be written to <TT>f</TT>, excluding the NULL terminator.
572
+ * A newline will be added to <TT>f</TT>.
573
+ * @param s The UChar* to write.
574
+ * @param f The UFILE to which to write.
575
+ * @return A non-negative number if successful, EOF otherwise.
576
+ * @see u_file_write
577
+ * @stable ICU 3.0
578
+ */
579
+ U_STABLE int32_t U_EXPORT2
580
+ u_fputs(const UChar *s,
581
+ UFILE *f);
582
+
583
+ /**
584
+ * Write a UChar to a UFILE.
585
+ * @param uc The UChar to write.
586
+ * @param f The UFILE to which to write.
587
+ * @return The character written if successful, EOF otherwise.
588
+ * @stable ICU 3.0
589
+ */
590
+ U_STABLE UChar32 U_EXPORT2
591
+ u_fputc(UChar32 uc,
592
+ UFILE *f);
593
+
594
+ /**
595
+ * Write Unicode to a UFILE.
596
+ * The ustring passed in will be converted to the UFILE's underlying
597
+ * codepage before it is written.
598
+ * @param ustring A pointer to the Unicode data to write.
599
+ * @param count The number of Unicode characters to write
600
+ * @param f The UFILE to which to write.
601
+ * @return The number of Unicode characters written.
602
+ * @see u_fputs
603
+ * @stable ICU 3.0
604
+ */
605
+ U_STABLE int32_t U_EXPORT2
606
+ u_file_write(const UChar *ustring,
607
+ int32_t count,
608
+ UFILE *f);
609
+
610
+
611
+ /* Input functions */
612
+ #if !UCONFIG_NO_FORMATTING
613
+
614
+ /**
615
+ * Read formatted data from a UFILE.
616
+ * @param f The UFILE from which to read.
617
+ * @param patternSpecification A pattern specifying how <TT>u_fscanf</TT> will
618
+ * interpret the variable arguments received and parse the data.
619
+ * @return The number of items successfully converted and assigned, or EOF
620
+ * if an error occurred.
621
+ * @stable ICU 3.0
622
+ */
623
+ U_STABLE int32_t U_EXPORT2
624
+ u_fscanf(UFILE *f,
625
+ const char *patternSpecification,
626
+ ... );
627
+
628
+ /**
629
+ * Read formatted data from a UFILE.
630
+ * This is identical to <TT>u_fscanf</TT>, except that it will
631
+ * <EM>not</EM> call <TT>va_start</TT> and <TT>va_end</TT>.
632
+ * @param f The UFILE from which to read.
633
+ * @param patternSpecification A pattern specifying how <TT>u_fscanf</TT> will
634
+ * interpret the variable arguments received and parse the data.
635
+ * @param ap The argument list to use.
636
+ * @return The number of items successfully converted and assigned, or EOF
637
+ * if an error occurred.
638
+ * @see u_fscanf
639
+ * @stable ICU 3.0
640
+ */
641
+ U_STABLE int32_t U_EXPORT2
642
+ u_vfscanf(UFILE *f,
643
+ const char *patternSpecification,
644
+ va_list ap);
645
+
646
+ /**
647
+ * Read formatted data from a UFILE.
648
+ * @param f The UFILE from which to read.
649
+ * @param patternSpecification A pattern specifying how <TT>u_fscanf</TT> will
650
+ * interpret the variable arguments received and parse the data.
651
+ * @return The number of items successfully converted and assigned, or EOF
652
+ * if an error occurred.
653
+ * @stable ICU 3.0
654
+ */
655
+ U_STABLE int32_t U_EXPORT2
656
+ u_fscanf_u(UFILE *f,
657
+ const UChar *patternSpecification,
658
+ ... );
659
+
660
+ /**
661
+ * Read formatted data from a UFILE.
662
+ * This is identical to <TT>u_fscanf_u</TT>, except that it will
663
+ * <EM>not</EM> call <TT>va_start</TT> and <TT>va_end</TT>.
664
+ * @param f The UFILE from which to read.
665
+ * @param patternSpecification A pattern specifying how <TT>u_fscanf</TT> will
666
+ * interpret the variable arguments received and parse the data.
667
+ * @param ap The argument list to use.
668
+ * @return The number of items successfully converted and assigned, or EOF
669
+ * if an error occurred.
670
+ * @see u_fscanf_u
671
+ * @stable ICU 3.0
672
+ */
673
+ U_STABLE int32_t U_EXPORT2
674
+ u_vfscanf_u(UFILE *f,
675
+ const UChar *patternSpecification,
676
+ va_list ap);
677
+ #endif
678
+
679
+ /**
680
+ * Read one line of text into a UChar* string from a UFILE. The newline
681
+ * at the end of the line is read into the string. The string is always
682
+ * null terminated
683
+ * @param f The UFILE from which to read.
684
+ * @param n The maximum number of characters - 1 to read.
685
+ * @param s The UChar* to receive the read data. Characters will be
686
+ * stored successively in <TT>s</TT> until a newline or EOF is
687
+ * reached. A null character (U+0000) will be appended to <TT>s</TT>.
688
+ * @return A pointer to <TT>s</TT>, or NULL if no characters were available.
689
+ * @stable ICU 3.0
690
+ */
691
+ U_STABLE UChar* U_EXPORT2
692
+ u_fgets(UChar *s,
693
+ int32_t n,
694
+ UFILE *f);
695
+
696
+ /**
697
+ * Read a UChar from a UFILE. It is recommended that <TT>u_fgetcx</TT>
698
+ * used instead for proper parsing functions, but sometimes reading
699
+ * code units is needed instead of codepoints.
700
+ *
701
+ * @param f The UFILE from which to read.
702
+ * @return The UChar value read, or U+FFFF if no character was available.
703
+ * @stable ICU 3.0
704
+ */
705
+ U_STABLE UChar U_EXPORT2
706
+ u_fgetc(UFILE *f);
707
+
708
+ /**
709
+ * Read a UChar32 from a UFILE.
710
+ *
711
+ * @param f The UFILE from which to read.
712
+ * @return The UChar32 value read, or U_EOF if no character was
713
+ * available, or U+FFFFFFFF if an ill-formed character was
714
+ * encountered.
715
+ * @see u_unescape()
716
+ * @stable ICU 3.0
717
+ */
718
+ U_STABLE UChar32 U_EXPORT2
719
+ u_fgetcx(UFILE *f);
720
+
721
+ /**
722
+ * Unget a UChar from a UFILE.
723
+ * If this function is not the first to operate on <TT>f</TT> after a call
724
+ * to <TT>u_fgetc</TT>, the results are undefined.
725
+ * If this function is passed a character that was not recieved from the
726
+ * previous <TT>u_fgetc</TT> or <TT>u_fgetcx</TT> call, the results are undefined.
727
+ * @param c The UChar to put back on the stream.
728
+ * @param f The UFILE to receive <TT>c</TT>.
729
+ * @return The UChar32 value put back if successful, U_EOF otherwise.
730
+ * @stable ICU 3.0
731
+ */
732
+ U_STABLE UChar32 U_EXPORT2
733
+ u_fungetc(UChar32 c,
734
+ UFILE *f);
735
+
736
+ /**
737
+ * Read Unicode from a UFILE.
738
+ * Bytes will be converted from the UFILE's underlying codepage, with
739
+ * subsequent conversion to Unicode. The data will not be NULL terminated.
740
+ * @param chars A pointer to receive the Unicode data.
741
+ * @param count The number of Unicode characters to read.
742
+ * @param f The UFILE from which to read.
743
+ * @return The number of Unicode characters read.
744
+ * @stable ICU 3.0
745
+ */
746
+ U_STABLE int32_t U_EXPORT2
747
+ u_file_read(UChar *chars,
748
+ int32_t count,
749
+ UFILE *f);
750
+
751
+ #if !UCONFIG_NO_TRANSLITERATION
752
+
753
+ /**
754
+ * Set a transliterator on the UFILE. The transliterator will be owned by the
755
+ * UFILE.
756
+ * @param file The UFILE to set transliteration on
757
+ * @param adopt The UTransliterator to set. Can be NULL, which will
758
+ * mean that no transliteration is used.
759
+ * @param direction either U_READ, U_WRITE, or U_READWRITE - sets
760
+ * which direction the transliterator is to be applied to. If
761
+ * U_READWRITE, the "Read" transliteration will be in the inverse
762
+ * direction.
763
+ * @param status ICU error code.
764
+ * @return The previously set transliterator, owned by the
765
+ * caller. If U_READWRITE is specified, only the WRITE transliterator
766
+ * is returned. In most cases, the caller should call utrans_close()
767
+ * on the result of this function.
768
+ * @stable ICU 3.0
769
+ */
770
+ U_STABLE UTransliterator* U_EXPORT2
771
+ u_fsettransliterator(UFILE *file, UFileDirection direction,
772
+ UTransliterator *adopt, UErrorCode *status);
773
+
774
+ #endif
775
+
776
+
777
+ /* Output string functions */
778
+ #if !UCONFIG_NO_FORMATTING
779
+
780
+
781
+ /**
782
+ * Write formatted data to a Unicode string.
783
+ *
784
+ * @param buffer The Unicode String to which to write.
785
+ * @param patternSpecification A pattern specifying how <TT>u_sprintf</TT> will
786
+ * interpret the variable arguments received and format the data.
787
+ * @return The number of Unicode code units written to <TT>buffer</TT>. This
788
+ * does not include the terminating null character.
789
+ * @stable ICU 3.0
790
+ */
791
+ U_STABLE int32_t U_EXPORT2
792
+ u_sprintf(UChar *buffer,
793
+ const char *patternSpecification,
794
+ ... );
795
+
796
+ /**
797
+ * Write formatted data to a Unicode string. When the number of code units
798
+ * required to store the data exceeds <TT>count</TT>, then <TT>count</TT> code
799
+ * units of data are stored in <TT>buffer</TT> and a negative value is
800
+ * returned. When the number of code units required to store the data equals
801
+ * <TT>count</TT>, the string is not null terminated and <TT>count</TT> is
802
+ * returned.
803
+ *
804
+ * @param buffer The Unicode String to which to write.
805
+ * @param count The number of code units to read.
806
+ * @param patternSpecification A pattern specifying how <TT>u_sprintf</TT> will
807
+ * interpret the variable arguments received and format the data.
808
+ * @return The number of Unicode characters that would have been written to
809
+ * <TT>buffer</TT> had count been sufficiently large. This does not include
810
+ * the terminating null character.
811
+ * @stable ICU 3.0
812
+ */
813
+ U_STABLE int32_t U_EXPORT2
814
+ u_snprintf(UChar *buffer,
815
+ int32_t count,
816
+ const char *patternSpecification,
817
+ ... );
818
+
819
+ /**
820
+ * Write formatted data to a Unicode string.
821
+ * This is identical to <TT>u_sprintf</TT>, except that it will
822
+ * <EM>not</EM> call <TT>va_start</TT> and <TT>va_end</TT>.
823
+ *
824
+ * @param buffer The Unicode string to which to write.
825
+ * @param patternSpecification A pattern specifying how <TT>u_sprintf</TT> will
826
+ * interpret the variable arguments received and format the data.
827
+ * @param ap The argument list to use.
828
+ * @return The number of Unicode characters written to <TT>buffer</TT>.
829
+ * @see u_sprintf
830
+ * @stable ICU 3.0
831
+ */
832
+ U_STABLE int32_t U_EXPORT2
833
+ u_vsprintf(UChar *buffer,
834
+ const char *patternSpecification,
835
+ va_list ap);
836
+
837
+ /**
838
+ * Write formatted data to a Unicode string.
839
+ * This is identical to <TT>u_snprintf</TT>, except that it will
840
+ * <EM>not</EM> call <TT>va_start</TT> and <TT>va_end</TT>.<br><br>
841
+ * When the number of code units required to store the data exceeds
842
+ * <TT>count</TT>, then <TT>count</TT> code units of data are stored in
843
+ * <TT>buffer</TT> and a negative value is returned. When the number of code
844
+ * units required to store the data equals <TT>count</TT>, the string is not
845
+ * null terminated and <TT>count</TT> is returned.
846
+ *
847
+ * @param buffer The Unicode string to which to write.
848
+ * @param count The number of code units to read.
849
+ * @param patternSpecification A pattern specifying how <TT>u_sprintf</TT> will
850
+ * interpret the variable arguments received and format the data.
851
+ * @param ap The argument list to use.
852
+ * @return The number of Unicode characters that would have been written to
853
+ * <TT>buffer</TT> had count been sufficiently large.
854
+ * @see u_sprintf
855
+ * @stable ICU 3.0
856
+ */
857
+ U_STABLE int32_t U_EXPORT2
858
+ u_vsnprintf(UChar *buffer,
859
+ int32_t count,
860
+ const char *patternSpecification,
861
+ va_list ap);
862
+
863
+ /**
864
+ * Write formatted data to a Unicode string.
865
+ *
866
+ * @param buffer The Unicode string to which to write.
867
+ * @param patternSpecification A pattern specifying how <TT>u_sprintf</TT> will
868
+ * interpret the variable arguments received and format the data.
869
+ * @return The number of Unicode characters written to <TT>buffer</TT>.
870
+ * @stable ICU 3.0
871
+ */
872
+ U_STABLE int32_t U_EXPORT2
873
+ u_sprintf_u(UChar *buffer,
874
+ const UChar *patternSpecification,
875
+ ... );
876
+
877
+ /**
878
+ * Write formatted data to a Unicode string. When the number of code units
879
+ * required to store the data exceeds <TT>count</TT>, then <TT>count</TT> code
880
+ * units of data are stored in <TT>buffer</TT> and a negative value is
881
+ * returned. When the number of code units required to store the data equals
882
+ * <TT>count</TT>, the string is not null terminated and <TT>count</TT> is
883
+ * returned.
884
+ *
885
+ * @param buffer The Unicode string to which to write.
886
+ * @param count The number of code units to read.
887
+ * @param patternSpecification A pattern specifying how <TT>u_sprintf</TT> will
888
+ * interpret the variable arguments received and format the data.
889
+ * @return The number of Unicode characters that would have been written to
890
+ * <TT>buffer</TT> had count been sufficiently large.
891
+ * @stable ICU 3.0
892
+ */
893
+ U_STABLE int32_t U_EXPORT2
894
+ u_snprintf_u(UChar *buffer,
895
+ int32_t count,
896
+ const UChar *patternSpecification,
897
+ ... );
898
+
899
+ /**
900
+ * Write formatted data to a Unicode string.
901
+ * This is identical to <TT>u_sprintf_u</TT>, except that it will
902
+ * <EM>not</EM> call <TT>va_start</TT> and <TT>va_end</TT>.
903
+ *
904
+ * @param buffer The Unicode string to which to write.
905
+ * @param patternSpecification A pattern specifying how <TT>u_sprintf</TT> will
906
+ * interpret the variable arguments received and format the data.
907
+ * @param ap The argument list to use.
908
+ * @return The number of Unicode characters written to <TT>f</TT>.
909
+ * @see u_sprintf_u
910
+ * @stable ICU 3.0
911
+ */
912
+ U_STABLE int32_t U_EXPORT2
913
+ u_vsprintf_u(UChar *buffer,
914
+ const UChar *patternSpecification,
915
+ va_list ap);
916
+
917
+ /**
918
+ * Write formatted data to a Unicode string.
919
+ * This is identical to <TT>u_snprintf_u</TT>, except that it will
920
+ * <EM>not</EM> call <TT>va_start</TT> and <TT>va_end</TT>.
921
+ * When the number of code units required to store the data exceeds
922
+ * <TT>count</TT>, then <TT>count</TT> code units of data are stored in
923
+ * <TT>buffer</TT> and a negative value is returned. When the number of code
924
+ * units required to store the data equals <TT>count</TT>, the string is not
925
+ * null terminated and <TT>count</TT> is returned.
926
+ *
927
+ * @param buffer The Unicode string to which to write.
928
+ * @param count The number of code units to read.
929
+ * @param patternSpecification A pattern specifying how <TT>u_sprintf</TT> will
930
+ * interpret the variable arguments received and format the data.
931
+ * @param ap The argument list to use.
932
+ * @return The number of Unicode characters that would have been written to
933
+ * <TT>f</TT> had count been sufficiently large.
934
+ * @see u_sprintf_u
935
+ * @stable ICU 3.0
936
+ */
937
+ U_STABLE int32_t U_EXPORT2
938
+ u_vsnprintf_u(UChar *buffer,
939
+ int32_t count,
940
+ const UChar *patternSpecification,
941
+ va_list ap);
942
+
943
+ /* Input string functions */
944
+
945
+ /**
946
+ * Read formatted data from a Unicode string.
947
+ *
948
+ * @param buffer The Unicode string from which to read.
949
+ * @param patternSpecification A pattern specifying how <TT>u_sscanf</TT> will
950
+ * interpret the variable arguments received and parse the data.
951
+ * @return The number of items successfully converted and assigned, or EOF
952
+ * if an error occurred.
953
+ * @stable ICU 3.0
954
+ */
955
+ U_STABLE int32_t U_EXPORT2
956
+ u_sscanf(const UChar *buffer,
957
+ const char *patternSpecification,
958
+ ... );
959
+
960
+ /**
961
+ * Read formatted data from a Unicode string.
962
+ * This is identical to <TT>u_sscanf</TT>, except that it will
963
+ * <EM>not</EM> call <TT>va_start</TT> and <TT>va_end</TT>.
964
+ *
965
+ * @param buffer The Unicode string from which to read.
966
+ * @param patternSpecification A pattern specifying how <TT>u_sscanf</TT> will
967
+ * interpret the variable arguments received and parse the data.
968
+ * @param ap The argument list to use.
969
+ * @return The number of items successfully converted and assigned, or EOF
970
+ * if an error occurred.
971
+ * @see u_sscanf
972
+ * @stable ICU 3.0
973
+ */
974
+ U_STABLE int32_t U_EXPORT2
975
+ u_vsscanf(const UChar *buffer,
976
+ const char *patternSpecification,
977
+ va_list ap);
978
+
979
+ /**
980
+ * Read formatted data from a Unicode string.
981
+ *
982
+ * @param buffer The Unicode string from which to read.
983
+ * @param patternSpecification A pattern specifying how <TT>u_sscanf</TT> will
984
+ * interpret the variable arguments received and parse the data.
985
+ * @return The number of items successfully converted and assigned, or EOF
986
+ * if an error occurred.
987
+ * @stable ICU 3.0
988
+ */
989
+ U_STABLE int32_t U_EXPORT2
990
+ u_sscanf_u(const UChar *buffer,
991
+ const UChar *patternSpecification,
992
+ ... );
993
+
994
+ /**
995
+ * Read formatted data from a Unicode string.
996
+ * This is identical to <TT>u_sscanf_u</TT>, except that it will
997
+ * <EM>not</EM> call <TT>va_start</TT> and <TT>va_end</TT>.
998
+ *
999
+ * @param buffer The Unicode string from which to read.
1000
+ * @param patternSpecification A pattern specifying how <TT>u_sscanf</TT> will
1001
+ * interpret the variable arguments received and parse the data.
1002
+ * @param ap The argument list to use.
1003
+ * @return The number of items successfully converted and assigned, or EOF
1004
+ * if an error occurred.
1005
+ * @see u_sscanf_u
1006
+ * @stable ICU 3.0
1007
+ */
1008
+ U_STABLE int32_t U_EXPORT2
1009
+ u_vsscanf_u(const UChar *buffer,
1010
+ const UChar *patternSpecification,
1011
+ va_list ap);
1012
+
1013
+
1014
+ #endif
1015
+ #endif
1016
+ #endif
1017
+
1018
+