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,100 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* (C) Copyright IBM Corp. 1998-2014 - All Rights Reserved
|
4
|
+
*
|
5
|
+
*/
|
6
|
+
|
7
|
+
#ifndef __LESWAPS_H
|
8
|
+
#define __LESWAPS_H
|
9
|
+
|
10
|
+
#include "LETypes.h"
|
11
|
+
|
12
|
+
/**
|
13
|
+
* \file
|
14
|
+
* \brief C++ API: Endian independent access to data for LayoutEngine
|
15
|
+
*/
|
16
|
+
|
17
|
+
U_NAMESPACE_BEGIN
|
18
|
+
|
19
|
+
/**
|
20
|
+
* A convenience macro which invokes the swapWord member function
|
21
|
+
* from a concise call.
|
22
|
+
*
|
23
|
+
* @deprecated ICU 54. See {@link icu::LayoutEngine}
|
24
|
+
*/
|
25
|
+
#define SWAPW(value) LESwaps::swapWord((le_uint16)(value))
|
26
|
+
|
27
|
+
/**
|
28
|
+
* A convenience macro which invokes the swapLong member function
|
29
|
+
* from a concise call.
|
30
|
+
*
|
31
|
+
* @deprecated ICU 54. See {@link icu::LayoutEngine}
|
32
|
+
*/
|
33
|
+
#define SWAPL(value) LESwaps::swapLong((le_uint32)(value))
|
34
|
+
|
35
|
+
/**
|
36
|
+
* This class is used to access data which stored in big endian order
|
37
|
+
* regardless of the conventions of the platform.
|
38
|
+
*
|
39
|
+
* All methods are static and inline in an attempt to induce the compiler
|
40
|
+
* to do most of the calculations at compile time.
|
41
|
+
*
|
42
|
+
* @deprecated ICU 54. See {@link icu::LayoutEngine}
|
43
|
+
*/
|
44
|
+
class U_LAYOUT_API LESwaps /* not : public UObject because all methods are static */ {
|
45
|
+
public:
|
46
|
+
|
47
|
+
/**
|
48
|
+
* Reads a big-endian 16-bit word and returns a native-endian value.
|
49
|
+
* No-op on a big-endian platform, byte-swaps on a little-endian platform.
|
50
|
+
*
|
51
|
+
* @param value - the word to be byte swapped
|
52
|
+
*
|
53
|
+
* @return the byte swapped word
|
54
|
+
*
|
55
|
+
* @deprecated ICU 54. See {@link icu::LayoutEngine}
|
56
|
+
*/
|
57
|
+
static le_uint16 swapWord(le_uint16 value)
|
58
|
+
{
|
59
|
+
#if (defined(U_IS_BIG_ENDIAN) && U_IS_BIG_ENDIAN) || \
|
60
|
+
(defined(BYTE_ORDER) && defined(BIG_ENDIAN) && (BYTE_ORDER == BIG_ENDIAN)) || \
|
61
|
+
defined(__BIG_ENDIAN__)
|
62
|
+
// Fastpath when we know that the platform is big-endian.
|
63
|
+
return value;
|
64
|
+
#else
|
65
|
+
// Reads a big-endian value on any platform.
|
66
|
+
const le_uint8 *p = reinterpret_cast<const le_uint8 *>(&value);
|
67
|
+
return (le_uint16)((p[0] << 8) | p[1]);
|
68
|
+
#endif
|
69
|
+
};
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Reads a big-endian 32-bit word and returns a native-endian value.
|
73
|
+
* No-op on a big-endian platform, byte-swaps on a little-endian platform.
|
74
|
+
*
|
75
|
+
* @param value - the long to be byte swapped
|
76
|
+
*
|
77
|
+
* @return the byte swapped long
|
78
|
+
*
|
79
|
+
* @deprecated ICU 54. See {@link icu::LayoutEngine}
|
80
|
+
*/
|
81
|
+
static le_uint32 swapLong(le_uint32 value)
|
82
|
+
{
|
83
|
+
#if (defined(U_IS_BIG_ENDIAN) && U_IS_BIG_ENDIAN) || \
|
84
|
+
(defined(BYTE_ORDER) && defined(BIG_ENDIAN) && (BYTE_ORDER == BIG_ENDIAN)) || \
|
85
|
+
defined(__BIG_ENDIAN__)
|
86
|
+
// Fastpath when we know that the platform is big-endian.
|
87
|
+
return value;
|
88
|
+
#else
|
89
|
+
// Reads a big-endian value on any platform.
|
90
|
+
const le_uint8 *p = reinterpret_cast<const le_uint8 *>(&value);
|
91
|
+
return (le_uint32)((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]);
|
92
|
+
#endif
|
93
|
+
};
|
94
|
+
|
95
|
+
private:
|
96
|
+
LESwaps() {} // private - forbid instantiation
|
97
|
+
};
|
98
|
+
|
99
|
+
U_NAMESPACE_END
|
100
|
+
#endif
|
@@ -0,0 +1,418 @@
|
|
1
|
+
/*
|
2
|
+
* -*- c++ -*-
|
3
|
+
*
|
4
|
+
* (C) Copyright IBM Corp. and others 2013 - All Rights Reserved
|
5
|
+
*
|
6
|
+
* Range checking
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
|
10
|
+
#ifndef __LETABLEREFERENCE_H
|
11
|
+
#define __LETABLEREFERENCE_H
|
12
|
+
|
13
|
+
#include "LETypes.h"
|
14
|
+
#include "LEFontInstance.h"
|
15
|
+
|
16
|
+
|
17
|
+
#define kQuestionmarkTableTag 0x3F3F3F3FUL
|
18
|
+
#define kTildeTableTag 0x7e7e7e7eUL
|
19
|
+
#ifdef __cplusplus
|
20
|
+
|
21
|
+
// internal - interface for range checking
|
22
|
+
U_NAMESPACE_BEGIN
|
23
|
+
|
24
|
+
#if LE_ASSERT_BAD_FONT
|
25
|
+
class LETableReference; // fwd
|
26
|
+
/**
|
27
|
+
* defined in OpenTypeUtilities.cpp
|
28
|
+
* @internal
|
29
|
+
*/
|
30
|
+
extern void _debug_LETableReference(const char *f, int l, const char *msg, const LETableReference *what, const void *ptr, size_t len);
|
31
|
+
|
32
|
+
#define LE_DEBUG_TR(x) _debug_LETableReference(__FILE__, __LINE__, x, this, NULL, 0);
|
33
|
+
#define LE_DEBUG_TR3(x,y,z) _debug_LETableReference(__FILE__, __LINE__, x, this, (const void*)y, (size_t)z);
|
34
|
+
#if 0
|
35
|
+
#define LE_TRACE_TR(x) _debug_LETableReference(__FILE__, __LINE__, x, this, NULL, 0);
|
36
|
+
#else
|
37
|
+
#define LE_TRACE_TR(x)
|
38
|
+
#endif
|
39
|
+
|
40
|
+
#else
|
41
|
+
#define LE_DEBUG_TR(x)
|
42
|
+
#define LE_DEBUG_TR3(x,y,z)
|
43
|
+
#define LE_TRACE_TR(x)
|
44
|
+
#endif
|
45
|
+
|
46
|
+
/**
|
47
|
+
* @internal
|
48
|
+
*/
|
49
|
+
class LETableReference {
|
50
|
+
public:
|
51
|
+
/**
|
52
|
+
* @internal
|
53
|
+
* Construct from a specific tag
|
54
|
+
*/
|
55
|
+
LETableReference(const LEFontInstance* font, LETag tableTag, LEErrorCode &success) :
|
56
|
+
fFont(font), fTag(tableTag), fParent(NULL), fStart(NULL),fLength(LE_UINTPTR_MAX) {
|
57
|
+
loadTable(success);
|
58
|
+
LE_TRACE_TR("INFO: new table load")
|
59
|
+
}
|
60
|
+
|
61
|
+
LETableReference(const LETableReference &parent, LEErrorCode &success) : fFont(parent.fFont), fTag(parent.fTag), fParent(&parent), fStart(parent.fStart), fLength(parent.fLength) {
|
62
|
+
if(LE_FAILURE(success)) {
|
63
|
+
clear();
|
64
|
+
}
|
65
|
+
LE_TRACE_TR("INFO: new clone")
|
66
|
+
}
|
67
|
+
|
68
|
+
LETableReference(const le_uint8* data, size_t length = LE_UINTPTR_MAX) :
|
69
|
+
fFont(NULL), fTag(kQuestionmarkTableTag), fParent(NULL), fStart(data), fLength(length) {
|
70
|
+
LE_TRACE_TR("INFO: new raw")
|
71
|
+
}
|
72
|
+
LETableReference() :
|
73
|
+
fFont(NULL), fTag(kQuestionmarkTableTag), fParent(NULL), fStart(NULL), fLength(0) {
|
74
|
+
LE_TRACE_TR("INFO: new empty")
|
75
|
+
}
|
76
|
+
|
77
|
+
~LETableReference() {
|
78
|
+
fTag=kTildeTableTag;
|
79
|
+
LE_TRACE_TR("INFO: new dtor")
|
80
|
+
}
|
81
|
+
|
82
|
+
/**
|
83
|
+
* @internal
|
84
|
+
* @param length if LE_UINTPTR_MAX means "whole table"
|
85
|
+
* subset
|
86
|
+
*/
|
87
|
+
LETableReference(const LETableReference &parent, size_t offset, size_t length,
|
88
|
+
LEErrorCode &err) :
|
89
|
+
fFont(parent.fFont), fTag(parent.fTag), fParent(&parent),
|
90
|
+
fStart((parent.fStart)+offset), fLength(length) {
|
91
|
+
if(LE_SUCCESS(err)) {
|
92
|
+
if(isEmpty()) {
|
93
|
+
//err = LE_MISSING_FONT_TABLE_ERROR;
|
94
|
+
clear(); // it's just empty. Not an error.
|
95
|
+
} else if(offset >= fParent->fLength) {
|
96
|
+
LE_DEBUG_TR3("offset out of range: (%p) +%d", NULL, offset);
|
97
|
+
err = LE_INDEX_OUT_OF_BOUNDS_ERROR;
|
98
|
+
clear();
|
99
|
+
} else {
|
100
|
+
if(fLength == LE_UINTPTR_MAX &&
|
101
|
+
fParent->fLength != LE_UINTPTR_MAX) {
|
102
|
+
fLength = (fParent->fLength) - offset; // decrement length as base address is incremented
|
103
|
+
}
|
104
|
+
if(fLength != LE_UINTPTR_MAX) { // if we have bounds:
|
105
|
+
if(offset+fLength > fParent->fLength) {
|
106
|
+
LE_DEBUG_TR3("offset+fLength out of range: (%p) +%d", NULL, offset+fLength);
|
107
|
+
err = LE_INDEX_OUT_OF_BOUNDS_ERROR; // exceeded
|
108
|
+
clear();
|
109
|
+
}
|
110
|
+
}
|
111
|
+
}
|
112
|
+
} else {
|
113
|
+
clear();
|
114
|
+
}
|
115
|
+
LE_TRACE_TR("INFO: new subset")
|
116
|
+
}
|
117
|
+
|
118
|
+
const void* getAlias() const { return (const void*)fStart; }
|
119
|
+
const void* getAliasRAW() const { LE_DEBUG_TR("getAliasRAW()"); return (const void*)fStart; }
|
120
|
+
le_bool isEmpty() const { return fStart==NULL || fLength==0; }
|
121
|
+
le_bool isValid() const { return !isEmpty(); }
|
122
|
+
le_bool hasBounds() const { return fLength!=LE_UINTPTR_MAX; }
|
123
|
+
void clear() { fLength=0; fStart=NULL; }
|
124
|
+
size_t getLength() const { return fLength; }
|
125
|
+
const LEFontInstance* getFont() const { return fFont; }
|
126
|
+
LETag getTag() const { return fTag; }
|
127
|
+
const LETableReference* getParent() const { return fParent; }
|
128
|
+
|
129
|
+
void addOffset(size_t offset, LEErrorCode &success) {
|
130
|
+
if(hasBounds()) {
|
131
|
+
if(offset > fLength) {
|
132
|
+
LE_DEBUG_TR("addOffset off end");
|
133
|
+
success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
|
134
|
+
return;
|
135
|
+
} else {
|
136
|
+
fLength -= offset;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
fStart += offset;
|
140
|
+
}
|
141
|
+
|
142
|
+
size_t ptrToOffset(const void *atPtr, LEErrorCode &success) const {
|
143
|
+
if(atPtr==NULL) return 0;
|
144
|
+
if(LE_FAILURE(success)) return LE_UINTPTR_MAX;
|
145
|
+
if((atPtr < fStart) ||
|
146
|
+
(hasBounds() && (atPtr > fStart+fLength))) {
|
147
|
+
LE_DEBUG_TR3("ptrToOffset args out of range: %p", atPtr, 0);
|
148
|
+
success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
|
149
|
+
return LE_UINTPTR_MAX;
|
150
|
+
}
|
151
|
+
return ((const le_uint8*)atPtr)-fStart;
|
152
|
+
}
|
153
|
+
|
154
|
+
/**
|
155
|
+
* Clamp down the length, for range checking.
|
156
|
+
*/
|
157
|
+
size_t contractLength(size_t newLength) {
|
158
|
+
if(fLength!=LE_UINTPTR_MAX&&newLength>0&&newLength<=fLength) {
|
159
|
+
fLength = newLength;
|
160
|
+
}
|
161
|
+
return fLength;
|
162
|
+
}
|
163
|
+
|
164
|
+
/**
|
165
|
+
* Throw an error if offset+length off end
|
166
|
+
*/
|
167
|
+
public:
|
168
|
+
size_t verifyLength(size_t offset, size_t length, LEErrorCode &success) {
|
169
|
+
if(isValid()&&
|
170
|
+
LE_SUCCESS(success) &&
|
171
|
+
fLength!=LE_UINTPTR_MAX && length!=LE_UINTPTR_MAX && offset!=LE_UINTPTR_MAX &&
|
172
|
+
(offset+length)>fLength) {
|
173
|
+
LE_DEBUG_TR3("verifyLength failed (%p) %d",NULL, offset+length);
|
174
|
+
success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
|
175
|
+
#if LE_ASSERT_BAD_FONT
|
176
|
+
fprintf(stderr, "offset=%lu, len=%lu, would be at %p, (%lu) off end. End at %p\n", offset,length, fStart+offset+length, (offset+length-fLength), (offset+length-fLength)+fStart);
|
177
|
+
#endif
|
178
|
+
}
|
179
|
+
return fLength;
|
180
|
+
}
|
181
|
+
|
182
|
+
/**
|
183
|
+
* Change parent link to another
|
184
|
+
*/
|
185
|
+
LETableReference &reparent(const LETableReference &base) {
|
186
|
+
fParent = &base;
|
187
|
+
return *this;
|
188
|
+
}
|
189
|
+
|
190
|
+
/**
|
191
|
+
* remove parent link. Factory functions should do this.
|
192
|
+
*/
|
193
|
+
void orphan(void) {
|
194
|
+
fParent=NULL;
|
195
|
+
}
|
196
|
+
|
197
|
+
protected:
|
198
|
+
const LEFontInstance* fFont;
|
199
|
+
LETag fTag;
|
200
|
+
const LETableReference *fParent;
|
201
|
+
const le_uint8 *fStart; // keep as 8 bit internally, for pointer math
|
202
|
+
size_t fLength;
|
203
|
+
|
204
|
+
void loadTable(LEErrorCode &success) {
|
205
|
+
if(LE_SUCCESS(success)) {
|
206
|
+
fStart = (const le_uint8*)(fFont->getFontTable(fTag, fLength)); // note - a null table is not an error.
|
207
|
+
}
|
208
|
+
}
|
209
|
+
|
210
|
+
void setRaw(const void *data, size_t length = LE_UINTPTR_MAX) {
|
211
|
+
fFont = NULL;
|
212
|
+
fTag = kQuestionmarkTableTag;
|
213
|
+
fParent = NULL;
|
214
|
+
fStart = (const le_uint8*)data;
|
215
|
+
fLength = length;
|
216
|
+
}
|
217
|
+
};
|
218
|
+
|
219
|
+
|
220
|
+
template<class T>
|
221
|
+
class LETableVarSizer {
|
222
|
+
public:
|
223
|
+
inline static size_t getSize();
|
224
|
+
};
|
225
|
+
|
226
|
+
// base definition- could override for adjustments
|
227
|
+
template<class T> inline
|
228
|
+
size_t LETableVarSizer<T>::getSize() {
|
229
|
+
return sizeof(T);
|
230
|
+
}
|
231
|
+
|
232
|
+
/**
|
233
|
+
* \def LE_VAR_ARRAY
|
234
|
+
* @param x Type (T)
|
235
|
+
* @param y some member that is of length ANY_NUMBER
|
236
|
+
* Call this after defining a class, for example:
|
237
|
+
* LE_VAR_ARRAY(FeatureListTable,featureRecordArray)
|
238
|
+
* this is roughly equivalent to:
|
239
|
+
* template<> inline size_t LETableVarSizer<FeatureListTable>::getSize() { return sizeof(FeatureListTable) - (sizeof(le_uint16)*ANY_NUMBER); }
|
240
|
+
* it's a specialization that informs the LETableReference subclasses to NOT include the variable array in the size.
|
241
|
+
* dereferencing NULL is valid here because we never actually dereference it, just inside sizeof.
|
242
|
+
*/
|
243
|
+
#define LE_VAR_ARRAY(x,y) template<> inline size_t LETableVarSizer<x>::getSize() { return sizeof(x) - (sizeof(((const x*)0)->y)); }
|
244
|
+
/**
|
245
|
+
* \def LE_CORRECT_SIZE
|
246
|
+
* @param x type (T)
|
247
|
+
* @param y fixed size for T
|
248
|
+
*/
|
249
|
+
#define LE_CORRECT_SIZE(x,y) template<> inline size_t LETableVarSizer<x>::getSize() { return y; }
|
250
|
+
|
251
|
+
/**
|
252
|
+
* Open a new entry based on an existing table
|
253
|
+
*/
|
254
|
+
|
255
|
+
/**
|
256
|
+
* \def LE_UNBOUNDED_ARRAY
|
257
|
+
* define an array with no *known* bound. Will trim to available size.
|
258
|
+
* @internal
|
259
|
+
*/
|
260
|
+
#define LE_UNBOUNDED_ARRAY LE_UINT32_MAX
|
261
|
+
|
262
|
+
template<class T>
|
263
|
+
class LEReferenceToArrayOf : public LETableReference {
|
264
|
+
public:
|
265
|
+
LEReferenceToArrayOf(const LETableReference &parent, LEErrorCode &success, size_t offset, le_uint32 count)
|
266
|
+
: LETableReference(parent, offset, LE_UINTPTR_MAX, success), fCount(count) {
|
267
|
+
LE_TRACE_TR("INFO: new RTAO by offset")
|
268
|
+
if(LE_SUCCESS(success)) {
|
269
|
+
if(count == LE_UNBOUNDED_ARRAY) { // not a known length
|
270
|
+
count = getLength()/LETableVarSizer<T>::getSize(); // fit to max size
|
271
|
+
}
|
272
|
+
LETableReference::verifyLength(0, LETableVarSizer<T>::getSize()*count, success);
|
273
|
+
}
|
274
|
+
if(LE_FAILURE(success)) {
|
275
|
+
fCount=0;
|
276
|
+
clear();
|
277
|
+
}
|
278
|
+
}
|
279
|
+
|
280
|
+
LEReferenceToArrayOf(const LETableReference &parent, LEErrorCode &success, const T* array, le_uint32 count)
|
281
|
+
: LETableReference(parent, parent.ptrToOffset(array, success), LE_UINTPTR_MAX, success), fCount(count) {
|
282
|
+
LE_TRACE_TR("INFO: new RTAO")
|
283
|
+
if(LE_SUCCESS(success)) {
|
284
|
+
if(count == LE_UNBOUNDED_ARRAY) { // not a known length
|
285
|
+
count = getLength()/LETableVarSizer<T>::getSize(); // fit to max size
|
286
|
+
}
|
287
|
+
LETableReference::verifyLength(0, LETableVarSizer<T>::getSize()*count, success);
|
288
|
+
}
|
289
|
+
if(LE_FAILURE(success)) clear();
|
290
|
+
}
|
291
|
+
LEReferenceToArrayOf(const LETableReference &parent, LEErrorCode &success, const T* array, size_t offset, le_uint32 count)
|
292
|
+
: LETableReference(parent, parent.ptrToOffset(array, success)+offset, LE_UINTPTR_MAX, success), fCount(count) {
|
293
|
+
LE_TRACE_TR("INFO: new RTAO")
|
294
|
+
if(LE_SUCCESS(success)) {
|
295
|
+
if(count == LE_UNBOUNDED_ARRAY) { // not a known length
|
296
|
+
count = getLength()/LETableVarSizer<T>::getSize(); // fit to max size
|
297
|
+
}
|
298
|
+
LETableReference::verifyLength(0, LETableVarSizer<T>::getSize()*count, success);
|
299
|
+
}
|
300
|
+
if(LE_FAILURE(success)) clear();
|
301
|
+
}
|
302
|
+
|
303
|
+
LEReferenceToArrayOf() :LETableReference(), fCount(0) {}
|
304
|
+
|
305
|
+
le_uint32 getCount() const { return fCount; }
|
306
|
+
|
307
|
+
using LETableReference::getAlias;
|
308
|
+
|
309
|
+
const T *getAlias(le_uint32 i, LEErrorCode &success) const {
|
310
|
+
return ((const T*)(((const char*)getAlias())+getOffsetFor(i, success)));
|
311
|
+
}
|
312
|
+
|
313
|
+
const T *getAliasRAW() const { LE_DEBUG_TR("getAliasRAW<>"); return (const T*)fStart; }
|
314
|
+
|
315
|
+
const T& getObject(le_uint32 i, LEErrorCode &success) const {
|
316
|
+
return *getAlias(i,success);
|
317
|
+
}
|
318
|
+
|
319
|
+
const T& operator()(le_uint32 i, LEErrorCode &success) const {
|
320
|
+
return *getAlias(i,success);
|
321
|
+
}
|
322
|
+
|
323
|
+
size_t getOffsetFor(le_uint32 i, LEErrorCode &success) const {
|
324
|
+
if(LE_SUCCESS(success)&&i<getCount()) {
|
325
|
+
return LETableVarSizer<T>::getSize()*i;
|
326
|
+
} else {
|
327
|
+
success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
|
328
|
+
}
|
329
|
+
return 0;
|
330
|
+
}
|
331
|
+
|
332
|
+
LEReferenceToArrayOf<T> &reparent(const LETableReference &base) {
|
333
|
+
fParent = &base;
|
334
|
+
return *this;
|
335
|
+
}
|
336
|
+
|
337
|
+
LEReferenceToArrayOf(const LETableReference& parent, LEErrorCode & success) : LETableReference(parent,0, LE_UINTPTR_MAX, success), fCount(0) {
|
338
|
+
LE_TRACE_TR("INFO: null RTAO")
|
339
|
+
}
|
340
|
+
|
341
|
+
private:
|
342
|
+
le_uint32 fCount;
|
343
|
+
};
|
344
|
+
|
345
|
+
|
346
|
+
template<class T>
|
347
|
+
class LEReferenceTo : public LETableReference {
|
348
|
+
public:
|
349
|
+
/**
|
350
|
+
* open a sub reference.
|
351
|
+
* @param parent parent reference
|
352
|
+
* @param success error status
|
353
|
+
* @param atPtr location of reference - if NULL, will be at offset zero (i.e. downcast of parent). Otherwise must be a pointer within parent's bounds.
|
354
|
+
*/
|
355
|
+
inline LEReferenceTo(const LETableReference &parent, LEErrorCode &success, const void* atPtr)
|
356
|
+
: LETableReference(parent, parent.ptrToOffset(atPtr, success), LE_UINTPTR_MAX, success) {
|
357
|
+
verifyLength(0, LETableVarSizer<T>::getSize(), success);
|
358
|
+
if(LE_FAILURE(success)) clear();
|
359
|
+
}
|
360
|
+
/**
|
361
|
+
* ptr plus offset
|
362
|
+
*/
|
363
|
+
inline LEReferenceTo(const LETableReference &parent, LEErrorCode &success, const void* atPtr, size_t offset)
|
364
|
+
: LETableReference(parent, parent.ptrToOffset(atPtr, success)+offset, LE_UINTPTR_MAX, success) {
|
365
|
+
verifyLength(0, LETableVarSizer<T>::getSize(), success);
|
366
|
+
if(LE_FAILURE(success)) clear();
|
367
|
+
}
|
368
|
+
inline LEReferenceTo(const LETableReference &parent, LEErrorCode &success, size_t offset)
|
369
|
+
: LETableReference(parent, offset, LE_UINTPTR_MAX, success) {
|
370
|
+
verifyLength(0, LETableVarSizer<T>::getSize(), success);
|
371
|
+
if(LE_FAILURE(success)) clear();
|
372
|
+
}
|
373
|
+
inline LEReferenceTo(const LETableReference &parent, LEErrorCode &success)
|
374
|
+
: LETableReference(parent, 0, LE_UINTPTR_MAX, success) {
|
375
|
+
verifyLength(0, LETableVarSizer<T>::getSize(), success);
|
376
|
+
if(LE_FAILURE(success)) clear();
|
377
|
+
}
|
378
|
+
inline LEReferenceTo(const LEFontInstance *font, LETag tableTag, LEErrorCode &success)
|
379
|
+
: LETableReference(font, tableTag, success) {
|
380
|
+
verifyLength(0, LETableVarSizer<T>::getSize(), success);
|
381
|
+
if(LE_FAILURE(success)) clear();
|
382
|
+
}
|
383
|
+
inline LEReferenceTo(const le_uint8 *data, size_t length = LE_UINTPTR_MAX) : LETableReference(data, length) {}
|
384
|
+
inline LEReferenceTo(const T *data, size_t length = LE_UINTPTR_MAX) : LETableReference((const le_uint8*)data, length) {}
|
385
|
+
inline LEReferenceTo() : LETableReference(NULL) {}
|
386
|
+
|
387
|
+
inline LEReferenceTo<T>& operator=(const T* other) {
|
388
|
+
setRaw(other);
|
389
|
+
return *this;
|
390
|
+
}
|
391
|
+
|
392
|
+
LEReferenceTo<T> &reparent(const LETableReference &base) {
|
393
|
+
fParent = &base;
|
394
|
+
return *this;
|
395
|
+
}
|
396
|
+
|
397
|
+
/**
|
398
|
+
* roll forward by one <T> size.
|
399
|
+
* same as addOffset(LETableVarSizer<T>::getSize(),success)
|
400
|
+
*/
|
401
|
+
void addObject(LEErrorCode &success) {
|
402
|
+
addOffset(LETableVarSizer<T>::getSize(), success);
|
403
|
+
}
|
404
|
+
void addObject(size_t count, LEErrorCode &success) {
|
405
|
+
addOffset(LETableVarSizer<T>::getSize()*count, success);
|
406
|
+
}
|
407
|
+
|
408
|
+
const T *operator->() const { return getAlias(); }
|
409
|
+
const T *getAlias() const { return (const T*)fStart; }
|
410
|
+
const T *getAliasRAW() const { LE_DEBUG_TR("getAliasRAW<>"); return (const T*)fStart; }
|
411
|
+
};
|
412
|
+
|
413
|
+
|
414
|
+
U_NAMESPACE_END
|
415
|
+
|
416
|
+
#endif
|
417
|
+
|
418
|
+
#endif
|