pango 2.2.0-x86-mingw32 → 2.2.1-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +21 -2
- data/lib/2.0/pango.so +0 -0
- data/vendor/local/bin/derb.exe +0 -0
- data/vendor/local/bin/genbrk.exe +0 -0
- data/vendor/local/bin/genccode.exe +0 -0
- data/vendor/local/bin/gencfu.exe +0 -0
- data/vendor/local/bin/gencmn.exe +0 -0
- data/vendor/local/bin/gencnval.exe +0 -0
- data/vendor/local/bin/gendict.exe +0 -0
- data/vendor/local/bin/gennorm2.exe +0 -0
- data/vendor/local/bin/genrb.exe +0 -0
- data/vendor/local/bin/gensprep.exe +0 -0
- data/vendor/local/bin/hb-ot-shape-closure.exe +0 -0
- data/vendor/local/bin/hb-shape.exe +0 -0
- data/vendor/local/bin/hb-view.exe +0 -0
- data/vendor/local/bin/icu-config +820 -0
- data/vendor/local/bin/icuinfo.exe +0 -0
- data/vendor/local/bin/icupkg.exe +0 -0
- data/vendor/local/bin/libharfbuzz-0.dll +0 -0
- data/vendor/local/bin/libpango-1.0-0.dll +0 -0
- data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
- data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
- data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
- data/vendor/local/bin/libstdc++-6.dll +0 -0
- data/vendor/local/bin/makeconv.exe +0 -0
- data/vendor/local/bin/pango-querymodules.exe +0 -0
- data/vendor/local/bin/pango-view.exe +0 -0
- data/vendor/local/bin/pkgdata.exe +0 -0
- data/vendor/local/bin/uconv.exe +0 -0
- data/vendor/local/etc/pango/pango.modules +3 -3
- data/vendor/local/include/harfbuzz/hb-blob.h +3 -4
- data/vendor/local/include/harfbuzz/hb-buffer.h +22 -1
- data/vendor/local/include/harfbuzz/hb-common.h +23 -18
- data/vendor/local/include/harfbuzz/hb-icu.h +52 -0
- data/vendor/local/include/harfbuzz/hb-ot-font.h +41 -0
- data/vendor/local/include/harfbuzz/hb-ot-layout.h +11 -3
- data/vendor/local/include/harfbuzz/hb-ot-shape.h +10 -11
- data/vendor/local/include/harfbuzz/hb-ot.h +1 -0
- data/vendor/local/include/harfbuzz/hb-version.h +7 -7
- data/vendor/local/include/layout/LEFontInstance.h +550 -0
- data/vendor/local/include/layout/LEGlyphFilter.h +45 -0
- data/vendor/local/include/layout/LEGlyphStorage.h +546 -0
- data/vendor/local/include/layout/LEInsertionList.h +177 -0
- data/vendor/local/include/layout/LELanguages.h +112 -0
- data/vendor/local/include/layout/LEScripts.h +263 -0
- data/vendor/local/include/layout/LESwaps.h +100 -0
- data/vendor/local/include/layout/LETableReference.h +418 -0
- data/vendor/local/include/layout/LETypes.h +728 -0
- data/vendor/local/include/layout/LayoutEngine.h +518 -0
- data/vendor/local/include/layout/ParagraphLayout.h +747 -0
- data/vendor/local/include/layout/RunArrays.h +676 -0
- data/vendor/local/include/layout/loengine.h +225 -0
- data/vendor/local/include/layout/playout.h +466 -0
- data/vendor/local/include/layout/plruns.h +441 -0
- data/vendor/local/include/pango-1.0/pango/pango-features.h +2 -2
- data/vendor/local/include/pango-1.0/pango/pango-font.h +3 -1
- data/vendor/local/include/pango-1.0/pango/pango-item.h +11 -2
- data/vendor/local/include/unicode/alphaindex.h +752 -0
- data/vendor/local/include/unicode/appendable.h +232 -0
- data/vendor/local/include/unicode/basictz.h +214 -0
- data/vendor/local/include/unicode/brkiter.h +655 -0
- data/vendor/local/include/unicode/bytestream.h +257 -0
- data/vendor/local/include/unicode/bytestrie.h +519 -0
- data/vendor/local/include/unicode/bytestriebuilder.h +181 -0
- data/vendor/local/include/unicode/calendar.h +2519 -0
- data/vendor/local/include/unicode/caniter.h +208 -0
- data/vendor/local/include/unicode/chariter.h +722 -0
- data/vendor/local/include/unicode/choicfmt.h +594 -0
- data/vendor/local/include/unicode/coleitr.h +404 -0
- data/vendor/local/include/unicode/coll.h +1267 -0
- data/vendor/local/include/unicode/compactdecimalformat.h +330 -0
- data/vendor/local/include/unicode/curramt.h +130 -0
- data/vendor/local/include/unicode/currpinf.h +258 -0
- data/vendor/local/include/unicode/currunit.h +110 -0
- data/vendor/local/include/unicode/datefmt.h +883 -0
- data/vendor/local/include/unicode/dbbi.h +40 -0
- data/vendor/local/include/unicode/dcfmtsym.h +482 -0
- data/vendor/local/include/unicode/decimfmt.h +2479 -0
- data/vendor/local/include/unicode/docmain.h +215 -0
- data/vendor/local/include/unicode/dtfmtsym.h +912 -0
- data/vendor/local/include/unicode/dtintrv.h +158 -0
- data/vendor/local/include/unicode/dtitvfmt.h +985 -0
- data/vendor/local/include/unicode/dtitvinf.h +514 -0
- data/vendor/local/include/unicode/dtptngen.h +498 -0
- data/vendor/local/include/unicode/dtrule.h +250 -0
- data/vendor/local/include/unicode/enumset.h +64 -0
- data/vendor/local/include/unicode/errorcode.h +137 -0
- data/vendor/local/include/unicode/fieldpos.h +291 -0
- data/vendor/local/include/unicode/filteredbrk.h +131 -0
- data/vendor/local/include/unicode/fmtable.h +760 -0
- data/vendor/local/include/unicode/format.h +305 -0
- data/vendor/local/include/unicode/fpositer.h +117 -0
- data/vendor/local/include/unicode/gender.h +111 -0
- data/vendor/local/include/unicode/gregocal.h +777 -0
- data/vendor/local/include/unicode/icudataver.h +41 -0
- data/vendor/local/include/unicode/icuplug.h +371 -0
- data/vendor/local/include/unicode/idna.h +323 -0
- data/vendor/local/include/unicode/listformatter.h +167 -0
- data/vendor/local/include/unicode/localpointer.h +304 -0
- data/vendor/local/include/unicode/locdspnm.h +204 -0
- data/vendor/local/include/unicode/locid.h +815 -0
- data/vendor/local/include/unicode/measfmt.h +389 -0
- data/vendor/local/include/unicode/measunit.h +1443 -0
- data/vendor/local/include/unicode/measure.h +159 -0
- data/vendor/local/include/unicode/messagepattern.h +943 -0
- data/vendor/local/include/unicode/msgfmt.h +1093 -0
- data/vendor/local/include/unicode/normalizer2.h +658 -0
- data/vendor/local/include/unicode/normlzr.h +797 -0
- data/vendor/local/include/unicode/numfmt.h +1187 -0
- data/vendor/local/include/unicode/numsys.h +208 -0
- data/vendor/local/include/unicode/parseerr.h +92 -0
- data/vendor/local/include/unicode/parsepos.h +230 -0
- data/vendor/local/include/unicode/platform.h +751 -0
- data/vendor/local/include/unicode/plurfmt.h +615 -0
- data/vendor/local/include/unicode/plurrule.h +501 -0
- data/vendor/local/include/unicode/ptypes.h +126 -0
- data/vendor/local/include/unicode/putil.h +181 -0
- data/vendor/local/include/unicode/rbbi.h +782 -0
- data/vendor/local/include/unicode/rbnf.h +1032 -0
- data/vendor/local/include/unicode/rbtz.h +362 -0
- data/vendor/local/include/unicode/regex.h +1857 -0
- data/vendor/local/include/unicode/region.h +228 -0
- data/vendor/local/include/unicode/reldatefmt.h +498 -0
- data/vendor/local/include/unicode/rep.h +261 -0
- data/vendor/local/include/unicode/resbund.h +490 -0
- data/vendor/local/include/unicode/schriter.h +187 -0
- data/vendor/local/include/unicode/scientificformathelper.h +139 -0
- data/vendor/local/include/unicode/search.h +575 -0
- data/vendor/local/include/unicode/selfmt.h +367 -0
- data/vendor/local/include/unicode/simpletz.h +928 -0
- data/vendor/local/include/unicode/smpdtfmt.h +1592 -0
- data/vendor/local/include/unicode/sortkey.h +338 -0
- data/vendor/local/include/unicode/std_string.h +37 -0
- data/vendor/local/include/unicode/strenum.h +276 -0
- data/vendor/local/include/unicode/stringpiece.h +224 -0
- data/vendor/local/include/unicode/stringtriebuilder.h +402 -0
- data/vendor/local/include/unicode/stsearch.h +504 -0
- data/vendor/local/include/unicode/symtable.h +112 -0
- data/vendor/local/include/unicode/tblcoll.h +873 -0
- data/vendor/local/include/unicode/timezone.h +948 -0
- data/vendor/local/include/unicode/tmunit.h +129 -0
- data/vendor/local/include/unicode/tmutamt.h +168 -0
- data/vendor/local/include/unicode/tmutfmt.h +243 -0
- data/vendor/local/include/unicode/translit.h +1342 -0
- data/vendor/local/include/unicode/tzfmt.h +1098 -0
- data/vendor/local/include/unicode/tznames.h +404 -0
- data/vendor/local/include/unicode/tzrule.h +828 -0
- data/vendor/local/include/unicode/tztrans.h +195 -0
- data/vendor/local/include/unicode/ubidi.h +2186 -0
- data/vendor/local/include/unicode/ubrk.h +540 -0
- data/vendor/local/include/unicode/ucal.h +1560 -0
- data/vendor/local/include/unicode/ucasemap.h +423 -0
- data/vendor/local/include/unicode/ucat.h +158 -0
- data/vendor/local/include/unicode/uchar.h +3426 -0
- data/vendor/local/include/unicode/ucharstrie.h +576 -0
- data/vendor/local/include/unicode/ucharstriebuilder.h +185 -0
- data/vendor/local/include/unicode/uchriter.h +381 -0
- data/vendor/local/include/unicode/uclean.h +258 -0
- data/vendor/local/include/unicode/ucnv.h +2036 -0
- data/vendor/local/include/unicode/ucnv_cb.h +162 -0
- data/vendor/local/include/unicode/ucnv_err.h +463 -0
- data/vendor/local/include/unicode/ucnvsel.h +187 -0
- data/vendor/local/include/unicode/ucol.h +1474 -0
- data/vendor/local/include/unicode/ucoleitr.h +266 -0
- data/vendor/local/include/unicode/uconfig.h +430 -0
- data/vendor/local/include/unicode/ucsdet.h +413 -0
- data/vendor/local/include/unicode/ucurr.h +424 -0
- data/vendor/local/include/unicode/udat.h +1536 -0
- data/vendor/local/include/unicode/udata.h +430 -0
- data/vendor/local/include/unicode/udateintervalformat.h +181 -0
- data/vendor/local/include/unicode/udatpg.h +588 -0
- data/vendor/local/include/unicode/udisplaycontext.h +150 -0
- data/vendor/local/include/unicode/uenum.h +206 -0
- data/vendor/local/include/unicode/uformattable.h +280 -0
- data/vendor/local/include/unicode/ugender.h +82 -0
- data/vendor/local/include/unicode/uidna.h +762 -0
- data/vendor/local/include/unicode/uiter.h +707 -0
- data/vendor/local/include/unicode/uldnames.h +302 -0
- data/vendor/local/include/unicode/uloc.h +1256 -0
- data/vendor/local/include/unicode/ulocdata.h +277 -0
- data/vendor/local/include/unicode/umachine.h +356 -0
- data/vendor/local/include/unicode/umisc.h +60 -0
- data/vendor/local/include/unicode/umsg.h +623 -0
- data/vendor/local/include/unicode/unifilt.h +120 -0
- data/vendor/local/include/unicode/unifunct.h +125 -0
- data/vendor/local/include/unicode/unimatch.h +163 -0
- data/vendor/local/include/unicode/unirepl.h +97 -0
- data/vendor/local/include/unicode/uniset.h +1691 -0
- data/vendor/local/include/unicode/unistr.h +4470 -0
- data/vendor/local/include/unicode/unorm.h +561 -0
- data/vendor/local/include/unicode/unorm2.h +528 -0
- data/vendor/local/include/unicode/unum.h +1328 -0
- data/vendor/local/include/unicode/unumsys.h +170 -0
- data/vendor/local/include/unicode/uobject.h +320 -0
- data/vendor/local/include/unicode/upluralrules.h +145 -0
- data/vendor/local/include/unicode/uregex.h +1591 -0
- data/vendor/local/include/unicode/uregion.h +248 -0
- data/vendor/local/include/unicode/urename.h +1784 -0
- data/vendor/local/include/unicode/urep.h +155 -0
- data/vendor/local/include/unicode/ures.h +887 -0
- data/vendor/local/include/unicode/uscript.h +642 -0
- data/vendor/local/include/unicode/usearch.h +885 -0
- data/vendor/local/include/unicode/uset.h +1126 -0
- data/vendor/local/include/unicode/usetiter.h +318 -0
- data/vendor/local/include/unicode/ushape.h +474 -0
- data/vendor/local/include/unicode/uspoof.h +1064 -0
- data/vendor/local/include/unicode/usprep.h +269 -0
- data/vendor/local/include/unicode/ustdio.h +1018 -0
- data/vendor/local/include/unicode/ustream.h +68 -0
- data/vendor/local/include/unicode/ustring.h +1700 -0
- data/vendor/local/include/unicode/ustringtrie.h +95 -0
- data/vendor/local/include/unicode/utext.h +1600 -0
- data/vendor/local/include/unicode/utf.h +223 -0
- data/vendor/local/include/unicode/utf16.h +623 -0
- data/vendor/local/include/unicode/utf32.h +23 -0
- data/vendor/local/include/unicode/utf8.h +824 -0
- data/vendor/local/include/unicode/utf_old.h +1169 -0
- data/vendor/local/include/unicode/utmscale.h +481 -0
- data/vendor/local/include/unicode/utrace.h +359 -0
- data/vendor/local/include/unicode/utrans.h +658 -0
- data/vendor/local/include/unicode/utypes.h +723 -0
- data/vendor/local/include/unicode/uvernum.h +170 -0
- data/vendor/local/include/unicode/uversion.h +193 -0
- data/vendor/local/include/unicode/vtzone.h +455 -0
- data/vendor/local/lib/girepository-1.0/Pango-1.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/PangoCairo-1.0.typelib +0 -0
- data/vendor/local/lib/girepository-1.0/PangoFT2-1.0.typelib +0 -0
- data/vendor/local/lib/icu/54.1/Makefile.inc +293 -0
- data/vendor/local/lib/icu/54.1/pkgdata.inc +17 -0
- data/vendor/local/lib/icu/Makefile.inc +293 -0
- data/vendor/local/lib/icu/pkgdata.inc +17 -0
- data/vendor/local/lib/icudt.dll +0 -0
- data/vendor/local/lib/icudt54.dll +0 -0
- data/vendor/local/lib/icuin.dll +0 -0
- data/vendor/local/lib/icuin54.dll +0 -0
- data/vendor/local/lib/icuio.dll +0 -0
- data/vendor/local/lib/icuio54.dll +0 -0
- data/vendor/local/lib/icule.dll +0 -0
- data/vendor/local/lib/icule54.dll +0 -0
- data/vendor/local/lib/iculx.dll +0 -0
- data/vendor/local/lib/iculx54.dll +0 -0
- data/vendor/local/lib/icutest.dll +0 -0
- data/vendor/local/lib/icutest54.dll +0 -0
- data/vendor/local/lib/icutu.dll +0 -0
- data/vendor/local/lib/icutu54.dll +0 -0
- data/vendor/local/lib/icuuc.dll +0 -0
- data/vendor/local/lib/icuuc54.dll +0 -0
- data/vendor/local/lib/libharfbuzz-icu.a +0 -0
- data/vendor/local/lib/libharfbuzz-icu.la +41 -0
- data/vendor/local/lib/libharfbuzz.dll.a +0 -0
- data/vendor/local/lib/libharfbuzz.la +3 -3
- data/vendor/local/lib/libicudt.dll.a +0 -0
- data/vendor/local/lib/libicuin.dll.a +0 -0
- data/vendor/local/lib/libicuio.dll.a +0 -0
- data/vendor/local/lib/libicule.dll.a +0 -0
- data/vendor/local/lib/libiculx.dll.a +0 -0
- data/vendor/local/lib/libicutest.dll.a +0 -0
- data/vendor/local/lib/libicutu.dll.a +0 -0
- data/vendor/local/lib/libicuuc.dll.a +0 -0
- data/vendor/local/lib/libpango-1.0.dll.a +0 -0
- data/vendor/local/lib/libpango-1.0.la +2 -2
- data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
- data/vendor/local/lib/libpangocairo-1.0.la +2 -2
- data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
- data/vendor/local/lib/libpangoft2-1.0.la +2 -2
- data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
- data/vendor/local/lib/libpangowin32-1.0.la +2 -2
- data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.dll +0 -0
- data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.dll.a +0 -0
- data/vendor/local/lib/pango/1.8.0/modules/pango-arabic-lang.la +1 -1
- data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.dll +0 -0
- data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.dll.a +0 -0
- data/vendor/local/lib/pango/1.8.0/modules/pango-basic-fc.la +1 -1
- data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.dll +0 -0
- data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.dll.a +0 -0
- data/vendor/local/lib/pango/1.8.0/modules/pango-basic-win32.la +1 -1
- data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.dll +0 -0
- data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.dll.a +0 -0
- data/vendor/local/lib/pango/1.8.0/modules/pango-indic-lang.la +1 -1
- data/vendor/local/lib/pkgconfig/harfbuzz-icu.pc +13 -0
- data/vendor/local/lib/pkgconfig/harfbuzz.pc +1 -1
- data/vendor/local/lib/pkgconfig/icu-i18n.pc +38 -0
- data/vendor/local/lib/pkgconfig/icu-io.pc +38 -0
- data/vendor/local/lib/pkgconfig/icu-le.pc +38 -0
- data/vendor/local/lib/pkgconfig/icu-lx.pc +38 -0
- data/vendor/local/lib/pkgconfig/icu-uc.pc +38 -0
- data/vendor/local/lib/pkgconfig/pango.pc +1 -1
- data/vendor/local/lib/pkgconfig/pangocairo.pc +1 -1
- data/vendor/local/lib/pkgconfig/pangoft2.pc +1 -1
- data/vendor/local/lib/pkgconfig/pangowin32.pc +1 -1
- data/vendor/local/share/gir-1.0/Pango-1.0.gir +3009 -462
- data/vendor/local/share/gir-1.0/PangoCairo-1.0.gir +64 -22
- data/vendor/local/share/gir-1.0/PangoFT2-1.0.gir +4 -2
- data/vendor/local/share/gtk-doc/html/harfbuzz/annotation-glossary.html +30 -26
- data/vendor/local/share/gtk-doc/html/harfbuzz/api-index-full.html +343 -313
- data/vendor/local/share/gtk-doc/html/harfbuzz/ch01.html +5 -5
- data/vendor/local/share/gtk-doc/html/harfbuzz/deprecated-api-index.html +6 -8
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-blob.html +442 -247
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-buffer.html +1389 -654
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-common.html +954 -698
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-coretext.html +95 -18
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-deprecated.html +36 -27
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-face.html +477 -191
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-font.html +1951 -1039
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ft.html +123 -65
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-glib.html +66 -21
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-gobject.html +11 -13
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-graphite2.html +67 -23
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-icu.html +66 -21
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-layout.html +574 -347
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-tag.html +104 -37
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot.html +10 -27
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-set.html +744 -318
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape-plan.html +294 -153
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape.html +196 -104
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-unicode.html +1100 -757
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-uniscribe.html +51 -18
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-version.html +110 -84
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb.html +11 -13
- data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz.devhelp2 +289 -503
- data/vendor/local/share/gtk-doc/html/harfbuzz/index.html +3 -3
- data/vendor/local/share/gtk-doc/html/harfbuzz/index.sgml +161 -316
- data/vendor/local/share/gtk-doc/html/harfbuzz/object-tree.html +31 -4
- data/vendor/local/share/gtk-doc/html/harfbuzz/style.css +260 -105
- data/vendor/local/share/gtk-doc/html/pango/PangoEngineLang.html +143 -105
- data/vendor/local/share/gtk-doc/html/pango/PangoEngineShape.html +150 -108
- data/vendor/local/share/gtk-doc/html/pango/PangoFcDecoder.html +163 -112
- data/vendor/local/share/gtk-doc/html/pango/PangoFcFont.html +348 -229
- data/vendor/local/share/gtk-doc/html/pango/PangoFcFontMap.html +746 -514
- data/vendor/local/share/gtk-doc/html/pango/PangoMarkupFormat.html +9 -9
- data/vendor/local/share/gtk-doc/html/pango/PangoRenderer.html +853 -623
- data/vendor/local/share/gtk-doc/html/pango/annotation-glossary.html +29 -13
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-10.html +31 -33
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-12.html +10 -12
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-14.html +12 -14
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-16.html +53 -55
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-18.html +28 -30
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-2.html +29 -31
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-20.html +17 -19
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-22.html +28 -30
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-24.html +17 -19
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-26.html +9 -11
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-30.html +6 -6
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-31-0.html +6 -6
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-32-4.html +11 -13
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-32.html +7 -9
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-34.html +5 -5
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-4.html +49 -51
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-6.html +36 -38
- data/vendor/local/share/gtk-doc/html/pango/api-index-1-8.html +37 -39
- data/vendor/local/share/gtk-doc/html/pango/api-index-deprecated.html +68 -70
- data/vendor/local/share/gtk-doc/html/pango/api-index-full.html +568 -570
- data/vendor/local/share/gtk-doc/html/pango/index.html +3 -3
- data/vendor/local/share/gtk-doc/html/pango/index.sgml +229 -399
- data/vendor/local/share/gtk-doc/html/pango/lowlevel.html +4 -4
- data/vendor/local/share/gtk-doc/html/pango/pango-Bidirectional-Text.html +345 -259
- data/vendor/local/share/gtk-doc/html/pango/pango-Cairo-Rendering.html +979 -664
- data/vendor/local/share/gtk-doc/html/pango/pango-CoreText-Fonts.html +70 -43
- data/vendor/local/share/gtk-doc/html/pango/pango-Coverage-Maps.html +349 -229
- data/vendor/local/share/gtk-doc/html/pango/pango-Engines.html +236 -153
- data/vendor/local/share/gtk-doc/html/pango/pango-Fonts.html +3100 -2159
- data/vendor/local/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html +659 -472
- data/vendor/local/share/gtk-doc/html/pango/pango-Glyph-Storage.html +1952 -1384
- data/vendor/local/share/gtk-doc/html/pango/pango-Layout-Objects.html +3050 -2135
- data/vendor/local/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html +676 -463
- data/vendor/local/share/gtk-doc/html/pango/pango-Modules.html +223 -146
- data/vendor/local/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html +1589 -1199
- data/vendor/local/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html +1072 -842
- data/vendor/local/share/gtk-doc/html/pango/pango-Tab-Stops.html +406 -276
- data/vendor/local/share/gtk-doc/html/pango/pango-Text-Attributes.html +2541 -1792
- data/vendor/local/share/gtk-doc/html/pango/pango-Text-Processing.html +1479 -1033
- data/vendor/local/share/gtk-doc/html/pango/pango-Version-Checking.html +214 -154
- data/vendor/local/share/gtk-doc/html/pango/pango-Vertical-Text.html +374 -291
- data/vendor/local/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html +733 -498
- data/vendor/local/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html +893 -617
- data/vendor/local/share/gtk-doc/html/pango/pango-hierarchy.html +59 -59
- data/vendor/local/share/gtk-doc/html/pango/pango-querymodules.html +5 -5
- data/vendor/local/share/gtk-doc/html/pango/pango.devhelp2 +578 -782
- data/vendor/local/share/gtk-doc/html/pango/pango.html +4 -4
- data/vendor/local/share/gtk-doc/html/pango/rendering.html +4 -4
- data/vendor/local/share/gtk-doc/html/pango/style.css +260 -105
- data/vendor/local/share/gtk-doc/html/pango/tools.html +4 -4
- data/vendor/local/share/icu/54.1/config/mh-mingw +158 -0
- data/vendor/local/share/icu/54.1/install-sh +251 -0
- data/vendor/local/share/icu/54.1/license.html +385 -0
- data/vendor/local/share/icu/54.1/mkinstalldirs +43 -0
- data/vendor/local/share/license/harfbuzz/AUTHORS +1 -0
- data/vendor/local/share/man/man1/derb.1 +196 -0
- data/vendor/local/share/man/man1/genbrk.1 +112 -0
- data/vendor/local/share/man/man1/gencfu.1 +91 -0
- data/vendor/local/share/man/man1/gencnval.1 +91 -0
- data/vendor/local/share/man/man1/gendict.1 +131 -0
- data/vendor/local/share/man/man1/genrb.1 +146 -0
- data/vendor/local/share/man/man1/icu-config.1 +288 -0
- data/vendor/local/share/man/man1/makeconv.1 +112 -0
- data/vendor/local/share/man/man1/pango-querymodules.1 +2 -2
- data/vendor/local/share/man/man1/pango-view.1 +1 -118
- data/vendor/local/share/man/man1/pkgdata.1 +258 -0
- data/vendor/local/share/man/man1/uconv.1 +443 -0
- data/vendor/local/share/man/man8/genccode.8 +106 -0
- data/vendor/local/share/man/man8/gencmn.8 +129 -0
- data/vendor/local/share/man/man8/gensprep.8 +102 -0
- data/vendor/local/share/man/man8/icupkg.8 +204 -0
- metadata +266 -14
- data/lib/1.9/pango.so +0 -0
- data/lib/2.1/pango.so +0 -0
@@ -0,0 +1,338 @@
|
|
1
|
+
/*
|
2
|
+
*****************************************************************************
|
3
|
+
* Copyright (C) 1996-2014, International Business Machines Corporation and others.
|
4
|
+
* All Rights Reserved.
|
5
|
+
*****************************************************************************
|
6
|
+
*
|
7
|
+
* File sortkey.h
|
8
|
+
*
|
9
|
+
* Created by: Helena Shih
|
10
|
+
*
|
11
|
+
* Modification History:
|
12
|
+
*
|
13
|
+
* Date Name Description
|
14
|
+
*
|
15
|
+
* 6/20/97 helena Java class name change.
|
16
|
+
* 8/18/97 helena Added internal API documentation.
|
17
|
+
* 6/26/98 erm Changed to use byte arrays and memcmp.
|
18
|
+
*****************************************************************************
|
19
|
+
*/
|
20
|
+
|
21
|
+
#ifndef SORTKEY_H
|
22
|
+
#define SORTKEY_H
|
23
|
+
|
24
|
+
#include "unicode/utypes.h"
|
25
|
+
|
26
|
+
/**
|
27
|
+
* \file
|
28
|
+
* \brief C++ API: Keys for comparing strings multiple times.
|
29
|
+
*/
|
30
|
+
|
31
|
+
#if !UCONFIG_NO_COLLATION
|
32
|
+
|
33
|
+
#include "unicode/uobject.h"
|
34
|
+
#include "unicode/unistr.h"
|
35
|
+
#include "unicode/coll.h"
|
36
|
+
|
37
|
+
U_NAMESPACE_BEGIN
|
38
|
+
|
39
|
+
/* forward declaration */
|
40
|
+
class RuleBasedCollator;
|
41
|
+
class CollationKeyByteSink;
|
42
|
+
|
43
|
+
/**
|
44
|
+
*
|
45
|
+
* Collation keys are generated by the Collator class. Use the CollationKey objects
|
46
|
+
* instead of Collator to compare strings multiple times. A CollationKey
|
47
|
+
* preprocesses the comparison information from the Collator object to
|
48
|
+
* make the comparison faster. If you are not going to comparing strings
|
49
|
+
* multiple times, then using the Collator object is generally faster,
|
50
|
+
* since it only processes as much of the string as needed to make a
|
51
|
+
* comparison.
|
52
|
+
* <p> For example (with strength == tertiary)
|
53
|
+
* <p>When comparing "Abernathy" to "Baggins-Smythworthy", Collator
|
54
|
+
* only needs to process a couple of characters, while a comparison
|
55
|
+
* with CollationKeys will process all of the characters. On the other hand,
|
56
|
+
* if you are doing a sort of a number of fields, it is much faster to use
|
57
|
+
* CollationKeys, since you will be comparing strings multiple times.
|
58
|
+
* <p>Typical use of CollationKeys are in databases, where you store a CollationKey
|
59
|
+
* in a hidden field, and use it for sorting or indexing.
|
60
|
+
*
|
61
|
+
* <p>Example of use:
|
62
|
+
* <pre>
|
63
|
+
* \code
|
64
|
+
* UErrorCode success = U_ZERO_ERROR;
|
65
|
+
* Collator* myCollator = Collator::createInstance(success);
|
66
|
+
* CollationKey* keys = new CollationKey [3];
|
67
|
+
* myCollator->getCollationKey("Tom", keys[0], success );
|
68
|
+
* myCollator->getCollationKey("Dick", keys[1], success );
|
69
|
+
* myCollator->getCollationKey("Harry", keys[2], success );
|
70
|
+
*
|
71
|
+
* // Inside body of sort routine, compare keys this way:
|
72
|
+
* CollationKey tmp;
|
73
|
+
* if(keys[0].compareTo( keys[1] ) > 0 ) {
|
74
|
+
* tmp = keys[0]; keys[0] = keys[1]; keys[1] = tmp;
|
75
|
+
* }
|
76
|
+
* //...
|
77
|
+
* \endcode
|
78
|
+
* </pre>
|
79
|
+
* <p>Because Collator::compare()'s algorithm is complex, it is faster to sort
|
80
|
+
* long lists of words by retrieving collation keys with Collator::getCollationKey().
|
81
|
+
* You can then cache the collation keys and compare them using CollationKey::compareTo().
|
82
|
+
* <p>
|
83
|
+
* <strong>Note:</strong> <code>Collator</code>s with different Locale,
|
84
|
+
* CollationStrength and DecompositionMode settings will return different
|
85
|
+
* CollationKeys for the same set of strings. Locales have specific
|
86
|
+
* collation rules, and the way in which secondary and tertiary differences
|
87
|
+
* are taken into account, for example, will result in different CollationKeys
|
88
|
+
* for same strings.
|
89
|
+
* <p>
|
90
|
+
|
91
|
+
* @see Collator
|
92
|
+
* @see RuleBasedCollator
|
93
|
+
* @version 1.3 12/18/96
|
94
|
+
* @author Helena Shih
|
95
|
+
* @stable ICU 2.0
|
96
|
+
*/
|
97
|
+
class U_I18N_API CollationKey : public UObject {
|
98
|
+
public:
|
99
|
+
/**
|
100
|
+
* This creates an empty collation key based on the null string. An empty
|
101
|
+
* collation key contains no sorting information. When comparing two empty
|
102
|
+
* collation keys, the result is Collator::EQUAL. Comparing empty collation key
|
103
|
+
* with non-empty collation key is always Collator::LESS.
|
104
|
+
* @stable ICU 2.0
|
105
|
+
*/
|
106
|
+
CollationKey();
|
107
|
+
|
108
|
+
|
109
|
+
/**
|
110
|
+
* Creates a collation key based on the collation key values.
|
111
|
+
* @param values the collation key values
|
112
|
+
* @param count number of collation key values, including trailing nulls.
|
113
|
+
* @stable ICU 2.0
|
114
|
+
*/
|
115
|
+
CollationKey(const uint8_t* values,
|
116
|
+
int32_t count);
|
117
|
+
|
118
|
+
/**
|
119
|
+
* Copy constructor.
|
120
|
+
* @param other the object to be copied.
|
121
|
+
* @stable ICU 2.0
|
122
|
+
*/
|
123
|
+
CollationKey(const CollationKey& other);
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Sort key destructor.
|
127
|
+
* @stable ICU 2.0
|
128
|
+
*/
|
129
|
+
virtual ~CollationKey();
|
130
|
+
|
131
|
+
/**
|
132
|
+
* Assignment operator
|
133
|
+
* @param other the object to be copied.
|
134
|
+
* @stable ICU 2.0
|
135
|
+
*/
|
136
|
+
const CollationKey& operator=(const CollationKey& other);
|
137
|
+
|
138
|
+
/**
|
139
|
+
* Compare if two collation keys are the same.
|
140
|
+
* @param source the collation key to compare to.
|
141
|
+
* @return Returns true if two collation keys are equal, false otherwise.
|
142
|
+
* @stable ICU 2.0
|
143
|
+
*/
|
144
|
+
UBool operator==(const CollationKey& source) const;
|
145
|
+
|
146
|
+
/**
|
147
|
+
* Compare if two collation keys are not the same.
|
148
|
+
* @param source the collation key to compare to.
|
149
|
+
* @return Returns TRUE if two collation keys are different, FALSE otherwise.
|
150
|
+
* @stable ICU 2.0
|
151
|
+
*/
|
152
|
+
UBool operator!=(const CollationKey& source) const;
|
153
|
+
|
154
|
+
|
155
|
+
/**
|
156
|
+
* Test to see if the key is in an invalid state. The key will be in an
|
157
|
+
* invalid state if it couldn't allocate memory for some operation.
|
158
|
+
* @return Returns TRUE if the key is in an invalid, FALSE otherwise.
|
159
|
+
* @stable ICU 2.0
|
160
|
+
*/
|
161
|
+
UBool isBogus(void) const;
|
162
|
+
|
163
|
+
/**
|
164
|
+
* Returns a pointer to the collation key values. The storage is owned
|
165
|
+
* by the collation key and the pointer will become invalid if the key
|
166
|
+
* is deleted.
|
167
|
+
* @param count the output parameter of number of collation key values,
|
168
|
+
* including any trailing nulls.
|
169
|
+
* @return a pointer to the collation key values.
|
170
|
+
* @stable ICU 2.0
|
171
|
+
*/
|
172
|
+
const uint8_t* getByteArray(int32_t& count) const;
|
173
|
+
|
174
|
+
#ifdef U_USE_COLLATION_KEY_DEPRECATES
|
175
|
+
/**
|
176
|
+
* Extracts the collation key values into a new array. The caller owns
|
177
|
+
* this storage and should free it.
|
178
|
+
* @param count the output parameter of number of collation key values,
|
179
|
+
* including any trailing nulls.
|
180
|
+
* @obsolete ICU 2.6. Use getByteArray instead since this API will be removed in that release.
|
181
|
+
*/
|
182
|
+
uint8_t* toByteArray(int32_t& count) const;
|
183
|
+
#endif
|
184
|
+
|
185
|
+
#ifndef U_HIDE_DEPRECATED_API
|
186
|
+
/**
|
187
|
+
* Convenience method which does a string(bit-wise) comparison of the
|
188
|
+
* two collation keys.
|
189
|
+
* @param target target collation key to be compared with
|
190
|
+
* @return Returns Collator::LESS if sourceKey < targetKey,
|
191
|
+
* Collator::GREATER if sourceKey > targetKey and Collator::EQUAL
|
192
|
+
* otherwise.
|
193
|
+
* @deprecated ICU 2.6 use the overload with error code
|
194
|
+
*/
|
195
|
+
Collator::EComparisonResult compareTo(const CollationKey& target) const;
|
196
|
+
#endif /* U_HIDE_DEPRECATED_API */
|
197
|
+
|
198
|
+
/**
|
199
|
+
* Convenience method which does a string(bit-wise) comparison of the
|
200
|
+
* two collation keys.
|
201
|
+
* @param target target collation key to be compared with
|
202
|
+
* @param status error code
|
203
|
+
* @return Returns UCOL_LESS if sourceKey < targetKey,
|
204
|
+
* UCOL_GREATER if sourceKey > targetKey and UCOL_EQUAL
|
205
|
+
* otherwise.
|
206
|
+
* @stable ICU 2.6
|
207
|
+
*/
|
208
|
+
UCollationResult compareTo(const CollationKey& target, UErrorCode &status) const;
|
209
|
+
|
210
|
+
/**
|
211
|
+
* Creates an integer that is unique to the collation key. NOTE: this
|
212
|
+
* is not the same as String.hashCode.
|
213
|
+
* <p>Example of use:
|
214
|
+
* <pre>
|
215
|
+
* . UErrorCode status = U_ZERO_ERROR;
|
216
|
+
* . Collator *myCollation = Collator::createInstance(Locale::US, status);
|
217
|
+
* . if (U_FAILURE(status)) return;
|
218
|
+
* . CollationKey key1, key2;
|
219
|
+
* . UErrorCode status1 = U_ZERO_ERROR, status2 = U_ZERO_ERROR;
|
220
|
+
* . myCollation->getCollationKey("abc", key1, status1);
|
221
|
+
* . if (U_FAILURE(status1)) { delete myCollation; return; }
|
222
|
+
* . myCollation->getCollationKey("ABC", key2, status2);
|
223
|
+
* . if (U_FAILURE(status2)) { delete myCollation; return; }
|
224
|
+
* . // key1.hashCode() != key2.hashCode()
|
225
|
+
* </pre>
|
226
|
+
* @return the hash value based on the string's collation order.
|
227
|
+
* @see UnicodeString#hashCode
|
228
|
+
* @stable ICU 2.0
|
229
|
+
*/
|
230
|
+
int32_t hashCode(void) const;
|
231
|
+
|
232
|
+
/**
|
233
|
+
* ICU "poor man's RTTI", returns a UClassID for the actual class.
|
234
|
+
* @stable ICU 2.2
|
235
|
+
*/
|
236
|
+
virtual UClassID getDynamicClassID() const;
|
237
|
+
|
238
|
+
/**
|
239
|
+
* ICU "poor man's RTTI", returns a UClassID for this class.
|
240
|
+
* @stable ICU 2.2
|
241
|
+
*/
|
242
|
+
static UClassID U_EXPORT2 getStaticClassID();
|
243
|
+
|
244
|
+
private:
|
245
|
+
/**
|
246
|
+
* Replaces the current bytes buffer with a new one of newCapacity
|
247
|
+
* and copies length bytes from the old buffer to the new one.
|
248
|
+
* @return the new buffer, or NULL if the allocation failed
|
249
|
+
*/
|
250
|
+
uint8_t *reallocate(int32_t newCapacity, int32_t length);
|
251
|
+
/**
|
252
|
+
* Set a new length for a new sort key in the existing fBytes.
|
253
|
+
*/
|
254
|
+
void setLength(int32_t newLength);
|
255
|
+
|
256
|
+
uint8_t *getBytes() {
|
257
|
+
return (fFlagAndLength >= 0) ? fUnion.fStackBuffer : fUnion.fFields.fBytes;
|
258
|
+
}
|
259
|
+
const uint8_t *getBytes() const {
|
260
|
+
return (fFlagAndLength >= 0) ? fUnion.fStackBuffer : fUnion.fFields.fBytes;
|
261
|
+
}
|
262
|
+
int32_t getCapacity() const {
|
263
|
+
return (fFlagAndLength >= 0) ? (int32_t)sizeof(fUnion) : fUnion.fFields.fCapacity;
|
264
|
+
}
|
265
|
+
int32_t getLength() const { return fFlagAndLength & 0x7fffffff; }
|
266
|
+
|
267
|
+
/**
|
268
|
+
* Set the CollationKey to a "bogus" or invalid state
|
269
|
+
* @return this CollationKey
|
270
|
+
*/
|
271
|
+
CollationKey& setToBogus(void);
|
272
|
+
/**
|
273
|
+
* Resets this CollationKey to an empty state
|
274
|
+
* @return this CollationKey
|
275
|
+
*/
|
276
|
+
CollationKey& reset(void);
|
277
|
+
|
278
|
+
/**
|
279
|
+
* Allow private access to RuleBasedCollator
|
280
|
+
*/
|
281
|
+
friend class RuleBasedCollator;
|
282
|
+
friend class CollationKeyByteSink;
|
283
|
+
|
284
|
+
// Class fields. sizeof(CollationKey) is intended to be 48 bytes
|
285
|
+
// on a machine with 64-bit pointers.
|
286
|
+
// We use a union to maximize the size of the internal buffer,
|
287
|
+
// similar to UnicodeString but not as tight and complex.
|
288
|
+
|
289
|
+
// (implicit) *vtable;
|
290
|
+
/**
|
291
|
+
* Sort key length and flag.
|
292
|
+
* Bit 31 is set if the buffer is heap-allocated.
|
293
|
+
* Bits 30..0 contain the sort key length.
|
294
|
+
*/
|
295
|
+
int32_t fFlagAndLength;
|
296
|
+
/**
|
297
|
+
* Unique hash value of this CollationKey.
|
298
|
+
* Special value 2 if the key is bogus.
|
299
|
+
*/
|
300
|
+
mutable int32_t fHashCode;
|
301
|
+
/**
|
302
|
+
* fUnion provides 32 bytes for the internal buffer or for
|
303
|
+
* pointer+capacity.
|
304
|
+
*/
|
305
|
+
union StackBufferOrFields {
|
306
|
+
/** fStackBuffer is used iff fFlagAndLength>=0, else fFields is used */
|
307
|
+
uint8_t fStackBuffer[32];
|
308
|
+
struct {
|
309
|
+
uint8_t *fBytes;
|
310
|
+
int32_t fCapacity;
|
311
|
+
} fFields;
|
312
|
+
} fUnion;
|
313
|
+
};
|
314
|
+
|
315
|
+
inline UBool
|
316
|
+
CollationKey::operator!=(const CollationKey& other) const
|
317
|
+
{
|
318
|
+
return !(*this == other);
|
319
|
+
}
|
320
|
+
|
321
|
+
inline UBool
|
322
|
+
CollationKey::isBogus() const
|
323
|
+
{
|
324
|
+
return fHashCode == 2; // kBogusHashCode
|
325
|
+
}
|
326
|
+
|
327
|
+
inline const uint8_t*
|
328
|
+
CollationKey::getByteArray(int32_t &count) const
|
329
|
+
{
|
330
|
+
count = getLength();
|
331
|
+
return getBytes();
|
332
|
+
}
|
333
|
+
|
334
|
+
U_NAMESPACE_END
|
335
|
+
|
336
|
+
#endif /* #if !UCONFIG_NO_COLLATION */
|
337
|
+
|
338
|
+
#endif
|
@@ -0,0 +1,37 @@
|
|
1
|
+
/*
|
2
|
+
*******************************************************************************
|
3
|
+
*
|
4
|
+
* Copyright (C) 2009-2014, International Business Machines
|
5
|
+
* Corporation and others. All Rights Reserved.
|
6
|
+
*
|
7
|
+
*******************************************************************************
|
8
|
+
* file name: std_string.h
|
9
|
+
* encoding: US-ASCII
|
10
|
+
* tab size: 8 (not used)
|
11
|
+
* indentation:4
|
12
|
+
*
|
13
|
+
* created on: 2009feb19
|
14
|
+
* created by: Markus W. Scherer
|
15
|
+
*/
|
16
|
+
|
17
|
+
#ifndef __STD_STRING_H__
|
18
|
+
#define __STD_STRING_H__
|
19
|
+
|
20
|
+
/**
|
21
|
+
* \file
|
22
|
+
* \brief C++ API: Central ICU header for including the C++ standard <string>
|
23
|
+
* header and for related definitions.
|
24
|
+
*/
|
25
|
+
|
26
|
+
#include "unicode/utypes.h"
|
27
|
+
|
28
|
+
#if U_HAVE_STD_STRING
|
29
|
+
|
30
|
+
#if !defined(_MSC_VER)
|
31
|
+
namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
|
32
|
+
#endif
|
33
|
+
#include <string>
|
34
|
+
|
35
|
+
#endif // U_HAVE_STD_STRING
|
36
|
+
|
37
|
+
#endif // __STD_STRING_H__
|
@@ -0,0 +1,276 @@
|
|
1
|
+
/*
|
2
|
+
*******************************************************************************
|
3
|
+
*
|
4
|
+
* Copyright (C) 2002-2012, International Business Machines
|
5
|
+
* Corporation and others. All Rights Reserved.
|
6
|
+
*
|
7
|
+
*******************************************************************************
|
8
|
+
*/
|
9
|
+
|
10
|
+
#ifndef STRENUM_H
|
11
|
+
#define STRENUM_H
|
12
|
+
|
13
|
+
#include "unicode/uobject.h"
|
14
|
+
#include "unicode/unistr.h"
|
15
|
+
|
16
|
+
/**
|
17
|
+
* \file
|
18
|
+
* \brief C++ API: String Enumeration
|
19
|
+
*/
|
20
|
+
|
21
|
+
U_NAMESPACE_BEGIN
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Base class for 'pure' C++ implementations of uenum api. Adds a
|
25
|
+
* method that returns the next UnicodeString since in C++ this can
|
26
|
+
* be a common storage format for strings.
|
27
|
+
*
|
28
|
+
* <p>The model is that the enumeration is over strings maintained by
|
29
|
+
* a 'service.' At any point, the service might change, invalidating
|
30
|
+
* the enumerator (though this is expected to be rare). The iterator
|
31
|
+
* returns an error if this has occurred. Lack of the error is no
|
32
|
+
* guarantee that the service didn't change immediately after the
|
33
|
+
* call, so the returned string still might not be 'valid' on
|
34
|
+
* subsequent use.</p>
|
35
|
+
*
|
36
|
+
* <p>Strings may take the form of const char*, const UChar*, or const
|
37
|
+
* UnicodeString*. The type you get is determine by the variant of
|
38
|
+
* 'next' that you call. In general the StringEnumeration is
|
39
|
+
* optimized for one of these types, but all StringEnumerations can
|
40
|
+
* return all types. Returned strings are each terminated with a NUL.
|
41
|
+
* Depending on the service data, they might also include embedded NUL
|
42
|
+
* characters, so API is provided to optionally return the true
|
43
|
+
* length, counting the embedded NULs but not counting the terminating
|
44
|
+
* NUL.</p>
|
45
|
+
*
|
46
|
+
* <p>The pointers returned by next, unext, and snext become invalid
|
47
|
+
* upon any subsequent call to the enumeration's destructor, next,
|
48
|
+
* unext, snext, or reset.</p>
|
49
|
+
*
|
50
|
+
* ICU 2.8 adds some default implementations and helper functions
|
51
|
+
* for subclasses.
|
52
|
+
*
|
53
|
+
* @stable ICU 2.4
|
54
|
+
*/
|
55
|
+
class U_COMMON_API StringEnumeration : public UObject {
|
56
|
+
public:
|
57
|
+
/**
|
58
|
+
* Destructor.
|
59
|
+
* @stable ICU 2.4
|
60
|
+
*/
|
61
|
+
virtual ~StringEnumeration();
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Clone this object, an instance of a subclass of StringEnumeration.
|
65
|
+
* Clones can be used concurrently in multiple threads.
|
66
|
+
* If a subclass does not implement clone(), or if an error occurs,
|
67
|
+
* then NULL is returned.
|
68
|
+
* The clone functions in all subclasses return a base class pointer
|
69
|
+
* because some compilers do not support covariant (same-as-this)
|
70
|
+
* return types; cast to the appropriate subclass if necessary.
|
71
|
+
* The caller must delete the clone.
|
72
|
+
*
|
73
|
+
* @return a clone of this object
|
74
|
+
*
|
75
|
+
* @see getDynamicClassID
|
76
|
+
* @stable ICU 2.8
|
77
|
+
*/
|
78
|
+
virtual StringEnumeration *clone() const;
|
79
|
+
|
80
|
+
/**
|
81
|
+
* <p>Return the number of elements that the iterator traverses. If
|
82
|
+
* the iterator is out of sync with its service, status is set to
|
83
|
+
* U_ENUM_OUT_OF_SYNC_ERROR, and the return value is zero.</p>
|
84
|
+
*
|
85
|
+
* <p>The return value will not change except possibly as a result of
|
86
|
+
* a subsequent call to reset, or if the iterator becomes out of sync.</p>
|
87
|
+
*
|
88
|
+
* <p>This is a convenience function. It can end up being very
|
89
|
+
* expensive as all the items might have to be pre-fetched
|
90
|
+
* (depending on the storage format of the data being
|
91
|
+
* traversed).</p>
|
92
|
+
*
|
93
|
+
* @param status the error code.
|
94
|
+
* @return number of elements in the iterator.
|
95
|
+
*
|
96
|
+
* @stable ICU 2.4 */
|
97
|
+
virtual int32_t count(UErrorCode& status) const = 0;
|
98
|
+
|
99
|
+
/**
|
100
|
+
* <p>Returns the next element as a NUL-terminated char*. If there
|
101
|
+
* are no more elements, returns NULL. If the resultLength pointer
|
102
|
+
* is not NULL, the length of the string (not counting the
|
103
|
+
* terminating NUL) is returned at that address. If an error
|
104
|
+
* status is returned, the value at resultLength is undefined.</p>
|
105
|
+
*
|
106
|
+
* <p>The returned pointer is owned by this iterator and must not be
|
107
|
+
* deleted by the caller. The pointer is valid until the next call
|
108
|
+
* to next, unext, snext, reset, or the enumerator's destructor.</p>
|
109
|
+
*
|
110
|
+
* <p>If the iterator is out of sync with its service, status is set
|
111
|
+
* to U_ENUM_OUT_OF_SYNC_ERROR and NULL is returned.</p>
|
112
|
+
*
|
113
|
+
* <p>If the native service string is a UChar* string, it is
|
114
|
+
* converted to char* with the invariant converter. If the
|
115
|
+
* conversion fails (because a character cannot be converted) then
|
116
|
+
* status is set to U_INVARIANT_CONVERSION_ERROR and the return
|
117
|
+
* value is undefined (though not NULL).</p>
|
118
|
+
*
|
119
|
+
* Starting with ICU 2.8, the default implementation calls snext()
|
120
|
+
* and handles the conversion.
|
121
|
+
* Either next() or snext() must be implemented differently by a subclass.
|
122
|
+
*
|
123
|
+
* @param status the error code.
|
124
|
+
* @param resultLength a pointer to receive the length, can be NULL.
|
125
|
+
* @return a pointer to the string, or NULL.
|
126
|
+
*
|
127
|
+
* @stable ICU 2.4
|
128
|
+
*/
|
129
|
+
virtual const char* next(int32_t *resultLength, UErrorCode& status);
|
130
|
+
|
131
|
+
/**
|
132
|
+
* <p>Returns the next element as a NUL-terminated UChar*. If there
|
133
|
+
* are no more elements, returns NULL. If the resultLength pointer
|
134
|
+
* is not NULL, the length of the string (not counting the
|
135
|
+
* terminating NUL) is returned at that address. If an error
|
136
|
+
* status is returned, the value at resultLength is undefined.</p>
|
137
|
+
*
|
138
|
+
* <p>The returned pointer is owned by this iterator and must not be
|
139
|
+
* deleted by the caller. The pointer is valid until the next call
|
140
|
+
* to next, unext, snext, reset, or the enumerator's destructor.</p>
|
141
|
+
*
|
142
|
+
* <p>If the iterator is out of sync with its service, status is set
|
143
|
+
* to U_ENUM_OUT_OF_SYNC_ERROR and NULL is returned.</p>
|
144
|
+
*
|
145
|
+
* Starting with ICU 2.8, the default implementation calls snext()
|
146
|
+
* and handles the conversion.
|
147
|
+
*
|
148
|
+
* @param status the error code.
|
149
|
+
* @param resultLength a ponter to receive the length, can be NULL.
|
150
|
+
* @return a pointer to the string, or NULL.
|
151
|
+
*
|
152
|
+
* @stable ICU 2.4
|
153
|
+
*/
|
154
|
+
virtual const UChar* unext(int32_t *resultLength, UErrorCode& status);
|
155
|
+
|
156
|
+
/**
|
157
|
+
* <p>Returns the next element a UnicodeString*. If there are no
|
158
|
+
* more elements, returns NULL.</p>
|
159
|
+
*
|
160
|
+
* <p>The returned pointer is owned by this iterator and must not be
|
161
|
+
* deleted by the caller. The pointer is valid until the next call
|
162
|
+
* to next, unext, snext, reset, or the enumerator's destructor.</p>
|
163
|
+
*
|
164
|
+
* <p>If the iterator is out of sync with its service, status is set
|
165
|
+
* to U_ENUM_OUT_OF_SYNC_ERROR and NULL is returned.</p>
|
166
|
+
*
|
167
|
+
* Starting with ICU 2.8, the default implementation calls next()
|
168
|
+
* and handles the conversion.
|
169
|
+
* Either next() or snext() must be implemented differently by a subclass.
|
170
|
+
*
|
171
|
+
* @param status the error code.
|
172
|
+
* @return a pointer to the string, or NULL.
|
173
|
+
*
|
174
|
+
* @stable ICU 2.4
|
175
|
+
*/
|
176
|
+
virtual const UnicodeString* snext(UErrorCode& status);
|
177
|
+
|
178
|
+
/**
|
179
|
+
* <p>Resets the iterator. This re-establishes sync with the
|
180
|
+
* service and rewinds the iterator to start at the first
|
181
|
+
* element.</p>
|
182
|
+
*
|
183
|
+
* <p>Previous pointers returned by next, unext, or snext become
|
184
|
+
* invalid, and the value returned by count might change.</p>
|
185
|
+
*
|
186
|
+
* @param status the error code.
|
187
|
+
*
|
188
|
+
* @stable ICU 2.4
|
189
|
+
*/
|
190
|
+
virtual void reset(UErrorCode& status) = 0;
|
191
|
+
|
192
|
+
/**
|
193
|
+
* Compares this enumeration to other to check if both are equal
|
194
|
+
*
|
195
|
+
* @param that The other string enumeration to compare this object to
|
196
|
+
* @return TRUE if the enumerations are equal. FALSE if not.
|
197
|
+
* @stable ICU 3.6
|
198
|
+
*/
|
199
|
+
virtual UBool operator==(const StringEnumeration& that)const;
|
200
|
+
/**
|
201
|
+
* Compares this enumeration to other to check if both are not equal
|
202
|
+
*
|
203
|
+
* @param that The other string enumeration to compare this object to
|
204
|
+
* @return TRUE if the enumerations are equal. FALSE if not.
|
205
|
+
* @stable ICU 3.6
|
206
|
+
*/
|
207
|
+
virtual UBool operator!=(const StringEnumeration& that)const;
|
208
|
+
|
209
|
+
protected:
|
210
|
+
/**
|
211
|
+
* UnicodeString field for use with default implementations and subclasses.
|
212
|
+
* @stable ICU 2.8
|
213
|
+
*/
|
214
|
+
UnicodeString unistr;
|
215
|
+
/**
|
216
|
+
* char * default buffer for use with default implementations and subclasses.
|
217
|
+
* @stable ICU 2.8
|
218
|
+
*/
|
219
|
+
char charsBuffer[32];
|
220
|
+
/**
|
221
|
+
* char * buffer for use with default implementations and subclasses.
|
222
|
+
* Allocated in constructor and in ensureCharsCapacity().
|
223
|
+
* @stable ICU 2.8
|
224
|
+
*/
|
225
|
+
char *chars;
|
226
|
+
/**
|
227
|
+
* Capacity of chars, for use with default implementations and subclasses.
|
228
|
+
* @stable ICU 2.8
|
229
|
+
*/
|
230
|
+
int32_t charsCapacity;
|
231
|
+
|
232
|
+
/**
|
233
|
+
* Default constructor for use with default implementations and subclasses.
|
234
|
+
* @stable ICU 2.8
|
235
|
+
*/
|
236
|
+
StringEnumeration();
|
237
|
+
|
238
|
+
/**
|
239
|
+
* Ensures that chars is at least as large as the requested capacity.
|
240
|
+
* For use with default implementations and subclasses.
|
241
|
+
*
|
242
|
+
* @param capacity Requested capacity.
|
243
|
+
* @param status ICU in/out error code.
|
244
|
+
* @stable ICU 2.8
|
245
|
+
*/
|
246
|
+
void ensureCharsCapacity(int32_t capacity, UErrorCode &status);
|
247
|
+
|
248
|
+
/**
|
249
|
+
* Converts s to Unicode and sets unistr to the result.
|
250
|
+
* For use with default implementations and subclasses,
|
251
|
+
* especially for implementations of snext() in terms of next().
|
252
|
+
* This is provided with a helper function instead of a default implementation
|
253
|
+
* of snext() to avoid potential infinite loops between next() and snext().
|
254
|
+
*
|
255
|
+
* For example:
|
256
|
+
* \code
|
257
|
+
* const UnicodeString* snext(UErrorCode& status) {
|
258
|
+
* int32_t resultLength=0;
|
259
|
+
* const char *s=next(&resultLength, status);
|
260
|
+
* return setChars(s, resultLength, status);
|
261
|
+
* }
|
262
|
+
* \endcode
|
263
|
+
*
|
264
|
+
* @param s String to be converted to Unicode.
|
265
|
+
* @param length Length of the string.
|
266
|
+
* @param status ICU in/out error code.
|
267
|
+
* @return A pointer to unistr.
|
268
|
+
* @stable ICU 2.8
|
269
|
+
*/
|
270
|
+
UnicodeString *setChars(const char *s, int32_t length, UErrorCode &status);
|
271
|
+
};
|
272
|
+
|
273
|
+
U_NAMESPACE_END
|
274
|
+
|
275
|
+
/* STRENUM_H */
|
276
|
+
#endif
|