[Libreoffice-commits] core.git: Branch 'feature/formula-core-rework' - 1695 commits - accessibility/AllLangResTarget_acc.mk accessibility/CustomTarget_bridge_inc.mk accessibility/CustomTarget_bridge.mk accessibility/inc accessibility/Jar_uno_accessbridge.mk accessibility/Library_acc.mk accessibility/Library_java_uno_accessbridge.mk accessibility/Module_accessibility.mk accessibility/prj accessibility/source afms/Zip_fontunxafm.mk android/abs-lib android/Bootstrap android/experimental android/qa android/sdremote animations/source apple_remote/inc apple_remote/Library_AppleRemote.mk apple_remote/Module_apple_remote.mk apple_remote/Package_inc.mk apple_remote/source autogen.sh avmedia/inc avmedia/Library_avmedia.mk avmedia/source basctl/Library_basctl.mk basctl/Module_basctl.mk basctl/Package_uiconfig.mk basctl/source basctl/UI_basicide.mk basctl/uiconfig basctl/UIConfig_basicide.mk basebmp/CppunitTest_basebmp.mk basebmp/inc basebmp/source basegfx/inc basegfx/source basegfx/test basic/Cppuni tTest_basic_coverage.mk basic/CppunitTest_basic_scanner.mk basic/CppunitTest_basic_vba.mk basic/inc basic/Library_sb.mk basic/qa basic/source bean/com bean/qa binaryurp/Library_binaryurp.mk binaryurp/source bin/convwatch.py bin/distro-install-sdk bin/get-bugzilla-attachments-by-mimetype bin/module-deps.pl boost/boost.4874.patch boost/boost.6139.clang.patch boost/boost.6142.warnings.patch.1 boost/boost.6369.warnings.patch boost/boost.ptree.patch boost/boost.wundef.patch.1 boost/UnpackedTarball_boost.mk bridges/inc bridges/Library_cpp_uno.mk bridges/source bridges/test canvas/inc canvas/Library_cairocanvas.mk canvas/Library_directx9canvas.mk canvas/Library_gdipluscanvas.mk canvas/Library_vclcanvas.mk canvas/source canvas/StaticLibrary_directxcanvas.mk chart2/AllLangResTarget_chartcontroller.mk chart2/CppunitTest_chart2_importtest.mk chart2/JunitTest_chart2_unoapi.mk chart2/Library_chartcontroller.mk chart2/Library_chartcore.mk chart2/Module_chart2.mk chart2/Package_uiconfig.mk chart2/qa chart2/source chart2/UI_chart2.mk chart2/uiconfig chart2/UIConfig_chart2.mk chart2/workbench cli_ure/Executable_climaker.mk cli_ure/Library_cli_cppuhelper_native.mk cli_ure/Library_cli_uno.mk cli_ure/source clucene/ExternalPackage_clucene.mk clucene/Library_clucene.mk clucene/Module_clucene.mk clucene/patches clucene/UnpackedTarball_clucene.mk codemaker/Executable_cppumaker.mk codemaker/Executable_javamaker.mk codemaker/inc codemaker/Package_inc.mk codemaker/README codemaker/source codemaker/StaticLibrary_codemaker_cpp.mk codemaker/StaticLibrary_codemaker_java.mk codemaker/StaticLibrary_codemaker.mk comphelper/CppunitTest_comphelper_test.mk comphelper/inc comphelper/Library_comphelper.mk comphelper/qa comphelper/source compilerplugins/clang compilerplugins/Makefile-clang.mk config_host/config_global.h.in config_host/config_oox.h.in config_host.mk.in configmgr/JunitTest_configmgr_unoapi.mk configmgr/Library_configmgr.mk configmgr/Module_configmgr.mk configmgr/qa co nfigmgr/source configure.ac connectivity/AllLangResTarget_hsqldb.mk connectivity/AllLangResTarget_sdbcl.mk connectivity/AllLangResTarget_sdberr.mk connectivity/com connectivity/Configuration_ado.mk connectivity/Configuration_calc.mk connectivity/Configuration_dbase.mk connectivity/Configuration_evoab.mk connectivity/Configuration_flat.mk connectivity/Configuration_hsqldb.mk connectivity/Configuration_jdbc.mk connectivity/Configuration_kab.mk connectivity/Configuration_macab.mk connectivity/Configuration_mozab.mk connectivity/Configuration_mysql.mk connectivity/Configuration_odbc.mk connectivity/Configuration_postgresql.mk connectivity/Configuration_tdeab.mk connectivity/CppunitTest_connectivity_ado.mk connectivity/CppunitTest_connectivity_commontools.mk connectivity/CppunitTest_connectivity_mork.mk connectivity/inc connectivity/JunitTest_complex.mk connectivity/Library_dbtools.mk connectivity/Library_flat.mk connectivity/Library_hsqldb.mk connectivity/Library_mozabdrv.mk con nectivity/Library_mozab.mk connectivity/Library_mozbootstrap.mk connectivity/Library_postgresql-sdbc-impl.mk connectivity/Library_postgresql-sdbc.mk connectivity/Package_generated.mk connectivity/Package_postgresql-sdbc.mk connectivity/Rdb_postgresql-sdbc.mk connectivity/source connectivity/workben cosv/inc cppcanvas/inc cppcanvas/Library_cppcanvas.mk cppcanvas/source cppu/CppunitTest_cppu_checkapi.mk cppu/CustomTarget_cppu_allheaders.mk cppuhelper/CppunitTest_cppuhelper_checkapi.mk cppuhelper/CustomTarget_cppuhelper_allheaders.mk cppuhelper/inc cppuhelper/InternalUnoApi_cppuhelper.mk cppuhelper/Library_cppuhelper.mk cppuhelper/Module_cppuhelper.mk cppuhelper/Package_cppuhelper_odk_headers.mk cppuhelper/source cppuhelper/ZipPackage_cppuhelper_odk_headers.mk cppu/InternalUnoApi_cppu.mk cppu/Module_cppu.mk cppunit/ExternalPackage_cppunit.mk cppunit/ExternalProject_cppunit.mk cppunit/Module_cppunit.mk cppu/Package_cppu_odk_headers.mk cppu/qa cppu/source cpputools/Package_bin.mk cpputools/source cppu/ZipPackage_cppu_odk_headers.mk crashrep/source ct2n/ExternalPackage_ct2n.mk ct2n/Module_ct2n.mk ct2n/Zip_ct2n.mk cui/AllLangResTarget_cui.mk cui/Library_cui.mk cui/Module_cui.mk cui/source cui/uiconfig cui/UIConfig_cui.mk cui/UI_cui.mk curl/curl-7.26.0_win.patch curl/ExternalPackage_curl.mk curl/ExternalProject_curl.mk dbaccess/AllLangResTarget_dba.mk dbaccess/AllLangResTarget_dbmm.mk dbaccess/AllLangResTarget_dbu.mk dbaccess/AllLangResTarget_sdbt.mk dbaccess/CppunitTest_dbaccess_macros_test.mk dbaccess/Executable_odbcconfig.mk dbaccess/inc dbaccess/JunitTest_dbaccess_unoapi.mk dbaccess/Library_dba.mk dbaccess/Library_dbaxml.mk dbaccess/Library_dbmm.mk dbaccess/Library_dbu.mk dbaccess/Library_sdbt.mk dbaccess/Module_dbaccess.mk dbaccess/Package_inc.mk dbaccess/Package_uiconfig.mk dbaccess/qa dbaccess/source dbaccess/uiconfig dbaccess/UIConfig_dbaccess.mk dbaccess/UIConfig_dbapp.mk dbaccess/UIConfig_dbbrowser.mk dbaccess/UIConfig_dbquery.mk dbaccess/UIC onfig_dbrelation.mk dbaccess/UIConfig_dbtable.mk dbaccess/UIConfig_dbtdata.mk dbaccess/UI_dbaccess.mk desktop/AllLangResTarget_deploymentgui.mk desktop/AllLangResTarget_deployment.mk desktop/AllLangResTarget_dkt.mk desktop/CustomTarget_soffice.mk desktop/Executable_crashrep.com.mk desktop/Executable_officeloader.mk desktop/Executable_oosplash.mk desktop/Executable_quickstart.mk desktop/Executable_sbase.mk desktop/Executable_scalc.mk desktop/Executable_sdraw.mk desktop/Executable_simpress.mk desktop/Executable_smath.mk desktop/Executable_soffice_bin.mk desktop/Executable_soffice.bin.mk desktop/Executable_soffice.mk desktop/Executable_sweb.mk desktop/Executable_swriter.mk desktop/Executable_unoinfo.mk desktop/Executable_unopkg.bin.mk desktop/Executable_unopkg.com.mk desktop/Executable_unopkg.mk desktop/inc desktop/Library_deploymentgui.mk desktop/Library_deploymentmisc.mk desktop/Library_deployment.mk desktop/Library_migrationoo2.mk desktop/Library_migrationoo3.mk desktop/Libr ary_offacc.mk desktop/Library_sofficeapp.mk desktop/Library_spl.mk desktop/Library_spl_unx.mk desktop/Library_unopkgapp.mk desktop/Module_desktop.mk desktop/Package_intro.mk desktop/Package_scripts.mk desktop/Package_soffice_bin.mk desktop/Package_soffice_sh.mk desktop/Pagein_calc.mk desktop/Pagein_common.mk desktop/Pagein_draw.mk desktop/Pagein_impress.mk desktop/Pagein_writer.mk desktop/Pyuno_passive_python.mk desktop/qa desktop/source desktop/StaticLibrary_winextendloaderenv.mk desktop/StaticLibrary_winlauncher.mk desktop/test desktop/UIConfig_deployment.mk desktop/UI_deployment.mk desktop/unx desktop/WinResTarget_quickstart.mk desktop/WinResTarget_sbase.mk desktop/WinResTarget_scalc.mk desktop/WinResTarget_sdraw.mk desktop/WinResTarget_simpress.mk desktop/WinResTarget_smath.mk desktop/WinResTarget_sofficebin.mk desktop/WinResTarget_soffice.mk desktop/WinResTarget_sweb.mk desktop/WinResTarget_swriter.mk desktop/Zip_brand_dev.mk desktop/Zip_brand.mk desktop/Zip_shell.mk di ctionaries distro-configs/LibreOfficeLinux.conf distro-configs/LibreOfficeWin32.conf distro-configs/LibreOfficeWin64.conf download.lst drawinglayer/drawinglayer.component drawinglayer/inc drawinglayer/Library_drawinglayer.mk drawinglayer/Module_drawinglayer.mk drawinglayer/Package_inc.mk drawinglayer/source dtrans/source dtrans/test editeng/CppunitTest_editeng_borderline.mk editeng/CppunitTest_editeng_core.mk editeng/CppunitTest_editeng_lookuptree.mk editeng/inc editeng/Library_editeng.mk editeng/qa editeng/source embeddedobj/source embeddedobj/test embedserv/Library_emser.mk embedserv/source epm/ExternalProject_epm.mk eventattacher/source expat/StaticLibrary_expat.mk extensions/AllLangResTarget_pcr.mk extensions/AllLangResTarget_scn.mk extensions/AllLangResTarget_updchk.mk extensions/AllLangResTarget_upd.mk extensions/CustomTarget_so_activex_idl.mk extensions/CustomTarget_so_activex_x64.mk extensions/Library_abp.mk extensions/Library_bib.mk extensions/Library_dbp.mk extensi ons/Library_oleautobridge.mk extensions/Library_pcr.mk extensions/Library_res.mk extensions/Library_scn.mk extensions/Library_so_activex.mk extensions/Library_so_activex_x64.mk extensions/Library_updatecheckui.mk extensions/Library_updatefeed.mk extensions/Module_extensions.mk extensions/Package_uiconfig.mk extensions/qa extensions/source extensions/StaticLibrary_npsoenv.mk extensions/StaticLibrary_plugcon.mk extensions/test extensions/UIConfig_sbibliography.mk extensions/workben external/Module_external.mk external/Package_mingw_dlls.mk external/Package_mingw_gccdlls.mk external/Package_msvc_dlls_debug.mk extras/AllLangPackage_accessoriessamplesadvertisement.mk extras/AllLangPackage_accessoriessamplesdocumentation.mk extras/AllLangPackage_accessoriessamples.mk extras/AllLangPackage_accessoriessamplesnonfreeadvertisement.mk extras/AllLangPackage_accessoriessamplesnonfreedocumentation.mk extras/AllLangPackage_accessoriessamplesnonfree.mk extras/AllLangPackage_accessoriestempl ateseducate.mk extras/AllLangPackage_accessoriestemplatesfinance.mk extras/AllLangPackage_accessoriestemplatesforms.mk extras/AllLangPackage_accessoriestemplateslabels.mk extras/AllLangPackage_accessoriestemplateslayout.mk extras/AllLangPackage_accessoriestemplatesmisc.mk extras/AllLangPackage_accessoriestemplates.mk extras/AllLangPackage_accessoriestemplatesnonfreeeducate.mk extras/AllLangPackage_accessoriestemplatesnonfreefinance.mk extras/AllLangPackage_accessoriestemplatesnonfreeforms.mk extras/AllLangPackage_accessoriestemplatesnonfreelabels.mk extras/AllLangPackage_accessoriestemplatesnonfreelayout.mk extras/AllLangPackage_accessoriestemplatesnonfreemisc.mk extras/AllLangPackage_accessoriestemplatesnonfree.mk extras/AllLangPackage_accessoriestemplatesnonfreeofficorr.mk extras/AllLangPackage_accessoriestemplatesnonfreeoffimisc.mk extras/AllLangPackage_accessoriestemplatesnonfreepersonal.mk extras/AllLangPackage_accessoriestemplatesnonfreepresent.mk extras/AllLangPackage _accessoriestemplatesofficorr.mk extras/AllLangPackage_accessoriestemplatesoffimisc.mk extras/AllLangPackage_accessoriestemplatespersonal.mk extras/AllLangPackage_accessoriestemplatespresent.mk extras/AllLangPackage_autotextshare.mk extras/AllLangZip_accessoriessamplesadvertisement.mk extras/AllLangZip_accessoriessamplesdocumentation.mk extras/AllLangZip_accessoriessamples.mk extras/AllLangZip_accessoriessamplesnonfreeadvertisement.mk extras/AllLangZip_accessoriessamplesnonfreedocumentation.mk extras/AllLangZip_accessoriessamplesnonfree.mk extras/AllLangZip_accessoriestemplateseducate.mk extras/AllLangZip_accessoriestemplatesfinance.mk extras/AllLangZip_accessoriestemplatesforms.mk extras/AllLangZip_accessoriestemplateslabels.mk extras/AllLangZip_accessoriestemplateslayout.mk extras/AllLangZip_accessoriestemplatesmisc.mk extras/AllLangZip_accessoriestemplates.mk extras/AllLangZip_accessoriestemplatesnonfreeeducate.mk extras/AllLangZip_accessoriestemplatesnonfreefinance.mk ex tras/AllLangZip_accessoriestemplatesnonfreeforms.mk extras/AllLangZip_accessoriestemplatesnonfreelabels.mk extras/AllLangZip_accessoriestemplatesnonfreelayout.mk extras/AllLangZip_accessoriestemplatesnonfreemisc.mk extras/AllLangZip_accessoriestemplatesnonfree.mk extras/AllLangZip_accessoriestemplatesnonfreeofficorr.mk extras/AllLangZip_accessoriestemplatesnonfreeoffimisc.mk extras/AllLangZip_accessoriestemplatesnonfreepersonal.mk extras/AllLangZip_accessoriestemplatesnonfreepresent.mk extras/AllLangZip_accessoriestemplatesofficorr.mk extras/AllLangZip_accessoriestemplatesoffimisc.mk extras/AllLangZip_accessoriestemplatespersonal.mk extras/AllLangZip_accessoriestemplatespresent.mk extras/AllLangZip_autotextshare.mk extras/ExternalPackage_accessoriesgallerydrawspeople.mk extras/ExternalPackage_accessoriesgalleryelementsbullets2.mk extras/ExternalPackage_accessoriesgallery.mk extras/ExternalPackage_accessoriesgallerynonfree.mk extras/ExternalPackage_accessoriesgalleryphotosbui ldings.mk extras/ExternalPackage_accessoriesgalleryphotoscelebration.mk extras/ExternalPackage_accessoriesgalleryphotoscities.mk extras/ExternalPackage_accessoriesgalleryphotosfauna.mk extras/ExternalPackage_accessoriesgalleryphotosflowers.mk extras/ExternalPackage_accessoriesgalleryphotosfoodsanddrinks.mk extras/ExternalPackage_accessoriesgalleryphotoshumans.mk extras/ExternalPackage_accessoriesgalleryphotoslandscapes.mk extras/ExternalPackage_accessoriesgalleryphotosobjects.mk extras/ExternalPackage_accessoriesgalleryphotosplants.mk extras/ExternalPackage_accessoriesgalleryphotosspace.mk extras/ExternalPackage_accessoriesgalleryphotosstatues.mk extras/ExternalPackage_accessoriesgalleryphotostravel.mk extras/ExternalPackage_accessoriestemplatescommoneducate.mk extras/ExternalPackage_accessoriestemplatescommonfinance.mk extras/ExternalPackage_accessoriestemplatescommonforms.mk extras/ExternalPackage_accessoriestemplatescommonlabels.mk extras/ExternalPackage_accessoriestempla tescommonlayout.mk extras/ExternalPackage_accessoriestemplatescommonmisc.mk extras/ExternalPackage_accessoriestemplatescommon.mk extras/ExternalPackage_accessoriestemplatescommonofficorr.mk extras/ExternalPackage_accessoriestemplatescommonoffimisc.mk extras/ExternalPackage_accessoriestemplatescommonpersonal.mk extras/ExternalPackage_accessoriestemplatescommonpresent.mk extras/ExternalPackage_extra_fonts.mk extras/Module_extras.mk extras/Package_autocorr.mk extras/Package_autotextuser.mk extras/Package_cfgsrvbitmapunx.mk extras/Package_cfgsrvnolang.mk extras/Package_cfgusr.mk extras/Package_databasebiblio.mk extras/Package_database.mk extras/Package_fonts.mk extras/Package_gallbullets.mk extras/Package_gallhtmlexpo.mk extras/Package_gallroot.mk extras/Package_gallsound.mk extras/Package_gallsounds.mk extras/Package_gallsystem.mk extras/Package_gallwwwback.mk extras/Package_gallwwwgraf.mk extras/Package_palettes.mk extras/Package_tpllayoutimpr.mk extras/Package_tplwizagenda.mk extras/Package_tplwizbitmap.mk extras/Package_tplwizdesktop.mk extras/Package_tplwizfax.mk extras/Package_tplwizletter.mk extras/Package_tplwizreport.mk extras/Package_tplwizstyles.mk extras/source extras/unx extras/Zip_accessoriesgallerydrawspeople.mk extras/Zip_accessoriesgalleryelementsbullets2.mk extras/Zip_accessoriesgallery.mk extras/Zip_accessoriesgallerynonfree.mk extras/Zip_accessoriesgalleryphotosbuildings.mk extras/Zip_accessoriesgalleryphotoscelebration.mk extras/Zip_accessoriesgalleryphotoscities.mk extras/Zip_accessoriesgalleryphotosfauna.mk extras/Zip_accessoriesgalleryphotosflowers.mk extras/Zip_accessoriesgalleryphotosfoodsanddrinks.mk extras/Zip_accessoriesgalleryphotoshumans.mk extras/Zip_accessoriesgalleryphotoslandscapes.mk extras/Zip_accessoriesgalleryphotosobjects.mk extras/Zip_accessoriesgalleryphotosplants.mk extras/Zip_accessoriesgalleryphotosspace.mk extras/Zip_accessoriesgalleryphotosstatues.mk extras/Zip_accessoriesgalleryphotostravel.mk extras/ Zip_accessoriestemplatescommoneducate.mk extras/Zip_accessoriestemplatescommonfinance.mk extras/Zip_accessoriestemplatescommonforms.mk extras/Zip_accessoriestemplatescommonlabels.mk extras/Zip_accessoriestemplatescommonlayout.mk extras/Zip_accessoriestemplatescommonmisc.mk extras/Zip_accessoriestemplatescommon.mk extras/Zip_accessoriestemplatescommonofficorr.mk extras/Zip_accessoriestemplatescommonoffimisc.mk extras/Zip_accessoriestemplatescommonpersonal.mk extras/Zip_accessoriestemplatescommonpresent.mk extras/Zip_autocorr.mk extras/Zip_autotextuser.mk extras/Zip_cfgsrvbitmapunx.mk extras/Zip_cfgsrvnolang.mk extras/Zip_cfgusr.mk extras/Zip_databasebiblio.mk extras/Zip_database.mk extras/Zip_gallbullets.mk extras/Zip_gallhtmlexpo.mk extras/Zip_gallroot.mk extras/Zip_gallsound.mk extras/Zip_gallsounds.mk extras/Zip_gallsystem.mk extras/Zip_gallwwwback.mk extras/Zip_gallwwwgraf.mk extras/Zip_palettes.mk extras/Zip_tpllayoutimpr.mk extras/Zip_tplwizagenda.mk extras/Zip_tplwizbi tmap.mk extras/Zip_tplwizdesktop.mk extras/Zip_tplwizfax.mk extras/Zip_tplwizletter.mk extras/Zip_tplwizreport.mk extras/Zip_tplwizstyles.mk fileaccess/Library_fileacc.mk fileaccess/Module_fileaccess.mk fileaccess/source filter/Configuration_filter.mk filter/CppunitTest_filter_tga_test.mk filter/CppunitTest_filter_tiff_test.mk filter/CustomTarget_svg.mk filter/inc filter/Library_eps.mk filter/Library_filterconfig.mk filter/Library_flash.mk filter/Library_graphicfilter.mk filter/Library_odfflatxml.mk filter/Library_pdffilter.mk filter/Library_svgfilter.mk filter/Library_t602filter.mk filter/Library_textfd.mk filter/Library_xsltdlg.mk filter/Module_filter.mk filter/qa filter/README filter/source filter/UIConfig_xsltdlg.mk filter/UI_xsltdlg.mk firefoxos/sdremote forms/AllLangResTarget_frm.mk forms/JunitTest_forms_complex.mk forms/JunitTest_forms_unoapi.mk forms/Library_frm.mk forms/Module_forms.mk forms/qa forms/source formula/AllLangResTarget_for.mk formula/AllLangResTarget_fo rui.mk formula/inc formula/Library_for.mk formula/Library_forui.mk formula/Module_formula.mk formula/Package_inc.mk formula/source fpicker/Library_fps_aqua.mk fpicker/Library_fps.mk fpicker/Library_fps_office.mk fpicker/source fpicker/test fpicker/WinResTarget_fps.mk framework/inc framework/Library_fwe.mk framework/Library_fwi.mk framework/Library_fwk.mk framework/Library_fwl.mk framework/Module_framework.mk framework/Package_uiconfig.mk framework/source framework/uiconfig framework/UIConfig_startmodule.mk .gitignore graphite/StaticLibrary_graphite.mk helpcompiler/Executable_helpindexer.mk helpcompiler/Executable_helplinker.mk helpcompiler/inc helpcompiler/Library_helplinker.mk helpcompiler/source helpcontent2 hunspell/hunspell-wundef.patch.1 hunspell/UnpackedTarball_hunspell.mk hwpfilter/CppunitTest_hwpfilter_test_hwpfilter.mk hwpfilter/Library_hwp.mk hwpfilter/Module_hwpfilter.mk hwpfilter/qa hwpfilter/source i18nlangtag/CppunitTest_i18nlangtag_test_languagetag.mk i18nlang tag/inc i18nlangtag/Library_i18nlangtag.mk i18nlangtag/Makefile i18nlangtag/Module_i18nlangtag.mk i18nlangtag/Package_inc.mk i18nlangtag/qa i18nlangtag/README i18nlangtag/source i18npool/CppunitTest_i18npool_test_languagetag.mk i18npool/inc i18npool/Library_i18nisolang1.mk i18npool/Library_i18npool.mk i18npool/Library_i18nsearch.mk i18npool/Module_i18npool.mk i18npool/Package_inc.mk i18npool/qa i18npool/source i18nutil/inc i18nutil/source icon-themes/crystal icon-themes/galaxy icon-themes/hicontrast icon-themes/human icon-themes/industrial icon-themes/oxygen icon-themes/tango icu/ExternalPackage_icu.mk icu/ExternalProject_icu.mk icu/icu4c.9313.cygwin.patch icu/icu4c.9737.CVE-2013-0900_changesets_32865_32908.patch icu/icu4c-aix.patch icu/icu4c-android.patch icu/icu4c-bsd.patch icu/icu4c-build.patch icu/icu4c-CVE-2013-0900_umutex.patch icu/icu4c-solarisgcc.patch icu/UnpackedTarball_icu.mk idlc/CustomTarget_parser_test.mk idlc/Executable_idlc.mk idlc/inc idlc/source idlc/test i dl/inc idl/source include/postmac.h include/postwin.h include/postx.h include/premac.h include/prewin.h include/prex.h include/shlinfo.rc include/version.hrc include/wntgcci instsetoo_native/CustomTarget_install.mk instsetoo_native/util io/Library_acceptor.mk io/Library_connector.mk io/Library_streams.mk io/Library_textinstream.mk io/Library_textoutstream.mk io/Module_io.mk ios/CustomTarget_LibreOffice_app.mk ios/CustomTarget_Viewer_app.mk ios/Executable_LibreOffice.mk ios/Executable_Viewer.mk ios/experimental ios/Module_ios.mk io/source ios/qa javaunohelper/com javaunohelper/Jar_juh.mk javaunohelper/Library_juh.mk javaunohelper/Library_juhx.mk javaunohelper/Module_javaunohelper.mk javaunohelper/source javaunohelper/test jfreereport/Module_jfreereport.mk jfreereport/Package_jfreereport_version.mk jpeg/patches jpeg/UnpackedTarball_jpeg.mk jurt/com jurt/CustomTarget_jnilib.mk jurt/CustomTarget_test_urp.mk jurt/Jar_jurt.mk jurt/JunitTest_bridgefactory.mk jurt/JunitTest_connecti ons.mk jurt/JunitTest_java.mk jurt/JunitTest_java_remote.mk jurt/JunitTest_remote.mk jurt/JunitTest_uno.mk jurt/JunitTest_urp.mk jurt/JunitTest_util.mk jurt/Library_jpipe.mk jurt/Library_jpipx.mk jurt/Module_jurt.mk jurt/Package_jnilib.mk jvmaccess/inc jvmaccess/Library_jvmaccess.mk jvmaccess/Module_jvmaccess.mk jvmaccess/Package_inc.mk jvmaccess/source jvmaccess/util jvmaccess/workbench jvmfwk/CustomTarget_jreproperties.mk jvmfwk/distributions jvmfwk/Executable_javaldx.mk jvmfwk/inc jvmfwk/Library_jvmfwk.mk jvmfwk/Library_sunjavaplugin.mk jvmfwk/Module_jvmfwk.mk jvmfwk/Package_inc.mk jvmfwk/Package_jreproperties.mk jvmfwk/Package_rcfiles.mk jvmfwk/plugins jvmfwk/source l10ntools/Executable_cfgex.mk l10ntools/Executable_helpex.mk l10ntools/Executable_idxdict.mk l10ntools/Executable_localize.mk l10ntools/Executable_propex.mk l10ntools/Executable_stringex.mk l10ntools/Executable_transex3.mk l10ntools/Executable_treex.mk l10ntools/Executable_uiex.mk l10ntools/Executable_ulfex.m k l10ntools/inc l10ntools/source l10ntools/StaticLibrary_transex.mk lcms2/ExternalPackage_lcms2.mk lcms2/ExternalProject_lcms2.mk libcdr/ExternalProject_libcdr.mk libcdr/libcdr-0.0.11-encoding.patch libcdr/libcdr-0.0.13.patch libcdr/UnpackedTarball_cdr.mk libcmis/libcmis-0.3.0-warnings.patch libexttextcat/Zip_fingerprint.mk liblangtag/ExternalPackage_langtag_data.mk liblangtag/UnpackedTarball_langtag.mk liblangtag/Zip_liblangtag_data.mk libmariadb/mariadb-msvc.patch.1 libmariadb/mariadb-trunk-40.patch libmariadb/StaticLibrary_mariadb.mk libmariadb/UnpackedTarball_mariadb.mk libmspub/ExternalProject_libmspub.mk liborcus/ExternalPackage_liborcus.mk liborcus/ExternalProject_liborcus.mk liborcus/liborcus_0.1.0-boost-include.patch.1 liborcus/liborcus_0.1.0-dllimport.patch liborcus/liborcus_0.1.0-tac.patch liborcus/UnpackedTarball_orcus.mk Library_merged.mk Library_urelibs.mk librelogo/CustomTarget_librelogo.mk librelogo/Module_librelogo.mk librelogo/Package_librelogo.mk librelogo /Package_librelogo_properties.mk librelogo/source librelogo/Zip_librelogo.mk libvisio/ExternalProject_libvisio.mk libvisio/libvisio-0.0.25.patch libvisio/UnpackedTarball_visio.mk libwpg/ExternalPackage_libwpg.mk libwpg/ExternalProject_libwpg.mk libwpg/libwpg-0.2.1-warning.patch libwpg/Module_libwpg.mk libwpg/StaticLibrary_wpg.mk libwpg/UnpackedTarball_wpg.mk libwps/ExternalPackage_libwps.mk libwps/ExternalProject_libwps.mk libwps/libwps.gcc.warnings.patch libwps/libwps.msvc.warnings.patch libwps/Module_libwps.mk libwps/StaticLibrary_wps.mk libwps/UnpackedTarball_wps.mk libxml2/ExternalProject_xml2.mk libxml2/libxml2-configure.patch libxmlsec/ExternalPackage_xmlsec.mk libxmlsec/ExternalProject_xmlsec.mk libxmlsec/UnpackedTarball_xmlsec.mk libxmlsec/xmlsec1-1.2.14_old_automake.patch libxmlsec/xmlsec1-vc.patch libxslt/ExternalProject_xslt.mk libxslt/libxslt-configure.patch lingucomponent/Library_hyphen.mk lingucomponent/Library_lnth.mk lingucomponent/Library_MacOSXSpell.mk ling ucomponent/Library_spell.mk lingucomponent/source lingucomponent/StaticLibrary_ulingu.mk linguistic/inc linguistic/Library_lng.mk linguistic/Module_linguistic.mk linguistic/source linguistic/workben logerrit lotuswordpro/CppunitTest_lotuswordpro_test_lotuswordpro.mk lotuswordpro/Library_lwpft.mk lotuswordpro/Module_lotuswordpro.mk lotuswordpro/qa lotuswordpro/source lpsolve/ExternalProject_lpsolve.mk lpsolve/lp_solve_5.5-windows.patch m4/libgcrypt.m4 m4/mingw.m4 Makefile.in mdds/UnpackedTarball_mdds.mk more_fonts/ExternalPackage_dejavu.mk more_fonts/ExternalPackage_gentium.mk more_fonts/ExternalPackage_liberation.mk more_fonts/ExternalPackage_liberation_narrow.mk more_fonts/ExternalPackage_libertineg.mk more_fonts/ExternalPackage_opensans.mk more_fonts/ExternalPackage_ptserif.mk more_fonts/ExternalPackage_sourcecode.mk more_fonts/ExternalPackage_sourcesans.mk more_fonts/Package_conf.mk mysqlc/source neon/configs neon/Library_neon.mk neon/neon_with_gnutls.patch neon/UnpackedT arball_neon.mk nlpsolver/help nlpsolver/src np_sdk/inc nss/ExternalProject_nss.mk nss/nss.patch odk/config odk/CustomTarget_bin.mk odk/CustomTarget_check.mk odk/CustomTarget_classes.mk odk/CustomTarget_cli.mk odk/CustomTarget_config_win.mk odk/CustomTarget_doxygen.mk odk/CustomTarget_html.mk odk/CustomTarget_lib.mk odk/CustomTarget_odkcommon.mk odk/CustomTarget_settings.mk odk/CustomTarget_unowinreg.mk odk/docs odk/examples odk/Module_odk.mk odk/pack odk/Package_bin.mk odk/Package_cli.mk odk/Package_config.mk odk/Package_config_notwin.mk odk/Package_config_win.mk odk/Package_docs.mk odk/Package_examples.mk odk/Package_html.mk odk/Package_lib.mk odk/Package_macosx.mk odk/Package_settings_generated.mk odk/Package_settings.mk odk/Package_unowinreg.mk odk/settings odk/util odk/Zip_odkcommon.mk odk/Zip_odkexamples.mk odk/Zip_uno_loader_classes.mk offapi/com offapi/type_reference offapi/UnoApi_offapi.mk officecfg/qa officecfg/registry oovbaapi/ooo oox/inc oox/Library_oox.mk oox/Mo dule_oox.mk oox/Package_generated.mk oox/Package_inc.mk oox/Package_tokens.mk oox/source openldap/ExternalProject_openldap.mk openssl/ExternalProject_openssl.mk openssl/opensslwnt.patch package/inc package/source padmin/Library_spa.mk padmin/Module_padmin.mk padmin/source padmin/UIConfig_spa.mk padmin/UI_spa.mk postgresql/ExternalProject_postgresql.mk postprocess/CustomTarget_config.mk postprocess/CustomTarget_images.mk postprocess/CustomTarget_registry.mk postprocess/Module_postprocess.mk postprocess/Package_config.mk postprocess/packconfig postprocess/packimages psprint_config/Module_psprint_config.mk psprint_config/Package_fontunxppds.mk psprint_config/Package_fontunxpsprint.mk psprint_config/Zip_fontunxppds.mk psprint_config/Zip_fontunxpsprint.mk python3/ExternalPackage_python3.mk python3/ExternalProject_python3.mk python3/python-3.3.0-aix.patch.1 python3/python-3.3.0-elf-rpath.patch.1 python3/python-3.3.0-pythreadstate.patch.1 python3/UnpackedTarball_python3.mk pyuno/Cu stomTarget_python_shell.mk pyuno/CustomTarget_zipcore.mk pyuno/Module_pyuno.mk pyuno/source pyuno/zipcore qadevOOo/JunitTest_qadevOOo_unoapi.mk qadevOOo/Module_qadevOOo.mk qadevOOo/runner qadevOOo/tests README.Code README.cross redland/ExternalPackage_raptor.mk redland/ExternalPackage_rasqal.mk redland/ExternalPackage_redland.mk redland/ExternalProject_raptor.mk redland/ExternalProject_rasqal.mk redland/ExternalProject_redland.mk redland/Library_raptor.mk redland/Library_rasqal.mk redland/Library_rdf.mk redland/LICENSE.txt redland/Module_redland.mk redland/raptor redland/rasqal redland/README redland/redland redland/UnpackedTarball_raptor.mk redland/UnpackedTarball_rasqal.mk redland/UnpackedTarball_redland.mk registry/inc registry/Library_reg.mk registry/Module_registry.mk registry/Package_inc.mk registry/source registry/test registry/tools registry/util registry/workben registry/ZipPackage_registry_odk_headers.mk remotebridges/Library_uuresolver.mk remotebridges/Module_remo tebridges.mk remotebridges/source reportbuilder/Jar_reportbuilder.mk reportbuilder/java reportbuilder/Module_reportbuilder.mk reportdesign/AllLangResTarget_rpt.mk reportdesign/inc reportdesign/Library_rpt.mk reportdesign/Library_rptui.mk reportdesign/Library_rptxml.mk reportdesign/Module_reportdesign.mk reportdesign/Package_uiconfig.mk reportdesign/qa reportdesign/source reportdesign/uiconfig reportdesign/UIConfig_dbreport.mk RepositoryExternal.mk RepositoryFixes.mk Repository.mk RepositoryModule_build.mk RepositoryModule_host.mk ridljar/com ridljar/CustomTarget_javamaker.mk ridljar/Jar_ridl.mk ridljar/Jar_unoloader.mk ridljar/JunitTest_typedesc.mk ridljar/JunitTest_uno.mk ridljar/JunitTest_util.mk ridljar/Module_ridljar.mk rsc/Executable_rsc.mk rsc/inc rsc/source sal/android sal/cpprt sal/CppunitTest_sal_checkapi.mk sal/CppunitTest_sal_osl_mutex.mk sal/CppunitTest_sal_osl_pipe.mk sal/CppunitTest_sal_osl_profile.mk sal/CppunitTest_sal_osl_setthreadname.mk sal/CppunitTest_sal _rtl_math.mk sal/CppunitTest_sal_rtl_strings.mk sal/CppunitTest_sal_rtl_textenc.mk sal/CppunitTest_sal_rtl_uri.mk sal/CustomTarget_sal_allheaders.mk salhelper/CppunitTest_salhelper_checkapi.mk salhelper/CustomTarget_salhelper_allheaders.mk salhelper/inc salhelper/Module_salhelper.mk salhelper/Package_salhelper_odk_headers.mk salhelper/source salhelper/ZipPackage_salhelper_odk_headers.mk sal/inc sal/Module_sal.mk sal/osl sal/Package_sal_generated.mk sal/Package_sal_odk_headers.mk sal/qa sal/rtl sal/systools sal/test sal/textenc sal/workben sal/ZipPackage_sal_generated.mk sal/ZipPackage_sal_odk_headers.mk sax/inc sax/Library_expwrap.mk sax/Library_fastsax.mk sax/qa sax/source scaddins/InternalUnoApi_scaddins.mk scaddins/Library_analysis.mk scaddins/Library_date.mk scaddins/Library_pricing.mk scaddins/source sc/AllLangResTarget_sc.mk sccomp/Library_solver.mk sccomp/source sc/CppunitTest_sc_annotationobj.mk sc/CppunitTest_sc_annotationshapeobj.mk sc/CppunitTest_sc_annotationsobj .mk sc/CppunitTest_sc_cellrangeobj.mk sc/CppunitTest_sc_chart_regression_test.mk sc/CppunitTest_sc_databaserangeobj.mk sc/CppunitTest_sc_datapilotfieldobj.mk sc/CppunitTest_sc_datapilottableobj.mk sc/CppunitTest_sc_editfieldobj_cell.mk sc/CppunitTest_sc_editfieldobj_header.mk sc/CppunitTest_sc_filters_test.mk sc/CppunitTest_sc_macros_test.mk sc/CppunitTest_sc_modelobj.mk sc/CppunitTest_sc_namedrangeobj.mk sc/CppunitTest_sc_namedrangesobj.mk sc/CppunitTest_sc_outlineobj.mk sc/CppunitTest_sc_rangelst_test.mk sc/CppunitTest_sc_subsequent_export_test.mk sc/CppunitTest_sc_subsequent_filters_test.mk sc/CppunitTest_sc_tableautoformatfield.mk sc/CppunitTest_sc_tablesheetobj.mk sc/CppunitTest_sc_tablesheetsobj.mk sc/CppunitTest_sc_ucalc.mk sc/CustomTarget_uiconfig.mk sc/inc sc/JunitTest_sc_complex.mk sc/JunitTest_sc_unoapi.mk sc/Library_scd.mk sc/Library_scfilt.mk sc/Library_sc.mk sc/Library_scui.mk sc/Library_vbaobj.mk sc/Module_sc.mk scp2/AutoInstallLibs_ooo.mk scp2/AutoInstallLibs _ure.mk scp2/AutoInstallLibs_writer.mk scp2/CustomTarget_langmacros.mk scp2/inc scp2/InstallModule_accessories.mk scp2/InstallModule_activex.mk scp2/InstallModule_base.mk scp2/InstallModule_calc.mk scp2/InstallModule_canvas.mk scp2/InstallModule_crashrep.mk scp2/InstallModule_draw.mk scp2/InstallModule_extensions.mk scp2/InstallModule_gnome.mk scp2/InstallModule_graphicfilter.mk scp2/InstallModule_impress.mk scp2/InstallModule_kde.mk scp2/InstallModule_math.mk scp2/InstallModule_onlineupdate.mk scp2/InstallModule_ooo.mk scp2/InstallModule_python.mk scp2/InstallModule_quickstart.mk scp2/InstallModule_sdkoo.mk scp2/InstallModule_smoketest.mk scp2/InstallModule_tde.mk scp2/InstallModule_ure.mk scp2/InstallModule_windows.mk scp2/InstallModule_winexplorerext.mk scp2/InstallModule_writer.mk scp2/InstallModule_xsltfilter.mk scp2/InstallScript_sdkoo.mk scp2/InstallScript_setup_osl.mk scp2/InstallScript_test.mk scp2/macros scp2/Module_scp2.mk scp2/source sc/Package_uiconfig.mk sc/qa scripting/java scripting/Library_dlgprov.mk scripting/Module_scripting.mk scripting/Package_scriptbindinglib.mk scripting/Package_ScriptsBeanShell.mk scripting/Package_ScriptsJavaScript.mk scripting/Package_ScriptsPython.mk scripting/Pyuno_mailmerge.mk scripting/source scripting/workben scripting/Zip_scriptbindinglib.mk scripting/Zip_ScriptsBeanShell.mk scripting/Zip_ScriptsJavaScript.mk scripting/Zip_ScriptsPython.mk sc/sdi sc/source sc/uiconfig sc/UIConfig_scalc.mk sc/UI_scalc.mk sc/util sc/workben sd/AllLangResTarget_sd.mk sd/CppunitTest_sd_filters_test.mk sd/CppunitTest_sd_regression_test.mk sd/CppunitTest_sd_uimpress.mk sdext/Configuration_minimizer.mk sdext/CppunitTest_pdfimport.mk sdext/CustomTarget_pdfimport.mk sdext/Executable_pdf2xml.mk sdext/Executable_pdfunzip.mk sdext/Executable_xpdfimport.mk sdext/Extension_minimizer.mk sdext/Library_minimizer.mk sdext/Library_pdfimport.mk sdext/Library_presenter.mk sdext/Library_PresenterScreen.mk sdext/Module_sdext.mk sdext/R db_minimizer.mk sdext/source sdext/StaticLibrary_pdfimport_s.mk sd/inc sd/JunitTest_sd_unoapi.mk sd/Library_sdd.mk sd/Library_sdfilt.mk sd/Library_sd.mk sd/Library_sdui.mk sd/Module_sd.mk sd/Package_inc.mk sd/Package_uiconfig.mk sd/Package_web.mk sd/Package_xml.mk sd/qa sd/README_REMOTE sd/sdi sd/source sd/uiconfig sd/UIConfig_sdraw.mk sd/UIConfig_simpress.mk sd/UI_sdraw.mk sd/UI_simpress.mk sd/workben setup_native/Library_instooofiltmsi.mk setup_native/Library_qslnkmsi.mk setup_native/Library_reg4allmsdoc.mk setup_native/Library_regactivex.mk setup_native/Library_regpatchactivex.mk setup_native/Library_sdqsmsi.mk setup_native/Library_sellangmsi.mk setup_native/Library_shlxtmsi.mk setup_native/Library_sn_tools.mk setup_native/scripts setup_native/StaticLibrary_quickstarter.mk setup_native/StaticLibrary_seterror.mk sfx2/inc sfx2/Library_qstart_gtk.mk sfx2/Library_qstart.mk sfx2/Library_sfx.mk sfx2/Module_sfx2.mk sfx2/Package_inc.mk sfx2/qa sfx2/sdi sfx2/source sfx2/uiconfig s fx2/UIConfig_sfx.mk sfx2/UI_sfx.mk sfx2/workben shell/CustomTarget_shlxthdl_res.mk shell/CustomTarget_x64.mk shell/Executable_gnome_open_url.mk shell/Executable_lngconvex.mk shell/Executable_regsvrex.mk shell/Executable_senddoc.mk shell/Executable_uri_encode.mk shell/Library_cmdmail.mk shell/Library_desktopbe.mk shell/Library_gconfbe.mk shell/Library_kde4be.mk shell/Library_kdebe.mk shell/Library_localebe.mk shell/Library_macbe.mk shell/Library_ooofilt.mk shell/Library_ooofilt_x64.mk shell/Library_propertyhdl.mk shell/Library_propertyhdl_x64.mk shell/Library_recentfile.mk shell/Library_shlxthdl.mk shell/Library_shlxthdl_x64.mk shell/Library_smplmail.mk shell/Library_syssh.mk shell/Library_syssh_win.mk shell/Library_tdebe.mk shell/Library_wininetbe.mk shell/Module_shell.mk shell/Package_inc.mk shell/Package_scripts.mk shell/qa shell/source shell/StaticLibrary_shlxthandler_common.mk shell/StaticLibrary_shlxthandler_common_x64.mk shell/StaticLibrary_simplemapi.mk shell/StaticLi brary_xmlparser.mk shell/StaticLibrary_xmlparser_x64.mk shell/WinResTarget_shlxthdl.mk slideshow/CppunitTest_slideshow.mk slideshow/Executable_demoshow.mk slideshow/Library_OGLTrans.mk slideshow/Library_slideshow.mk slideshow/Module_slideshow.mk slideshow/source slideshow/test smoketest/com smoketest/data smoketest/Extension_TestExtension.mk smoketest/Module_smoketest.mk smoketest/Package_smoketestdoc.mk smoketest/smoketest.cxx smoketest/Zip_smoketestdoc.mk smoketest/Zip_TestExtension.mk solenv/bin solenv/CustomTarget_gdb.mk solenv/gbuild solenv/gcc-wrappers solenv/gdb solenv/inc solenv/lldb solenv/Module_solenv.mk solenv/Package_gdb.mk soltools/Executable_cpp.mk soltools/Executable_makedepend.mk sot/CppunitTest_sot_test_sot.mk sot/inc sot/Library_sot.mk sot/Package_inc.mk sot/qa sot/source starmath/AllLangResTarget_sm.mk starmath/CppunitTest_starmath_qa_cppunit.mk starmath/inc starmath/JunitTest_starmath_unoapi.mk starmath/Library_smd.mk starmath/Library_sm.mk starmath/Modu le_starmath.mk starmath/Package_uiconfig.mk starmath/qa starmath/source starmath/uiconfig starmath/UIConfig_smath.mk starmath/UI_smath.mk stoc/inc stoc/Library_bootstrap.mk stoc/Library_introspection.mk stoc/Library_invocadapt.mk stoc/Library_invocation.mk stoc/Library_javaloader.mk stoc/Library_javavm.mk stoc/Library_namingservice.mk stoc/Library_proxyfac.mk stoc/Library_reflection.mk stoc/Library_stocservices.mk stoc/Module_stoc.mk stoc/source stoc/test stoc/util store/inc store/Library_store.mk store/Module_store.mk store/Package_inc.mk store/source store/util store/workben store/ZipPackage_store_odk_headers.mk svgio/inc svgio/source svl/CppunitTest_svl_qa_cppunit.mk svl/CppunitTest_svl_urihelper.mk svl/inc svl/Library_svl.mk svl/Package_inc.mk svl/qa svl/source svl/unx svtools/AllLangResTarget_svt.mk svtools/Executable_langsupport.mk svtools/inc svtools/langsupport svtools/Library_svt.mk svtools/Module_svtools.mk svtools/Package_inc.mk svtools/source svtools/uiconfig svt ools/UIConfig_svt.mk svtools/UI_svt.mk svx/inc svx/Library_svxcore.mk svx/Library_svx.mk svx/Library_textconversiondlgs.mk svx/Module_svx.mk svx/Package_globlmn_hrc.mk svx/Package_inc.mk svx/sdi svx/source svx/UIConfig_svx.mk svx/UI_svx.mk svx/workben sw/AllLangResTarget_sw.mk sw/CppunitTest_sw_filters_test.mk sw/CppunitTest_sw_layout_test.mk sw/CppunitTest_sw_macros_test.mk sw/CppunitTest_sw_odfexport.mk sw/CppunitTest_sw_odfimport.mk sw/CppunitTest_sw_ooxmlexport.mk sw/CppunitTest_sw_ooxmlimport.mk sw/CppunitTest_sw_rtfexport.mk sw/CppunitTest_sw_rtfimport.mk sw/CppunitTest_sw_uwriter.mk sw/CppunitTest_sw_ww8export.mk sw/CppunitTest_sw_ww8import.mk swext/mediawiki sw/inc sw/Library_msword.mk sw/Library_sw.mk sw/Library_swui.mk sw/Library_vbaswobj.mk sw/Module_sw.mk sw/Package_uiconfig.mk sw/PythonTest_sw_python.mk sw/qa sw/README sw/sdi sw/source sw/uiconfig sw/UIConfig_sglobal.mk sw/UIConfig_sweb.mk sw/UIConfig_swform.mk sw/UIConfig_swreport.mk sw/UIConfig_swriter.mk sw/U IConfig_swxform.mk sw/UI_swriter.mk sysui/CustomTarget_share.mk sysui/desktop sysui/Module_sysui.mk sysui/Package_osxicons.mk sysui/Zip_osxicons.mk test/inc test/Library_subsequenttest.mk test/Library_test.mk test/Module_test.mk test/Package_inc.mk test/Package_unittest.mk test/source testtools/CustomTarget_bridgetest_javamaker.mk testtools/CustomTarget_uno_test.mk testtools/Module_testtools.mk testtools/source toolkit/inc toolkit/Library_tk.mk toolkit/README toolkit/source toolkit/test tools/CppunitTest_tools_test.mk tools/CustomTarget_reversemap.mk tools/Executable_bestreversemap.mk tools/inc tools/Library_tl.mk tools/Package_inc.mk tools/qa tools/README tools/source tools/unx tools/win touch/CustomTarget_touch_javamaker.mk touch/inc touch/Library_libotouch.mk touch/Module_touch.mk touch/Package_inc.mk touch/README touch/source translations tubes/CppunitTest_tubes_test.mk tubes/inc tubes/Library_tubes.mk tubes/Module_tubes.mk tubes/Package_inc.mk tubes/qa tubes/source tube s/UIConfig_tubes.mk tubes/UI_tubes.mk twain/inc ucbhelper/inc ucbhelper/source ucb/JunitTest_ucb_complex.mk ucb/JunitTest_ucb_unoapi.mk ucb/Module_ucb.mk ucb/qa ucb/source ucb/test ucb/workben udkapi/com udkapi/UnoApi_udkapi.mk UnoControls/Library_ctl.mk UnoControls/Module_UnoControls.mk UnoControls/source unodevtools/Executable_skeletonmaker.mk unodevtools/inc unodevtools/source unoidl/inc unoidl/source unoil/CustomTarget_climaker.mk unoil/CustomTarget_javamaker.mk unoil/Jar_unoil.mk unoil/Module_unoil.mk unoil/Package_climaker.mk unoil/Package_clioootypesversion.mk unotest/inc unotest/Module_unotest.mk unotest/source unotools/inc unotools/Library_utl.mk unotools/Module_unotools.mk unotools/Package_inc.mk unotools/source unoxml/qa unoxml/source unoxml/test unusedcode.easy ure/Module_ure.mk ure/Package_distribution.mk ure/Package_uretest.mk ure/Rdb_ure.mk ure/source ure/Zip_uretest.mk uui/Library_uui.mk uui/Module_uui.mk uui/source uui/UIConfig_uui.mk uui/UI_uui.mk vbahelper /inc vbahelper/Library_msforms.mk vbahelper/source vcl/AllLangResTarget_vcl.mk vcl/android vcl/aqua vcl/coretext vcl/CppunitTest_vcl_filters_test.mk vcl/CustomTarget_afm_hash.mk vcl/CustomTarget_kde4_moc.mk vcl/CustomTarget_kde_moc.mk vcl/CustomTarget_tde_moc.mk vcl/Executable_ui-previewer.mk vcl/generic vcl/headless vcl/inc vcl/ios vcl/Library_desktop_detector.mk vcl/Library_vcl.mk vcl/Library_vclplug_gen.mk vcl/Library_vclplug_gtk3.mk vcl/Library_vclplug_gtk.mk vcl/Library_vclplug_kde4.mk vcl/Library_vclplug_kde.mk vcl/Library_vclplug_svp.mk vcl/Library_vclplug_tde.mk vcl/Module_vcl.mk vcl/null vcl/Package_inc.mk vcl/qa vcl/quartz vcl/README vcl/source vcl/StaticLibrary_headless.mk vcl/test vcl/UIConfig_vcl.mk vcl/UI_vcl.mk vcl/unx vcl/win vcl/workben vcl/Zip_osxres.mk vigra/UnpackedTarball_vigra.mk wizards/com wizards/Module_wizards.mk wizards/Package_depot.mk wizards/Package_euro.mk wizards/Package_form.mk wizards/Package_gimmicks.mk wizards/Package_import.mk wizards/Pac kage_share.mk wizards/Package_standard.mk wizards/Package_template.mk wizards/Package_tools.mk wizards/Package_tutorials.mk wizards/Package_usr.mk wizards/Pyuno_agenda.mk wizards/Pyuno_commonwizards.mk wizards/Pyuno_fax.mk wizards/Pyuno_letter.mk wizards/Pyuno_web.mk wizards/source wizards/Zip_depot.mk wizards/Zip_euro.mk wizards/Zip_form.mk wizards/Zip_gimmicks.mk wizards/Zip_import.mk wizards/Zip_launcher.mk wizards/Zip_share.mk wizards/Zip_standard.mk wizards/Zip_template.mk wizards/Zip_tools.mk wizards/Zip_tutorials.mk wizards/Zip_usr.mk wizards/Zip_web.mk writerfilter/CppunitTest_writerfilter_rtftok.mk writerfilter/inc writerfilter/Library_writerfilter.mk writerfilter/Module_writerfilter.mk writerfilter/qa writerfilter/source writerperfect/source x11_extensions/Module_x11_extensions.mk x11_extensions/Package_inc.mk xmlhelp/Library_tvhlp1.mk xmlhelp/Library_ucpchelp1.mk xmlhelp/Module_xmlhelp.mk xmlhelp/Package_xsl.mk xmlhelp/source xmlhelp/util xmlhelp/Zip_helpxsl.mk xm loff/CppunitTest_xmloff_uxmloff.mk xmloff/inc xmloff/Library_xo.mk xmloff/Package_inc.mk xmloff/source xmlreader/inc xmlreader/README xmlreader/source xmlscript/Module_xmlscript.mk xmlscript/Package_dtd.mk xmlscript/Package_inc.mk xmlscript/source xmlsecurity/inc xmlsecurity/Library_xmlsecurity.mk xmlsecurity/Module_xmlsecurity.mk xmlsecurity/qa xmlsecurity/source xmlsecurity/UIConfig_xmlsec.mk xmlsecurity/UI_xmlsec.mk xmlsecurity/workben xpdf/ExternalProject_xpdf.mk

Michael Stahl mstahl at redhat.com
Mon Apr 22 17:39:01 PDT 2013


Rebased ref, commits from common ancestor:
commit 84217e299724b8ee80dff63cb561b4bae0f44835
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Apr 23 00:17:03 2013 +0200

    fdo#62147: sw: ODF import: apply styles in cells with string-value
    
    Apply the table-cell-style to paragraphs inside the table cell
    for cells with value-type="string" and office:string-value attribute.
    This should complete commit 1b5839f49c07beb6fbde6c7370a5636d22f9ab77.
    
    Change-Id: Ief34de1e7c5087906ea597ce3ca96e020f6eebe6

diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
index ec43a0c..d30cccf 100644
--- a/sw/source/filter/xml/xmltbli.cxx
+++ b/sw/source/filter/xml/xmltbli.cxx
@@ -587,8 +587,11 @@ SwXMLTableCellContext_Impl::~SwXMLTableCellContext_Impl()
 
 inline void SwXMLTableCellContext_Impl::_InsertContent()
 {
+    SwStartNode const*const pStartNode( GetTable()->InsertTableSection(0,
+            (m_bHasStringValue && m_bValueTypeIsString &&
+             !aStyleName.isEmpty()) ? & aStyleName : 0) );
     GetTable()->InsertCell( aStyleName, nRowSpan, nColSpan,
-                            GetTable()->InsertTableSection(),
+                            pStartNode,
                             mXmlId,
                             NULL, bProtect, &sFormula, bHasValue, fValue,
             (m_bHasStringValue && m_bValueTypeIsString) ? &m_StringValue : 0);
@@ -2881,12 +2884,14 @@ void SwXMLTableContext::MakeTable( SwTableBox *pBox, sal_Int32 nW )
 }
 
 const SwStartNode *SwXMLTableContext::InsertTableSection(
-                                            const SwStartNode *pPrevSttNd )
+        const SwStartNode *const pPrevSttNd,
+        OUString const*const pStringValueStyleName)
 {
     // The topmost table is the only table that maintains the two members
     // pBox1 and bFirstSection.
     if( xParentTable.Is() )
-        return ((SwXMLTableContext *)&xParentTable)->InsertTableSection( pPrevSttNd );
+        return static_cast<SwXMLTableContext *>(&xParentTable)
+                    ->InsertTableSection(pPrevSttNd, pStringValueStyleName);
 
     const SwStartNode *pStNd;
     Reference<XUnoTunnel> xCrsrTunnel( GetImport().GetTextImport()->GetCursor(),
@@ -2941,6 +2946,13 @@ const SwStartNode *SwXMLTableContext::InsertTableSection(
         }
     }
 
+    if (pStringValueStyleName)
+    {   // fdo#62147: apply style to paragraph on string-value cell
+        GetImport().GetTextImport()->SetStyleAndAttrs( GetImport(),
+            GetImport().GetTextImport()->GetCursor(), *pStringValueStyleName,
+            true, false, -1, false); // parameters same as sCellParaStyleName
+    }
+
     return pStNd;
 }
 
diff --git a/sw/source/filter/xml/xmltbli.hxx b/sw/source/filter/xml/xmltbli.hxx
index 7062dc4..0ba3130 100644
--- a/sw/source/filter/xml/xmltbli.hxx
+++ b/sw/source/filter/xml/xmltbli.hxx
@@ -186,7 +186,8 @@ public:
     void InsertRepRows( sal_uInt32 nCount );
     const SwXMLTableCell_Impl *GetCell( sal_uInt32 nRow, sal_uInt32 nCol ) const;
     SwXMLTableCell_Impl *GetCell( sal_uInt32 nRow, sal_uInt32 nCol );
-    const SwStartNode *InsertTableSection( const SwStartNode *pPrevSttNd=0 );
+    const SwStartNode *InsertTableSection(const SwStartNode *pPrevSttNd = 0,
+                                  OUString const* pStringValueStyleName = 0);
 
     virtual void EndElement();
 
commit 1d80c1cf22c1cb673da91b8aa59d770fc30dffdc
Author: Marco Cecchetti <mrcekets at gmail.com>
Date:   Mon Apr 22 23:14:53 2013 +0200

    Changed the MPL header from v1 to v2

diff --git a/filter/source/svg/js2hxx.py b/filter/source/svg/js2hxx.py
index 8aeb94c..5d6ddd5 100755
--- a/filter/source/svg/js2hxx.py
+++ b/filter/source/svg/js2hxx.py
@@ -1,11 +1,10 @@
 #!/usr/bin/env python
 #
-# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+# This file is part of the LibreOffice project.
 #
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License or as specified alternatively below. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
 # Software distributed under the License is distributed on an "AS IS" basis,
 # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
@@ -18,13 +17,6 @@
 # All Rights Reserved.
 #
 # For minor contributions see the git repository.
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
-# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
-# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
-# instead of those above.
-#
 
 import os, sys
 
commit 5cd4300f7ffc24d6bc0ed5704f37a04852fd322b
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Apr 22 23:06:50 2013 +0200

    fixed a mess of out of bounds string accesses
    
    Change-Id: I800840e1b3c0d97a049b3ceba0ec244365dc8e6b

diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index 88f55d0..85a9d2a 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -1416,6 +1416,21 @@ SvNumberformat::LocaleType SvNumberformat::ImpGetLocaleType(const OUString& rStr
     return (cToken == ']' || nPos == nLen) ? LocaleType(nNum) : LocaleType();
 }
 
+static bool lcl_matchKeywordAndGetNumber( const OUString & rString, const sal_Int32 nPos,
+        const OUString & rKeyword, sal_Int32 & nNumber )
+{
+    if (0 <= nPos && nPos + rKeyword.getLength() < rString.getLength() && rString.matchIgnoreAsciiCase( rKeyword, nPos))
+    {
+        nNumber = rString.copy( nPos + rKeyword.getLength()).toInt32();
+        return true;
+    }
+    else
+    {
+        nNumber = 0;
+        return false;
+    }
+}
+
 short SvNumberformat::ImpNextSymbol(OUStringBuffer& rString,
                                     sal_Int32& nPos,
                                     OUString& sSymbol)
@@ -1518,45 +1533,47 @@ short SvNumberformat::ImpNextSymbol(OUStringBuffer& rString,
             {
                 const OUString aNatNum("NATNUM");
                 const OUString aDBNum("DBNUM");
-                OUString aUpperNatNum( rChrCls().uppercase( rString.toString(), nPos-1, aNatNum.getLength() ) );
-                OUString aUpperDBNum( rChrCls().uppercase( rString.toString(), nPos-1, aDBNum.getLength() ) );
-                sal_Unicode cUpper = aUpperNatNum[0];
-                sal_Int32 nNatNumNum = rString.toString().copy( nPos - 1 + aNatNum.getLength() ).toInt32();
-                sal_Unicode cDBNum =
-                    nPos - 1 + aDBNum.getLength() < rString.getLength()
-                    ? rString[nPos - 1 + aDBNum.getLength()] : 0;
-                if ( aUpperNatNum == aNatNum && 0 <= nNatNumNum && nNatNumNum <= 19 )
+                const OUString aBufStr( rString.toString());
+                sal_Int32 nNatNumNum;
+                sal_Int32 nDBNum;
+                if ( lcl_matchKeywordAndGetNumber( aBufStr, nPos-1, aNatNum, nNatNumNum) &&
+                        0 <= nNatNumNum && nNatNumNum <= 19 )
                 {
                     sBuffSymbol.stripStart((sal_Unicode)'[');
-                    sBuffSymbol.append( rString.toString().copy( --nPos, aNatNum.getLength()+1 ));
+                    sBuffSymbol.append( aBufStr.copy( --nPos, aNatNum.getLength()+1 ));
                     nPos += aNatNum.getLength()+1;
                     //! SymbolType is negative
                     eSymbolType = (short) (BRACKET_SYMBOLTYPE_NATNUM0 - nNatNumNum);
                     eState = SsGetPrefix;
                 }
-                else if ( aUpperDBNum == aDBNum && '1' <= cDBNum && cDBNum <= '9' )
+                else if ( lcl_matchKeywordAndGetNumber( aBufStr, nPos-1, aDBNum, nDBNum) &&
+                        '1' <= nDBNum && nDBNum <= '9' )
                 {
                     sBuffSymbol.stripStart((sal_Unicode)'[');
                     sBuffSymbol.append(rString.toString().copy( --nPos, aDBNum.getLength()+1 ));
                     nPos += aDBNum.getLength()+1;
                     //! SymbolType is negative
-                    eSymbolType = sal::static_int_cast< short >( BRACKET_SYMBOLTYPE_DBNUM1 - (cDBNum - '1'));
+                    eSymbolType = sal::static_int_cast< short >( BRACKET_SYMBOLTYPE_DBNUM1 - (nDBNum - '1'));
                     eState = SsGetPrefix;
                 }
-                else if (cUpper == rKeywords[NF_KEY_H][0] ||  // H
-                         cUpper == rKeywords[NF_KEY_MI][0] ||  // M
-                         cUpper == rKeywords[NF_KEY_S][0] )   // S
-                {
-                    sBuffSymbol.append(cToken);
-                    eState = SsGetTime;
-                    cLetter = cToken;
-                }
                 else
                 {
-                    sBuffSymbol.stripStart((sal_Unicode)'[');
-                    sBuffSymbol.append(cToken);
-                    eSymbolType = BRACKET_SYMBOLTYPE_COLOR;
-                    eState = SsGetPrefix;
+                    sal_Unicode cUpper = rChrCls().uppercase( aBufStr, nPos-1, 1)[0];
+                    if (    cUpper == rKeywords[NF_KEY_H][0] ||     // H
+                            cUpper == rKeywords[NF_KEY_MI][0] ||    // M
+                            cUpper == rKeywords[NF_KEY_S][0] )      // S
+                    {
+                        sBuffSymbol.append(cToken);
+                        eState = SsGetTime;
+                        cLetter = cToken;
+                    }
+                    else
+                    {
+                        sBuffSymbol.stripStart((sal_Unicode)'[');
+                        sBuffSymbol.append(cToken);
+                        eSymbolType = BRACKET_SYMBOLTYPE_COLOR;
+                        eState = SsGetPrefix;
+                    }
                 }
             }
             }
commit dfcbc1e1af08f555d21ae85550ec16fb001da991
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Mon Apr 22 21:53:59 2013 +0200

    Data-aware ListBox: declare the newly supported External Binding Types
    
    Change-Id: I5ab021f99373f24b6be2ca6db00fe8b6e69bc9cb

diff --git a/forms/source/component/ListBox.cxx b/forms/source/component/ListBox.cxx
index 8771869..204d874 100644
--- a/forms/source/component/ListBox.cxx
+++ b/forms/source/component/ListBox.cxx
@@ -1619,11 +1619,13 @@ namespace frm
     //--------------------------------------------------------------------
     Sequence< Type > OListBoxModel::getSupportedBindingTypes()
     {
-        Sequence< Type > aTypes(4);
-        aTypes[0] = ::getCppuType( static_cast< Sequence< sal_Int32 >* >( NULL ) );
-        aTypes[1] = ::getCppuType( static_cast< sal_Int32* >( NULL ) );
-        aTypes[2] = ::getCppuType( static_cast< Sequence< OUString >* >( NULL ) );
-        aTypes[3] = ::getCppuType( static_cast< OUString* >( NULL ) );
+        Sequence< Type > aTypes(6);
+        aTypes[0] = ::getCppuType( static_cast< Sequence< Any >* >( NULL ) );
+        aTypes[1] = ::getCppuType( static_cast< Any* >( NULL ) );
+        aTypes[2] = ::getCppuType( static_cast< Sequence< sal_Int32 >* >( NULL ) );
+        aTypes[3] = ::getCppuType( static_cast< sal_Int32* >( NULL ) );
+        aTypes[4] = ::getCppuType( static_cast< Sequence< OUString >* >( NULL ) );
+        aTypes[5] = ::getCppuType( static_cast< OUString* >( NULL ) );
         return aTypes;
     }
 
commit 1e392ea7a0d1504f701f9fed1492e64a78a65339
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date:   Mon Apr 22 19:39:51 2013 +0200

    Trying to avoid linking with boost on Windows
    
    Change-Id: Ic0c538dfad88f850d95f417f2741ef7dba7fc5e4

diff --git a/libcdr/UnpackedTarball_cdr.mk b/libcdr/UnpackedTarball_cdr.mk
index be1e7d7..a4a427d 100644
--- a/libcdr/UnpackedTarball_cdr.mk
+++ b/libcdr/UnpackedTarball_cdr.mk
@@ -11,4 +11,10 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,cdr))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,cdr,$(CDR_TARBALL)))
 
+$(eval $(call gb_UnpackedTarball_set_patchlevel,cdr,1))
+
+$(eval $(call gb_UnpackedTarball_add_patches,cdr,\
+       libcdr/libcdr-0.0.13.patch \
+))
+
 # vim: set noet sw=4 ts=4:
diff --git a/libcdr/libcdr-0.0.13.patch b/libcdr/libcdr-0.0.13.patch
new file mode 100644
index 0000000..29b2b28
--- /dev/null
+++ b/libcdr/libcdr-0.0.13.patch
@@ -0,0 +1,12 @@
+--- a/src/lib/CDRParser.cpp
++++ b/src/lib/CDRParser.cpp
+@@ -32,6 +32,9 @@
+ #include <string.h>
+ #include <sstream>
+ #include <set>
++#ifndef BOOST_ALL_NO_LIB
++#define BOOST_ALL_NO_LIB 1
++#endif
+ #include <boost/property_tree/json_parser.hpp>
+ #include <boost/property_tree/ptree.hpp>
+ #include <boost/spirit/include/classic.hpp>
commit 41d2b58b1ed5c1c4a1ca6ab3e6d7c4f15874d3a3
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date:   Mon Apr 22 18:34:04 2013 +0200

    Trying to fix a boost::property_tree::json_parser error on windows
    
    Change-Id: Iea3ec9a56eb008c6a0729a151b392f1e62925720

diff --git a/boost/UnpackedTarball_boost.mk b/boost/UnpackedTarball_boost.mk
index 6474f22..687a163 100644
--- a/boost/UnpackedTarball_boost.mk
+++ b/boost/UnpackedTarball_boost.mk
@@ -62,6 +62,8 @@ boost_patches += boost_1_44_0-gcc4.8.patch
 # https://svn.boost.org/trac/boost/changeset/78496
 boost_patches += boost.4874.patch
 
+boost_patches += boost.ptree.patch
+
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL)))
diff --git a/boost/boost.ptree.patch b/boost/boost.ptree.patch
new file mode 100644
index 0000000..3fa98d8
--- /dev/null
+++ b/boost/boost.ptree.patch
@@ -0,0 +1,11 @@
+--- misc/build/boost_1_44_0/boost/property_tree/detail/json_parser_read.hpp	2013-04-22 18:22:16.961642320 +0200
++++ misc/build/boost_1_44_0/boost/property_tree/detail/json_parser_read.hpp	2013-04-22 18:22:59.991632602 +0200
+@@ -102,7 +102,7 @@
+             void operator()(It b, It e) const
+             {
+                 BOOST_ASSERT(c.stack.size() >= 1);
+-                c.stack.back()->push_back(std::make_pair(c.name, Str(b, e)));
++                c.stack.back()->push_back(std::make_pair(c.name, Ptree(Str(b, e))));
+                 c.name.clear();
+                 c.string.clear();
+             }
commit 5275ed805a6e42f56c59d1c5876a7994625905a9
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Apr 17 16:43:13 2013 +0200

    Revert "Revert "WIP: Experimental new binary type.rdb format""
    
    This reverts commit 67e69a55820f50973ca0de75ccab2bb07d0bada8, applying a band-
    aid fix to cli_ure/source/climaker for now.
    
    Conflicts:
    	stoc/inc/bootstrapservices.hxx
    	stoc/source/tdmanager/lrucache.hxx
    	stoc/source/tdmanager/tdmgr.cxx
    	stoc/source/tdmanager/tdmgr_common.hxx
    	stoc/source/tdmanager/tdmgr_tdenumeration.cxx
    	stoc/source/tdmanager/tdmgr_tdenumeration.hxx
    
    Change-Id: Iae669985d0194f06fa349a4a39f0ebd230bc5d28

diff --git a/cli_ure/source/climaker/climaker_app.cxx b/cli_ure/source/climaker/climaker_app.cxx
old mode 100644
new mode 100755
index f7b1f27..e74cc23
--- a/cli_ure/source/climaker/climaker_app.cxx
+++ b/cli_ure/source/climaker/climaker_app.cxx
@@ -483,17 +483,15 @@ SAL_IMPLEMENT_MAIN()
                 Sequence< Any >( &arg, 1 ), xContext ) );
         // insert provider to tdmgr
         Reference< container::XSet > xSet( xTDmgr, UNO_QUERY_THROW );
-        Any provider( makeAny( xTD_provider ) );
-        xSet->insert( provider );
-        OSL_ASSERT( xSet->has( provider ) );
-        if (! extra_registries.empty())
+        for (vector< OUString >::iterator i(extra_registries.begin());
+             i != extra_registries.end(); ++i)
         {
-            arg = makeAny( open_registries( extra_registries, xContext ) );
-            provider = makeAny(
-                xTDprov_factory->createInstanceWithArgumentsAndContext(
-                    Sequence< Any >( &arg, 1 ), xContext ) );
-            xSet->insert( provider );
-            OSL_ASSERT( xSet->has( provider ) );
+            xSet->insert(makeAny(*i));
+        }
+        for (vector< OUString >::iterator i(mandatory_registries.begin());
+             i != mandatory_registries.end(); ++i)
+        {
+            xSet->insert(makeAny(*i));
         }
 
         if (0 == output.getLength()) // no output file specified
diff --git a/cppuhelper/Library_cppuhelper.mk b/cppuhelper/Library_cppuhelper.mk
index 577efbc..b594b53 100644
--- a/cppuhelper/Library_cppuhelper.mk
+++ b/cppuhelper/Library_cppuhelper.mk
@@ -75,7 +75,7 @@ $(eval $(call gb_Library_add_exception_objects,cppuhelper,\
 	cppuhelper/source/shlib \
 	cppuhelper/source/supportsservice \
 	cppuhelper/source/tdmgr \
-	cppuhelper/source/typedescriptionprovider \
+	cppuhelper/source/typemanager \
 	cppuhelper/source/typeprovider \
 	cppuhelper/source/unourl \
 	cppuhelper/source/weak \
diff --git a/cppuhelper/source/defaultbootstrap.cxx b/cppuhelper/source/defaultbootstrap.cxx
index 10c8eaf..fc790ba 100644
--- a/cppuhelper/source/defaultbootstrap.cxx
+++ b/cppuhelper/source/defaultbootstrap.cxx
@@ -12,8 +12,6 @@
 #include <cassert>
 #include <vector>
 
-#include "com/sun/star/container/XHierarchicalNameAccess.hpp"
-#include "com/sun/star/container/XSet.hpp"
 #include "com/sun/star/uno/DeploymentException.hpp"
 #include "com/sun/star/uno/Any.hxx"
 #include "com/sun/star/uno/Reference.hxx"
@@ -29,7 +27,7 @@ using rtl::OUString;
 #include "macro_expander.hxx"
 #include "paths.hxx"
 #include "servicemanager.hxx"
-#include "typedescriptionprovider.hxx"
+#include "typemanager.hxx"
 
 namespace {
 
@@ -60,6 +58,9 @@ cppu::defaultBootstrap_InitialComponentContext(rtl::OUString const & iniUri)
     rtl::Reference< cppuhelper::ServiceManager > smgr(
         new cppuhelper::ServiceManager(
             getBootstrapVariable(bs, "UNO_SERVICES")));
+    rtl::Reference< cppuhelper::TypeManager > tmgr(
+        new cppuhelper::TypeManager(
+            getBootstrapVariable(bs, "UNO_TYPES")));
     cppu::ContextEntry_Init entry;
     std::vector< cppu::ContextEntry_Init > context_values;
     context_values.push_back(
@@ -69,6 +70,13 @@ cppu::defaultBootstrap_InitialComponentContext(rtl::OUString const & iniUri)
                 css::uno::Reference< css::uno::XInterface >(
                     static_cast< cppu::OWeakObject * >(smgr.get()))),
             false));
+    context_values.push_back(
+        cppu::ContextEntry_Init(
+            "/singletons/com.sun.star.reflection.theTypeDescriptionManager",
+            css::uno::makeAny(
+                css::uno::Reference< css::uno::XInterface >(
+                    static_cast< cppu::OWeakObject * >(tmgr.get()))),
+            false));
     context_values.push_back( //TODO: from services.rdb?
         cppu::ContextEntry_Init(
             "/singletons/com.sun.star.util.theMacroExpander",
@@ -92,18 +100,7 @@ cppu::defaultBootstrap_InitialComponentContext(rtl::OUString const & iniUri)
             &context_values[0], context_values.size(),
             css::uno::Reference< css::uno::XComponentContext >()));
     smgr->setContext(context);
-    css::uno::Reference< css::container::XHierarchicalNameAccess > tdmgr(
-        context->getValueByName(
-            "/singletons/com.sun.star.reflection.theTypeDescriptionManager"),
-        css::uno::UNO_QUERY_THROW);
-    css::uno::Reference< css::container::XSet >(
-        tdmgr, css::uno::UNO_QUERY_THROW)->
-        insert(
-            css::uno::makeAny(
-                cppuhelper::createTypeDescriptionProviders(
-                    getBootstrapVariable(bs, "UNO_TYPES"), smgr.get(),
-                    context)));
-    cppu::installTypeDescriptionManager(tdmgr);
+    cppu::installTypeDescriptionManager(tmgr.get());
     return context;
 }
 
diff --git a/cppuhelper/source/typedescriptionprovider.hxx b/cppuhelper/source/typedescriptionprovider.hxx
deleted file mode 100644
index 93336e8..0000000
--- a/cppuhelper/source/typedescriptionprovider.hxx
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_CPPUHELPER_SOURCE_TYPEDESCRIPTIONPROVIDER_HXX
-#define INCLUDED_CPPUHELPER_SOURCE_TYPEDESCRIPTIONPROVIDER_HXX
-
-#include "sal/config.h"
-
-#include "com/sun/star/uno/Reference.hxx"
-#include "com/sun/star/uno/Sequence.hxx"
-
-namespace com { namespace sun { namespace star {
-     namespace container { class XHierarchicalNameAccess; }
-     namespace lang { class XMultiComponentFactory; }
-     namespace uno { class XComponentContext; }
-} } }
-namespace rtl { class OUString; }
-
-namespace cppuhelper {
-
-css::uno::Sequence<
-    css::uno::Reference< css::container::XHierarchicalNameAccess > >
-createTypeDescriptionProviders(
-    rtl::OUString const & uris,
-    css::uno::Reference< css::lang::XMultiComponentFactory > const &
-        serviceManager,
-    css::uno::Reference< css::uno::XComponentContext > const & context);
-
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cppuhelper/source/typedescriptionprovider.cxx b/cppuhelper/source/typemanager.cxx
similarity index 63%
rename from cppuhelper/source/typedescriptionprovider.cxx
rename to cppuhelper/source/typemanager.cxx
index b87575d..4185ddc 100644
--- a/cppuhelper/source/typedescriptionprovider.cxx
+++ b/cppuhelper/source/typemanager.cxx
@@ -10,16 +10,17 @@
 #include "sal/config.h"
 
 #include <cassert>
+#include <cstddef>
 #include <cstdlib>
+#include <cstring>
 #include <set>
 #include <stack>
 #include <vector>
 
 #include "boost/noncopyable.hpp"
+#include "com/sun/star/container/ElementExistException.hpp"
 #include "com/sun/star/container/NoSuchElementException.hpp"
-#include "com/sun/star/container/XHierarchicalNameAccess.hpp"
-#include "com/sun/star/lang/XInitialization.hpp"
-#include "com/sun/star/lang/XMultiComponentFactory.hpp"
+#include "com/sun/star/lang/IllegalArgumentException.hpp"
 #include "com/sun/star/reflection/InvalidTypeNameException.hpp"
 #include "com/sun/star/reflection/NoSuchTypeNameException.hpp"
 #include "com/sun/star/reflection/TypeDescriptionSearchDepth.hpp"
@@ -35,61 +36,99 @@
 #include "com/sun/star/reflection/XServiceTypeDescription2.hpp"
 #include "com/sun/star/reflection/XSingletonTypeDescription2.hpp"
 #include "com/sun/star/reflection/XStructTypeDescription.hpp"
-#include "com/sun/star/reflection/XTypeDescriptionEnumeration.hpp"
-#include "com/sun/star/reflection/XTypeDescriptionEnumerationAccess.hpp"
-#include "com/sun/star/registry/InvalidRegistryException.hpp"
-#include "com/sun/star/registry/XSimpleRegistry.hpp"
+#include "com/sun/star/reflection/XTypeDescription.hpp"
 #include "com/sun/star/uno/Any.hxx"
 #include "com/sun/star/uno/DeploymentException.hpp"
 #include "com/sun/star/uno/Reference.hxx"
 #include "com/sun/star/uno/RuntimeException.hpp"
 #include "com/sun/star/uno/Sequence.hxx"
+#include "com/sun/star/uno/Type.hxx"
 #include "com/sun/star/uno/TypeClass.hpp"
-#include "com/sun/star/uno/XComponentContext.hpp"
-#include "com/sun/star/uno/XInterface.hpp"
-#include "cppuhelper/compbase2.hxx"
+#include "cppu/unotype.hxx"
 #include "cppuhelper/implbase1.hxx"
+#include "cppuhelper/supportsservice.hxx"
 #include "osl/file.hxx"
 #include "osl/mutex.hxx"
 #include "rtl/ref.hxx"
+#include "rtl/string.h"
 #include "rtl/ustring.hxx"
+#include "sal/macros.h"
 #include "sal/types.h"
 
 using rtl::OUString;
 
 #include "unoidl/unoidl.hxx"
-#include "unoidl/unoidlprovider.hxx"
 
 #include "paths.hxx"
-#include "typedescriptionprovider.hxx"
+#include "typemanager.hxx"
 
 namespace {
 
-css::uno::Reference< css::reflection::XTypeDescription > resolve(
-    css::uno::Reference< css::uno::XComponentContext > const & context,
-    rtl::OUString const & name)
-{
-    assert(context.is());
-    try {
-        return css::uno::Reference< css::reflection::XTypeDescription >(
-            (css::uno::Reference< css::container::XHierarchicalNameAccess >(
-                context->getValueByName(
-                    "/singletons/"
-                    "com.sun.star.reflection.theTypeDescriptionManager"),
-                css::uno::UNO_QUERY_THROW)->
-             getByHierarchicalName(name)),
-            css::uno::UNO_QUERY_THROW);
-    } catch (css::container::NoSuchElementException & e) {
-        throw css::uno::DeploymentException(
-            ("cannot resolve type \"" + name + "\"; NoSuchElementException: "
-             + e.Message),
-            e.Context);
+css::uno::Any resolveTypedefs(css::uno::Any const & type) {
+    for (css::uno::Any t(type);;) {
+        css::uno::Reference< css::reflection::XIndirectTypeDescription > ind(
+            type, css::uno::UNO_QUERY);
+        if (!ind.is() || ind->getTypeClass() != css::uno::TypeClass_TYPEDEF) {
+            return t;
+        }
+        t = css::uno::makeAny(ind->getReferencedType());
     }
 }
 
+class SimpleTypeDescription:
+    public cppu::WeakImplHelper1< css::reflection::XTypeDescription >
+{
+public:
+    SimpleTypeDescription(
+        css::uno::TypeClass typeClass, rtl::OUString const & name):
+        typeClass_(typeClass), name_(name)
+    {}
+
+private:
+    virtual ~SimpleTypeDescription() {}
+
+    virtual css::uno::TypeClass SAL_CALL getTypeClass()
+        throw (css::uno::RuntimeException)
+    { return typeClass_; }
+
+    virtual rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException)
+    { return name_; }
+
+    css::uno::TypeClass typeClass_;
+    rtl::OUString name_;
+};
+
+class SequenceTypeDescription:
+    public cppu::WeakImplHelper1< css::reflection::XIndirectTypeDescription >
+{
+public:
+    SequenceTypeDescription(
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
+        rtl::OUString const & name, rtl::OUString const & componentType):
+        manager_(manager), name_(name), componentType_(componentType)
+    { assert(manager.is()); }
+
+private:
+    virtual ~SequenceTypeDescription() {}
+
+    virtual css::uno::TypeClass SAL_CALL getTypeClass()
+        throw (css::uno::RuntimeException)
+    { return css::uno::TypeClass_SEQUENCE; }
+
+    virtual rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException)
+    { return name_; }
+
+    virtual css::uno::Reference< css::reflection::XTypeDescription > SAL_CALL
+    getReferencedType() throw (css::uno::RuntimeException)
+    { return manager_->resolve(componentType_); }
+
+    rtl::Reference< cppuhelper::TypeManager > manager_;
+    rtl::OUString name_;
+    rtl::OUString componentType_;
+};
+
 class PublishableDescription:
-    public cppu::WeakImplHelper1< css::reflection::XPublished >,
-    private boost::noncopyable
+    public cppu::WeakImplHelper1< css::reflection::XPublished >
 {
 protected:
     PublishableDescription(bool published): published_(published) {}
@@ -104,16 +143,15 @@ private:
 };
 
 class ModuleDescription:
-    public cppu::WeakImplHelper1< css::reflection::XModuleTypeDescription >,
-    private boost::noncopyable
+    public cppu::WeakImplHelper1< css::reflection::XModuleTypeDescription >
 {
 public:
     ModuleDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         rtl::Reference< unoidl::ModuleEntity > const & entity):
-        context_(context), name_(name), entity_(entity)
-    { assert(entity.is()); }
+        manager_(manager), name_(name), entity_(entity)
+    { assert(manager.is()); assert(entity.is()); }
 
 private:
     virtual ~ModuleDescription() {}
@@ -130,7 +168,7 @@ private:
         css::uno::Reference< css::reflection::XTypeDescription > >
     SAL_CALL getMembers() throw (css::uno::RuntimeException);
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     rtl::Reference< unoidl::ModuleEntity > entity_;
 };
@@ -144,7 +182,7 @@ ModuleDescription::getMembers() throw (css::uno::RuntimeException) {
         css::uno::Sequence<
             css::uno::Reference< css::reflection::XTypeDescription > > s(n);
         for (sal_Int32 i = 0; i != n; ++i) {
-            s[i] = resolve(context_, name_ + "." + names[i]);
+            s[i] = manager_->resolve(name_ + "." + names[i]);
         }
         return s;
     } catch (unoidl::FileFormatException & e) {
@@ -222,12 +260,12 @@ PlainStructTypeDescription_Base;
 class PlainStructTypeDescription: public PlainStructTypeDescription_Base {
 public:
     PlainStructTypeDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         rtl::Reference< unoidl::PlainStructTypeEntity > const & entity):
         PlainStructTypeDescription_Base(entity->isPublished()),
-        context_(context), name_(name), entity_(entity)
-    { assert(entity.is()); }
+        manager_(manager), name_(name), entity_(entity)
+    { assert(manager.is()); assert(entity.is()); }
 
 private:
     virtual ~PlainStructTypeDescription() {}
@@ -243,7 +281,7 @@ private:
     getBaseType() throw (css::uno::RuntimeException) {
         return entity_->getDirectBase().isEmpty()
             ? css::uno::Reference< css::reflection::XTypeDescription >()
-            : resolve(context_, entity_->getDirectBase());
+            : manager_->resolve(entity_->getDirectBase());
     }
 
     virtual
@@ -266,7 +304,7 @@ private:
             css::uno::Reference< css::reflection::XTypeDescription > >();
     }
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     rtl::Reference< unoidl::PlainStructTypeEntity > entity_;
 };
@@ -279,7 +317,7 @@ PlainStructTypeDescription::getMemberTypes() throw (css::uno::RuntimeException)
     css::uno::Sequence<
         css::uno::Reference< css::reflection::XTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
-        s[i] = resolve(context_, entity_->getDirectMembers()[i].type);
+        s[i] = manager_->resolve(entity_->getDirectMembers()[i].type);
     }
     return s;
 }
@@ -297,8 +335,7 @@ css::uno::Sequence< rtl::OUString > PlainStructTypeDescription::getMemberNames()
 }
 
 class ParameterizedMemberTypeDescription:
-    public cppu::WeakImplHelper1< css::reflection::XTypeDescription >,
-    private boost::noncopyable
+    public cppu::WeakImplHelper1< css::reflection::XTypeDescription >
 {
 public:
     explicit ParameterizedMemberTypeDescription(
@@ -328,13 +365,13 @@ class PolymorphicStructTypeTemplateDescription:
 {
 public:
     PolymorphicStructTypeTemplateDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         rtl::Reference< unoidl::PolymorphicStructTypeTemplateEntity > const &
             entity):
         PolymorphicStructTypeTemplateDescription_Base(entity->isPublished()),
-        context_(context), name_(name), entity_(entity)
-    { assert(entity.is()); }
+        manager_(manager), name_(name), entity_(entity)
+    { assert(manager.is()); assert(entity.is()); }
 
 private:
     virtual ~PolymorphicStructTypeTemplateDescription() {}
@@ -369,7 +406,7 @@ private:
             css::uno::Reference< css::reflection::XTypeDescription > >();
     }
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     rtl::Reference< unoidl::PolymorphicStructTypeTemplateEntity > entity_;
 };
@@ -386,7 +423,7 @@ PolymorphicStructTypeTemplateDescription::getMemberTypes()
         s[i] = entity_->getMembers()[i].parameterized
             ? new ParameterizedMemberTypeDescription(
                 entity_->getMembers()[i].type)
-            : resolve(context_, entity_->getMembers()[i].type);
+            : manager_->resolve(entity_->getMembers()[i].type);
     }
     return s;
 }
@@ -417,6 +454,114 @@ PolymorphicStructTypeTemplateDescription::getTypeParameters()
     return s;
 }
 
+class InstantiatedPolymorphicStructTypeDescription:
+    public cppu::WeakImplHelper1< css::reflection::XStructTypeDescription >
+{
+public:
+    InstantiatedPolymorphicStructTypeDescription(
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
+        rtl::OUString const & name,
+        rtl::Reference< unoidl::PolymorphicStructTypeTemplateEntity > const &
+            entity,
+        std::vector< rtl::OUString > const & arguments):
+        manager_(manager), name_(name), entity_(entity), arguments_(arguments)
+    {
+        assert(manager.is());
+        assert(entity.is());
+        assert(arguments.size() == entity->getTypeParameters().size());
+    }
+
+private:
+    virtual ~InstantiatedPolymorphicStructTypeDescription() {}
+
+    virtual css::uno::TypeClass SAL_CALL getTypeClass()
+        throw (css::uno::RuntimeException)
+    { return css::uno::TypeClass_STRUCT; }
+
+    virtual rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException)
+    { return name_; }
+
+    virtual css::uno::Reference< css::reflection::XTypeDescription > SAL_CALL
+    getBaseType() throw (css::uno::RuntimeException)
+    { return css::uno::Reference< css::reflection::XTypeDescription >(); }
+
+    virtual
+    css::uno::Sequence<
+        css::uno::Reference< css::reflection::XTypeDescription > >
+    SAL_CALL getMemberTypes() throw (css::uno::RuntimeException);
+
+    virtual css::uno::Sequence< rtl::OUString > SAL_CALL getMemberNames()
+        throw (css::uno::RuntimeException);
+
+    virtual css::uno::Sequence< rtl::OUString > SAL_CALL getTypeParameters()
+        throw (css::uno::RuntimeException)
+    { return css::uno::Sequence< rtl::OUString >(); }
+
+    virtual
+    css::uno::Sequence<
+        css::uno::Reference< css::reflection::XTypeDescription > >
+    SAL_CALL getTypeArguments() throw (css::uno::RuntimeException);
+
+    rtl::Reference< cppuhelper::TypeManager > manager_;
+    rtl::OUString name_;
+    rtl::Reference< unoidl::PolymorphicStructTypeTemplateEntity > entity_;
+    std::vector< rtl::OUString > arguments_;
+};
+
+css::uno::Sequence< css::uno::Reference< css::reflection::XTypeDescription > >
+InstantiatedPolymorphicStructTypeDescription::getMemberTypes()
+    throw (css::uno::RuntimeException)
+{
+    assert(entity_->getMembers().size() <= SAL_MAX_INT32);
+    sal_Int32 n = static_cast< sal_Int32 >(entity_->getMembers().size());
+    css::uno::Sequence<
+        css::uno::Reference< css::reflection::XTypeDescription > > s(n);
+    for (sal_Int32 i = 0; i != n; ++i) {
+        rtl::OUString type(entity_->getMembers()[i].type);
+        if (entity_->getMembers()[i].parameterized) {
+            for (std::vector< rtl::OUString >::const_iterator j(
+                     entity_->getTypeParameters().begin());
+                 j != entity_->getTypeParameters().end(); ++j)
+            {
+                if (*j == type) {
+                    type = arguments_[j - entity_->getTypeParameters().begin()];
+                    goto found;
+                }
+            }
+            assert(false); // this cannot happen                         //TODO!
+        found:;
+        }
+        s[i] = manager_->resolve(type);
+    }
+    return s;
+}
+
+css::uno::Sequence< rtl::OUString >
+InstantiatedPolymorphicStructTypeDescription::getMemberNames()
+    throw (css::uno::RuntimeException)
+{
+    assert(entity_->getMembers().size() <= SAL_MAX_INT32);
+    sal_Int32 n = static_cast< sal_Int32 >(entity_->getMembers().size());
+    css::uno::Sequence< rtl::OUString > s(n);
+    for (sal_Int32 i = 0; i != n; ++i) {
+        s[i] = entity_->getMembers()[i].name;
+    }
+    return s;
+}
+css::uno::Sequence< css::uno::Reference< css::reflection::XTypeDescription > >
+InstantiatedPolymorphicStructTypeDescription::getTypeArguments()
+    throw (css::uno::RuntimeException)
+{
+    assert(arguments_.size() <= SAL_MAX_INT32);
+    sal_Int32 n = static_cast< sal_Int32 >(arguments_.size());
+    css::uno::Sequence<
+        css::uno::Reference< css::reflection::XTypeDescription > > s(n);
+    for (sal_Int32 i = 0; i != n; ++i) {
+        s[i] = manager_->resolve(arguments_[i]);
+    }
+    return s;
+}
+
 typedef cppu::ImplInheritanceHelper1<
     PublishableDescription, css::reflection::XCompoundTypeDescription >
 ExceptionTypeDescription_Base;
@@ -424,12 +569,12 @@ ExceptionTypeDescription_Base;
 class ExceptionTypeDescription: public ExceptionTypeDescription_Base {
 public:
     ExceptionTypeDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         rtl::Reference< unoidl::ExceptionTypeEntity > const & entity):
-        ExceptionTypeDescription_Base(entity->isPublished()), context_(context),
+        ExceptionTypeDescription_Base(entity->isPublished()), manager_(manager),
         name_(name), entity_(entity)
-    { assert(entity.is()); }
+    { assert(manager.is()); assert(entity.is()); }
 
 private:
     virtual ~ExceptionTypeDescription() {}
@@ -445,7 +590,7 @@ private:
     getBaseType() throw (css::uno::RuntimeException) {
         return entity_->getDirectBase().isEmpty()
             ? css::uno::Reference< css::reflection::XTypeDescription >()
-            : resolve(context_, entity_->getDirectBase());
+            : manager_->resolve(entity_->getDirectBase());
     }
 
     virtual
@@ -456,7 +601,7 @@ private:
     virtual css::uno::Sequence< rtl::OUString > SAL_CALL getMemberNames()
         throw (css::uno::RuntimeException);
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     rtl::Reference< unoidl::ExceptionTypeEntity > entity_;
 };
@@ -468,7 +613,7 @@ ExceptionTypeDescription::getMemberTypes() throw (css::uno::RuntimeException) {
     css::uno::Sequence<
         css::uno::Reference< css::reflection::XTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
-        s[i] = resolve(context_, entity_->getDirectMembers()[i].type);
+        s[i] = manager_->resolve(entity_->getDirectMembers()[i].type);
     }
     return s;
 }
@@ -485,86 +630,19 @@ css::uno::Sequence< rtl::OUString > ExceptionTypeDescription::getMemberNames()
     return s;
 }
 
-css::uno::Reference< css::reflection::XTypeDescription > resolveTypedefs(
-    css::uno::Reference< css::reflection::XTypeDescription > const & type)
-{
-    css::uno::Reference< css::reflection::XTypeDescription > resolved(type);
-    while (resolved->getTypeClass() == css::uno::TypeClass_TYPEDEF) {
-        resolved
-            = (css::uno::Reference< css::reflection::XIndirectTypeDescription >(
-                   resolved, css::uno::UNO_QUERY_THROW)->
-               getReferencedType());
-    }
-    return resolved;
-}
-
-class BaseOffset: private boost::noncopyable {
-public:
-    BaseOffset(
-        css::uno::Reference< css::reflection::XInterfaceTypeDescription2 >
-            const & description);
-
-    sal_Int32 get() const { return offset_; }
-
-private:
-    void calculateBases(
-        css::uno::Reference< css::reflection::XInterfaceTypeDescription2 >
-            const & description);
-
-    void calculate(
-        css::uno::Reference< css::reflection::XInterfaceTypeDescription2 >
-            const & description);
-
-    std::set< rtl::OUString > set_;
-    sal_Int32 offset_;
-};
-
-BaseOffset::BaseOffset(
-    css::uno::Reference< css::reflection::XInterfaceTypeDescription2 > const &
-        description):
-    offset_(0)
-{
-    calculateBases(description);
-}
-
-void BaseOffset::calculateBases(
-    css::uno::Reference< css::reflection::XInterfaceTypeDescription2 > const &
-        description)
-{
-    css::uno::Sequence<
-        css::uno::Reference < css::reflection::XTypeDescription > > bases(
-            description->getBaseTypes());
-    for (sal_Int32 i = 0; i != bases.getLength(); ++i) {
-        calculate(
-            css::uno::Reference< css::reflection::XInterfaceTypeDescription2 >(
-                resolveTypedefs(bases[i]), css::uno::UNO_QUERY_THROW));
-    }
-}
-
-void BaseOffset::calculate(
-    css::uno::Reference< css::reflection::XInterfaceTypeDescription2 > const &
-        description)
-{
-    if (set_.insert(description->getName()).second) {
-        calculateBases(description);
-        offset_ += description->getMembers().getLength();
-    }
-}
-
 class AttributeDescription:
     public cppu::WeakImplHelper1<
-        css::reflection::XInterfaceAttributeTypeDescription2 >,
-    private boost::noncopyable
+        css::reflection::XInterfaceAttributeTypeDescription2 >
 {
 public:
     AttributeDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         unoidl::InterfaceTypeEntity::Attribute const & attribute,
         sal_Int32 position):
-        context_(context), name_(name), attribute_(attribute),
+        manager_(manager), name_(name), attribute_(attribute),
         position_(position)
-    {}
+    { assert(manager.is()); }
 
 private:
     virtual ~AttributeDescription() {}
@@ -588,7 +666,7 @@ private:
 
     virtual css::uno::Reference< css::reflection::XTypeDescription > SAL_CALL
     getType() throw (css::uno::RuntimeException)
-    { return resolve(context_, attribute_.type); }
+    { return manager_->resolve(attribute_.type); }
 
     virtual sal_Bool SAL_CALL isBound() throw (css::uno::RuntimeException)
     { return attribute_.bound; }
@@ -603,7 +681,7 @@ private:
         css::uno::Reference< css::reflection::XCompoundTypeDescription > >
     SAL_CALL getSetExceptions() throw (css::uno::RuntimeException);
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     unoidl::InterfaceTypeEntity::Attribute attribute_;
     sal_Int32 position_;
@@ -618,7 +696,7 @@ AttributeDescription::getGetExceptions() throw (css::uno::RuntimeException) {
         css::uno::Reference< css::reflection::XCompoundTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
         s[i].set(
-            resolve(context_, attribute_.getExceptions[i]),
+            manager_->resolve(attribute_.getExceptions[i]),
             css::uno::UNO_QUERY_THROW);
     }
     return s;
@@ -633,23 +711,22 @@ AttributeDescription::getSetExceptions() throw (css::uno::RuntimeException) {
         css::uno::Reference< css::reflection::XCompoundTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
         s[i].set(
-            resolve(context_, attribute_.setExceptions[i]),
+            manager_->resolve(attribute_.setExceptions[i]),
             css::uno::UNO_QUERY_THROW);
     }
     return s;
 }
 
 class MethodParameter:
-    public cppu::WeakImplHelper1< css::reflection::XMethodParameter >,
-    private boost::noncopyable
+    public cppu::WeakImplHelper1< css::reflection::XMethodParameter >
 {
 public:
     MethodParameter(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         unoidl::InterfaceTypeEntity::Method::Parameter const & parameter,
         sal_Int32 position):
-        context_(context), parameter_(parameter), position_(position)
-    {}
+        manager_(manager), parameter_(parameter), position_(position)
+    { assert(manager.is()); }
 
 private:
     virtual ~MethodParameter() {}
@@ -659,7 +736,7 @@ private:
 
     virtual css::uno::Reference< css::reflection::XTypeDescription > SAL_CALL
     getType() throw (css::uno::RuntimeException)
-    { return resolve(context_, parameter_.type); }
+    { return manager_->resolve(parameter_.type); }
 
     virtual sal_Bool SAL_CALL isIn() throw (css::uno::RuntimeException) {
         return
@@ -682,23 +759,22 @@ private:
     virtual sal_Int32 SAL_CALL getPosition() throw (css::uno::RuntimeException)
     { return position_; }
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     unoidl::InterfaceTypeEntity::Method::Parameter parameter_;
     sal_Int32 position_;
 };
 
 class MethodDescription:
     public cppu::WeakImplHelper1<
-        css::reflection::XInterfaceMethodTypeDescription >,
-    private boost::noncopyable
+        css::reflection::XInterfaceMethodTypeDescription >
 {
 public:
     MethodDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         unoidl::InterfaceTypeEntity::Method const & method, sal_Int32 position):
-        context_(context), name_(name), method_(method), position_(position)
-    {}
+        manager_(manager), name_(name), method_(method), position_(position)
+    { assert(manager.is()); }
 
 private:
     virtual ~MethodDescription() {}
@@ -719,7 +795,7 @@ private:
 
     virtual css::uno::Reference< css::reflection::XTypeDescription > SAL_CALL
     getReturnType() throw (css::uno::RuntimeException)
-    { return resolve(context_, method_.returnType); }
+    { return manager_->resolve(method_.returnType); }
 
     virtual sal_Bool SAL_CALL isOneway() throw (css::uno::RuntimeException)
     { return false; }
@@ -734,7 +810,7 @@ private:
         css::uno::Reference< css::reflection::XTypeDescription > >
     SAL_CALL getExceptions() throw (css::uno::RuntimeException);
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     unoidl::InterfaceTypeEntity::Method method_;
     sal_Int32 position_;
@@ -747,7 +823,7 @@ MethodDescription::getParameters() throw (css::uno::RuntimeException) {
     css::uno::Sequence<
         css::uno::Reference< css::reflection::XMethodParameter > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
-        s[i] = new MethodParameter(context_, method_.parameters[i], i);
+        s[i] = new MethodParameter(manager_, method_.parameters[i], i);
     }
     return s;
 }
@@ -759,11 +835,65 @@ MethodDescription::getExceptions() throw (css::uno::RuntimeException) {
     css::uno::Sequence<
         css::uno::Reference< css::reflection::XTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
-        s[i] = resolve(context_, method_.exceptions[i]);
+        s[i] = manager_->resolve(method_.exceptions[i]);
     }
     return s;
 }
 
+class BaseOffset: private boost::noncopyable {
+public:
+    BaseOffset(
+        css::uno::Reference< css::reflection::XInterfaceTypeDescription2 >
+            const & description);
+
+    sal_Int32 get() const { return offset_; }
+
+private:
+    void calculateBases(
+        css::uno::Reference< css::reflection::XInterfaceTypeDescription2 >
+            const & description);
+
+    void calculate(
+        css::uno::Reference< css::reflection::XInterfaceTypeDescription2 >
+            const & description);
+
+    std::set< rtl::OUString > set_;
+    sal_Int32 offset_;
+};
+
+BaseOffset::BaseOffset(
+    css::uno::Reference< css::reflection::XInterfaceTypeDescription2 > const &
+        description):
+    offset_(0)
+{
+    calculateBases(description);
+}
+
+void BaseOffset::calculateBases(
+    css::uno::Reference< css::reflection::XInterfaceTypeDescription2 > const &
+        description)
+{
+    css::uno::Sequence<
+        css::uno::Reference < css::reflection::XTypeDescription > > bases(
+            description->getBaseTypes());
+    for (sal_Int32 i = 0; i != bases.getLength(); ++i) {
+        calculate(
+            css::uno::Reference< css::reflection::XInterfaceTypeDescription2 >(
+                resolveTypedefs(css::uno::makeAny(bases[i])),
+                css::uno::UNO_QUERY_THROW));
+    }
+}
+
+void BaseOffset::calculate(
+    css::uno::Reference< css::reflection::XInterfaceTypeDescription2 > const &
+        description)
+{
+    if (set_.insert(description->getName()).second) {
+        calculateBases(description);
+        offset_ += description->getMembers().getLength();
+    }
+}
+
 typedef cppu::ImplInheritanceHelper1<
     PublishableDescription, css::reflection::XInterfaceTypeDescription2 >
 InterfaceTypeDescription_Base;
@@ -771,12 +901,12 @@ InterfaceTypeDescription_Base;
 class InterfaceTypeDescription: public InterfaceTypeDescription_Base {
 public:
     InterfaceTypeDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         rtl::Reference< unoidl::InterfaceTypeEntity > const & entity):
-        InterfaceTypeDescription_Base(entity->isPublished()), context_(context),
+        InterfaceTypeDescription_Base(entity->isPublished()), manager_(manager),
         name_(name), entity_(entity)
-    { assert(entity.is()); }
+    { assert(manager.is()); assert(entity.is()); }
 
 private:
     virtual ~InterfaceTypeDescription() {}
@@ -792,7 +922,7 @@ private:
     getBaseType() throw (css::uno::RuntimeException) {
         return entity_->getDirectMandatoryBases().empty()
             ? css::uno::Reference< css::reflection::XTypeDescription >()
-            : resolve(context_, entity_->getDirectMandatoryBases()[0]);
+            : manager_->resolve(entity_->getDirectMandatoryBases()[0]);
     }
 
     virtual css::uno::Uik SAL_CALL getUik() throw (css::uno::RuntimeException)
@@ -814,7 +944,7 @@ private:
         css::uno::Reference< css::reflection::XTypeDescription > >
     SAL_CALL getOptionalBaseTypes() throw (css::uno::RuntimeException);
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     rtl::Reference< unoidl::InterfaceTypeEntity > entity_;
 };
@@ -835,12 +965,12 @@ InterfaceTypeDescription::getMembers() throw (css::uno::RuntimeException) {
     sal_Int32 off = BaseOffset(this).get();
     for (sal_Int32 i = 0; i != n1; ++i) {
         s[i] = new AttributeDescription(
-            context_, name_ + "::" + entity_->getDirectAttributes()[i].name,
+            manager_, name_ + "::" + entity_->getDirectAttributes()[i].name,
             entity_->getDirectAttributes()[i], off + i);
     }
     for (sal_Int32 i = 0; i != n2; ++i) {
         s[n1 + i] = new MethodDescription(
-            context_, name_ + "::" + entity_->getDirectMethods()[i].name,
+            manager_, name_ + "::" + entity_->getDirectMethods()[i].name,
             entity_->getDirectMethods()[i], off + n1 + i);
     }
     return s;
@@ -854,7 +984,7 @@ InterfaceTypeDescription::getBaseTypes() throw (css::uno::RuntimeException) {
     css::uno::Sequence<
         css::uno::Reference< css::reflection::XTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
-        s[i] = resolve(context_, entity_->getDirectMandatoryBases()[i]);
+        s[i] = manager_->resolve(entity_->getDirectMandatoryBases()[i]);
     }
     return s;
 }
@@ -869,20 +999,17 @@ InterfaceTypeDescription::getOptionalBaseTypes()
     css::uno::Sequence<
         css::uno::Reference< css::reflection::XTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
-        s[i] = resolve(context_, entity_->getDirectOptionalBases()[i]);
+        s[i] = manager_->resolve(entity_->getDirectOptionalBases()[i]);
     }
     return s;
 }
 
 class ConstantDescription:
-    public cppu::WeakImplHelper1< css::reflection::XConstantTypeDescription >,
-    private boost::noncopyable
+    public cppu::WeakImplHelper1< css::reflection::XConstantTypeDescription >
 {
 public:
-    ConstantDescription(
-        rtl::OUString const & name, css::uno::Any const & value):
-        name_(name), value_(value)
-    {}
+    explicit ConstantDescription(
+        unoidl::ConstantGroupEntity::Member const & member);
 
 private:
     virtual ~ConstantDescription() {}
@@ -902,6 +1029,46 @@ private:
     css::uno::Any value_;
 };
 
+ConstantDescription::ConstantDescription(
+    unoidl::ConstantGroupEntity::Member const & member):
+    name_(member.name)
+{
+    switch (member.value.type) {
+    case unoidl::ConstantValue::TYPE_BOOLEAN:
+        value_ <<= member.value.booleanValue;
+        break;
+    case unoidl::ConstantValue::TYPE_BYTE:
+        value_ <<= member.value.byteValue;
+        break;
+    case unoidl::ConstantValue::TYPE_SHORT:
+        value_ <<= member.value.shortValue;
+        break;
+    case unoidl::ConstantValue::TYPE_UNSIGNED_SHORT:
+        value_ <<= member.value.unsignedShortValue;
+        break;
+    case unoidl::ConstantValue::TYPE_LONG:
+        value_ <<= member.value.longValue;
+        break;
+    case unoidl::ConstantValue::TYPE_UNSIGNED_LONG:
+        value_ <<= member.value.unsignedLongValue;
+        break;
+    case unoidl::ConstantValue::TYPE_HYPER:
+        value_ <<= member.value.hyperValue;
+        break;
+    case unoidl::ConstantValue::TYPE_UNSIGNED_HYPER:
+        value_ <<= member.value.unsignedHyperValue;
+        break;
+    case unoidl::ConstantValue::TYPE_FLOAT:
+        value_ <<= member.value.floatValue;
+        break;
+    case unoidl::ConstantValue::TYPE_DOUBLE:
+        value_ <<= member.value.doubleValue;
+        break;
+    default:
+        for (;;) { std::abort(); } // this cannot happen
+    }
+}
+
 typedef cppu::ImplInheritanceHelper1<
     PublishableDescription, css::reflection::XConstantsTypeDescription >
 ConstantGroupDescription_Base;
@@ -909,11 +1076,10 @@ ConstantGroupDescription_Base;
 class ConstantGroupDescription: public ConstantGroupDescription_Base {
 public:
     ConstantGroupDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
         rtl::OUString const & name,
         rtl::Reference< unoidl::ConstantGroupEntity > const & entity):
-        ConstantGroupDescription_Base(entity->isPublished()), context_(context),
-        name_(name), entity_(entity)
+        ConstantGroupDescription_Base(entity->isPublished()), name_(name),
+        entity_(entity)
     { assert(entity.is()); }
 
 private:
@@ -931,7 +1097,6 @@ private:
         css::uno::Reference< css::reflection::XConstantTypeDescription > >
     SAL_CALL getConstants() throw (css::uno::RuntimeException);
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
     rtl::OUString name_;
     rtl::Reference< unoidl::ConstantGroupEntity > entity_;
 };
@@ -944,10 +1109,7 @@ ConstantGroupDescription::getConstants() throw (css::uno::RuntimeException) {
     css::uno::Sequence<
         css::uno::Reference< css::reflection::XConstantTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
-        //TODO: use entity_->getMembers()[i].value directly?
-        s[i].set(
-            resolve(context_, name_ + "." + entity_->getMembers()[i].name),
-            css::uno::UNO_QUERY_THROW);
+        s[i] = new ConstantDescription(entity_->getMembers()[i]);
     }
     return s;
 }
@@ -959,12 +1121,12 @@ TypedefDescription_Base;
 class TypedefDescription: public TypedefDescription_Base {
 public:
     TypedefDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         rtl::Reference< unoidl::TypedefEntity > const & entity):
-        TypedefDescription_Base(entity->isPublished()), context_(context),
+        TypedefDescription_Base(entity->isPublished()), manager_(manager),
         name_(name), entity_(entity)
-    { assert(entity.is()); }
+    { assert(manager.is()); assert(entity.is()); }
 
 private:
     virtual ~TypedefDescription() {}
@@ -978,25 +1140,24 @@ private:
 
     virtual css::uno::Reference< css::reflection::XTypeDescription > SAL_CALL
     getReferencedType() throw (css::uno::RuntimeException)
-    { return resolve(context_, entity_->getType()); }
+    { return manager_->resolve(entity_->getType()); }
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     rtl::Reference< unoidl::TypedefEntity > entity_;
 };
 
 class ConstructorParameter:
-    public cppu::WeakImplHelper1< css::reflection::XParameter >,
-    private boost::noncopyable
+    public cppu::WeakImplHelper1< css::reflection::XParameter >
 {
 public:
     ConstructorParameter(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         unoidl::SingleInterfaceBasedServiceEntity::Constructor::Parameter
             const & parameter,
         sal_Int32 position):
-        context_(context), parameter_(parameter), position_(position)
-    {}
+        manager_(manager), parameter_(parameter), position_(position)
+    { assert(manager.is()); }
 
 private:
     virtual ~ConstructorParameter() {}
@@ -1006,7 +1167,7 @@ private:
 
     virtual css::uno::Reference< css::reflection::XTypeDescription > SAL_CALL
     getType() throw (css::uno::RuntimeException)
-    { return resolve(context_, parameter_.type); }
+    { return manager_->resolve(parameter_.type); }
 
     virtual sal_Bool SAL_CALL isIn() throw (css::uno::RuntimeException)
     { return true; }
@@ -1021,7 +1182,7 @@ private:
         throw (css::uno::RuntimeException)
     { return parameter_.rest; }
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     unoidl::SingleInterfaceBasedServiceEntity::Constructor::Parameter
         parameter_;
     sal_Int32 position_;
@@ -1029,16 +1190,15 @@ private:
 
 class ConstructorDescription:
     public cppu::WeakImplHelper1<
-        css::reflection::XServiceConstructorDescription >,
-    private boost::noncopyable
+        css::reflection::XServiceConstructorDescription >
 {
 public:
     ConstructorDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         unoidl::SingleInterfaceBasedServiceEntity::Constructor const &
             constructor):
-        context_(context), constructor_(constructor)
-    {}
+        manager_(manager), constructor_(constructor)
+    { assert(manager.is()); }
 
 private:
     virtual ~ConstructorDescription() {}
@@ -1060,7 +1220,7 @@ private:
         css::uno::Reference< css::reflection::XCompoundTypeDescription > >
     SAL_CALL getExceptions() throw (css::uno::RuntimeException);
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     unoidl::SingleInterfaceBasedServiceEntity::Constructor constructor_;
 };
 
@@ -1072,7 +1232,7 @@ ConstructorDescription::getParameters() throw (css::uno::RuntimeException) {
         n);
     for (sal_Int32 i = 0; i != n; ++i) {
         s[i] = new ConstructorParameter(
-            context_, constructor_.parameters[i], i);
+            manager_, constructor_.parameters[i], i);
     }
     return s;
 }
@@ -1086,7 +1246,7 @@ ConstructorDescription::getExceptions() throw (css::uno::RuntimeException) {
         css::uno::Reference< css::reflection::XCompoundTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
         s[i].set(
-            resolve(context_, constructor_.exceptions[i]),
+            manager_->resolve(constructor_.exceptions[i]),
             css::uno::UNO_QUERY_THROW);
     }
     return s;
@@ -1101,13 +1261,13 @@ class SingleInterfaceBasedServiceDescription:
 {
 public:
     SingleInterfaceBasedServiceDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         rtl::Reference< unoidl::SingleInterfaceBasedServiceEntity > const &
             entity):
         SingleInterfaceBasedServiceDescription_Base(entity->isPublished()),
-        context_(context), name_(name), entity_(entity)
-    { assert(entity.is()); }
+        manager_(manager), name_(name), entity_(entity)
+    { assert(manager.is()); assert(entity.is()); }
 
 private:
     virtual ~SingleInterfaceBasedServiceDescription() {}
@@ -1173,14 +1333,14 @@ private:
 
     virtual css::uno::Reference< css::reflection::XTypeDescription > SAL_CALL
     getInterface() throw (css::uno::RuntimeException)
-    { return resolve(context_, entity_->getBase()); }
+    { return manager_->resolve(entity_->getBase()); }
 
     virtual
     css::uno::Sequence<
         css::uno::Reference< css::reflection::XServiceConstructorDescription > >
     SAL_CALL getConstructors() throw (css::uno::RuntimeException);
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     rtl::Reference< unoidl::SingleInterfaceBasedServiceEntity > entity_;
 };
@@ -1197,21 +1357,20 @@ SingleInterfaceBasedServiceDescription::getConstructors()
             s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
         s[i] = new ConstructorDescription(
-            context_, entity_->getConstructors()[i]);
+            manager_, entity_->getConstructors()[i]);
     }
     return s;
 }
 
 class PropertyDescription:
-    public cppu::WeakImplHelper1< css::reflection::XPropertyTypeDescription >,
-    private boost::noncopyable
+    public cppu::WeakImplHelper1< css::reflection::XPropertyTypeDescription >
 {
 public:
     PropertyDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         unoidl::AccumulationBasedServiceEntity::Property const & property):
-        context_(context), property_(property)
-    {}
+        manager_(manager), property_(property)
+    { assert(manager.is()); }
 
 private:
     virtual ~PropertyDescription() {}
@@ -1229,9 +1388,9 @@ private:
 
     virtual css::uno::Reference< css::reflection::XTypeDescription > SAL_CALL
     getPropertyTypeDescription() throw (css::uno::RuntimeException)
-    { return resolve(context_, property_.type); }
+    { return manager_->resolve(property_.type); }
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     unoidl::AccumulationBasedServiceEntity::Property property_;
 };
 
@@ -1244,13 +1403,13 @@ class AccumulationBasedServiceDescription:
 {
 public:
     AccumulationBasedServiceDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         rtl::Reference< unoidl::AccumulationBasedServiceEntity > const &
             entity):
         AccumulationBasedServiceDescription_Base(entity->isPublished()),
-        context_(context), name_(name), entity_(entity)
-    { assert(entity.is()); }
+        manager_(manager), name_(name), entity_(entity)
+    { assert(manager.is()); assert(entity.is()); }
 
 private:
     virtual ~AccumulationBasedServiceDescription() {}
@@ -1305,7 +1464,7 @@ private:
                 css::reflection::XServiceConstructorDescription > >();
     }
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     rtl::Reference< unoidl::AccumulationBasedServiceEntity > entity_;
 };
@@ -1322,7 +1481,7 @@ AccumulationBasedServiceDescription::getMandatoryServices()
         css::uno::Reference< css::reflection::XServiceTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
         s[i].set(
-            resolve(context_, entity_->getDirectMandatoryBaseServices()[i]),
+            manager_->resolve(entity_->getDirectMandatoryBaseServices()[i]),
             css::uno::UNO_QUERY_THROW);
     }
     return s;
@@ -1340,7 +1499,7 @@ AccumulationBasedServiceDescription::getOptionalServices()
         css::uno::Reference< css::reflection::XServiceTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
         s[i].set(
-            resolve(context_, entity_->getDirectOptionalBaseServices()[i]),
+            manager_->resolve(entity_->getDirectOptionalBaseServices()[i]),
             css::uno::UNO_QUERY_THROW);
     }
     return s;
@@ -1360,8 +1519,8 @@ AccumulationBasedServiceDescription::getMandatoryInterfaces()
     for (sal_Int32 i = 0; i != n; ++i) {
         s[i].set(
             resolveTypedefs(
-                resolve(
-                    context_, entity_->getDirectMandatoryBaseInterfaces()[i])),
+                manager_->find(
+                    entity_->getDirectMandatoryBaseInterfaces()[i])),
             css::uno::UNO_QUERY_THROW);
     }
     return s;
@@ -1381,8 +1540,8 @@ AccumulationBasedServiceDescription::getOptionalInterfaces()
     for (sal_Int32 i = 0; i != n; ++i) {
         s[i].set(
             resolveTypedefs(
-                resolve(
-                    context_, entity_->getDirectOptionalBaseInterfaces()[i])),
+                manager_->find(
+                    entity_->getDirectOptionalBaseInterfaces()[i])),
             css::uno::UNO_QUERY_THROW);
     }
     return s;
@@ -1400,7 +1559,7 @@ AccumulationBasedServiceDescription::getProperties()
         css::uno::Reference< css::reflection::XPropertyTypeDescription > > s(n);
     for (sal_Int32 i = 0; i != n; ++i) {
         s[i] = new PropertyDescription(
-            context_, entity_->getDirectProperties()[i]);
+            manager_, entity_->getDirectProperties()[i]);
     }
     return s;
 }
@@ -1414,12 +1573,12 @@ class InterfaceBasedSingletonDescription:
 {
 public:
     InterfaceBasedSingletonDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         rtl::Reference< unoidl::InterfaceBasedSingletonEntity > const & entity):
         InterfaceBasedSingletonDescription_Base(entity->isPublished()),
-        context_(context), name_(name), entity_(entity)
-    { assert(entity.is()); }
+        manager_(manager), name_(name), entity_(entity)
+    { assert(manager.is()); assert(entity.is()); }
 
 private:
     virtual ~InterfaceBasedSingletonDescription() {}
@@ -1444,9 +1603,9 @@ private:
 
     virtual css::uno::Reference< css::reflection::XTypeDescription >
     SAL_CALL getInterface() throw (css::uno::RuntimeException)
-    { return resolve(context_, entity_->getBase()); }
+    { return manager_->resolve(entity_->getBase()); }
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     rtl::Reference< unoidl::InterfaceBasedSingletonEntity > entity_;
 };
@@ -1460,12 +1619,12 @@ class ServiceBasedSingletonDescription:
 {
 public:
     ServiceBasedSingletonDescription(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & name,
         rtl::Reference< unoidl::ServiceBasedSingletonEntity > const & entity):
         ServiceBasedSingletonDescription_Base(entity_->isPublished()),
-        context_(context), name_(name), entity_(entity)
-    { assert(entity.is()); }
+        manager_(manager), name_(name), entity_(entity)
+    { assert(manager.is()); assert(entity.is()); }
 
 private:
     virtual ~ServiceBasedSingletonDescription() {}
@@ -1481,7 +1640,7 @@ private:
     SAL_CALL getService() throw (css::uno::RuntimeException)
     {
         return css::uno::Reference< css::reflection::XServiceTypeDescription >(
-            resolve(context_, entity_->getBase()), css::uno::UNO_QUERY_THROW);
+            manager_->resolve(entity_->getBase()), css::uno::UNO_QUERY_THROW);
     }
 
     virtual sal_Bool SAL_CALL isInterfaceBased()
@@ -1492,24 +1651,23 @@ private:
     SAL_CALL getInterface() throw (css::uno::RuntimeException)
     { return css::uno::Reference< css::reflection::XTypeDescription >(); }
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     rtl::OUString name_;
     rtl::Reference< unoidl::ServiceBasedSingletonEntity > entity_;
 };
 
 class Enumeration:
-    public cppu::WeakImplHelper1<
-        css::reflection::XTypeDescriptionEnumeration >,
-    private boost::noncopyable
+    public cppu::WeakImplHelper1< css::reflection::XTypeDescriptionEnumeration >
 {
 public:
     Enumeration(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
+        rtl::Reference< cppuhelper::TypeManager > const & manager,
         rtl::OUString const & prefix,
         rtl::Reference< unoidl::MapCursor > const & cursor,
         css::uno::Sequence< css::uno::TypeClass > const & types, bool deep):
-        context_(context), types_(types), deep_(deep)
+        manager_(manager), types_(types), deep_(deep)
     {
+        assert(manager.is());
         positions_.push(Position(prefix, cursor));
         findNextMatch();
     }
@@ -1558,7 +1716,7 @@ private:
             constantGroupIndex;
     };
 
-    css::uno::Reference< css::uno::XComponentContext > context_;
+    rtl::Reference< cppuhelper::TypeManager > manager_;
     css::uno::Sequence< css::uno::TypeClass > types_;
     bool deep_;
 
@@ -1582,7 +1740,7 @@ Enumeration::nextTypeDescription()
         name = current_;
         findNextMatch();
     }
-    return resolve(context_, name);
+    return manager_->resolve(name);
 }
 
 bool Enumeration::matches(css::uno::TypeClass tc) const {
@@ -1688,324 +1846,259 @@ void Enumeration::findNextMatch() {
     }
 }
 
-typedef cppu::WeakComponentImplHelper2<
-    css::container::XHierarchicalNameAccess,
-    css::reflection::XTypeDescriptionEnumerationAccess >
-Provider_Base;
+}
 
-class Provider:
-    private osl::Mutex, public Provider_Base, private boost::noncopyable
+cppuhelper::TypeManager::TypeManager(rtl::OUString const & rdbUris):
+    TypeManager_Base(*static_cast< osl::Mutex * >(this)),
+    manager_(new unoidl::Manager)
 {
-public:
-    // throws unoidl::FileFormatException, unoidl::NoSuchFileException:
-    Provider(
-        css::uno::Reference< css::uno::XComponentContext > const & context,
-        rtl::OUString const & uri):
-        Provider_Base(*static_cast< osl::Mutex * >(this)), context_(context),
-        provider_(new unoidl::UnoidlProvider(uri))
-    {}
-
-    using Provider_Base::acquire;
-    using Provider_Base::release;
-
-private:
-    virtual ~Provider() {}
-
-    virtual void SAL_CALL disposing() {} //TODO
-
-    virtual css::uno::Any SAL_CALL getByHierarchicalName(
-        rtl::OUString const & aName)
-        throw (
-            css::container::NoSuchElementException, css::uno::RuntimeException);
-
-    virtual sal_Bool SAL_CALL hasByHierarchicalName(
-        rtl::OUString const & aName) throw (css::uno::RuntimeException);
-
-    virtual css::uno::Reference< css::reflection::XTypeDescriptionEnumeration >
-    SAL_CALL createTypeDescriptionEnumeration(
-        rtl::OUString const & moduleName,
-        css::uno::Sequence< css::uno::TypeClass > const & types,
-        css::reflection::TypeDescriptionSearchDepth depth)
-        throw(
-            css::reflection::NoSuchTypeNameException,
-            css::reflection::InvalidTypeNameException,
-            css::uno::RuntimeException);
-
-    css::uno::Reference< css::uno::XComponentContext > context_;
-    rtl::Reference< unoidl::UnoidlProvider > provider_;
-};
+    readRdbs(rdbUris);
+}
 
-css::uno::Any Provider::getByHierarchicalName(rtl::OUString const & aName)
-    throw (css::container::NoSuchElementException, css::uno::RuntimeException)
-{
-    try {
-        bool cnst;
-        sal_uInt32 off = provider_->find(aName, &cnst);
-        if (off == 0) {
-            throw css::container::NoSuchElementException(
-                aName, static_cast< cppu::OWeakObject * >(this));
-        }
-        if (cnst) {
-            unoidl::ConstantValue val1(provider_->getConstant(off));
-            css::uno::Any val2;
-            switch (val1.type) {
-            case unoidl::ConstantValue::TYPE_BOOLEAN:
-                val2 <<= val1.booleanValue;
-                break;
-            case unoidl::ConstantValue::TYPE_BYTE:
-                val2 <<= val1.byteValue;
-                break;
-            case unoidl::ConstantValue::TYPE_SHORT:
-                val2 <<= val1.shortValue;
-                break;
-            case unoidl::ConstantValue::TYPE_UNSIGNED_SHORT:
-                val2 <<= val1.unsignedShortValue;
-                break;
-            case unoidl::ConstantValue::TYPE_LONG:
-                val2 <<= val1.longValue;
-                break;
-            case unoidl::ConstantValue::TYPE_UNSIGNED_LONG:
-                val2 <<= val1.unsignedLongValue;
-                break;
-            case unoidl::ConstantValue::TYPE_HYPER:
-                val2 <<= val1.hyperValue;
-                break;
-            case unoidl::ConstantValue::TYPE_UNSIGNED_HYPER:
-                val2 <<= val1.unsignedHyperValue;
-                break;
-            case unoidl::ConstantValue::TYPE_FLOAT:
-                val2 <<= val1.floatValue;
-                break;
-            case unoidl::ConstantValue::TYPE_DOUBLE:
-                val2 <<= val1.doubleValue;
-                break;
-            default:
-                for (;;) { std::abort(); } // this cannot happen
-            }
+css::uno::Any cppuhelper::TypeManager::find(rtl::OUString const & name) {
+    //TODO: caching? (here or in unoidl::Manager?)
+    struct Simple {
+        char const * name; sal_Int32 length;
+        css::uno::TypeClass typeClass;
+    };
+    static Simple const simple[] = {
+        { RTL_CONSTASCII_STRINGPARAM("void"), css::uno::TypeClass_VOID },
+        { RTL_CONSTASCII_STRINGPARAM("boolean"), css::uno::TypeClass_BOOLEAN },
+        { RTL_CONSTASCII_STRINGPARAM("byte"), css::uno::TypeClass_BYTE },
+        { RTL_CONSTASCII_STRINGPARAM("short"), css::uno::TypeClass_SHORT },
+        { RTL_CONSTASCII_STRINGPARAM("unsigned short"),
+          css::uno::TypeClass_UNSIGNED_SHORT },
+        { RTL_CONSTASCII_STRINGPARAM("long"), css::uno::TypeClass_LONG },
+        { RTL_CONSTASCII_STRINGPARAM("unsigned long"),
+          css::uno::TypeClass_UNSIGNED_LONG },
+        { RTL_CONSTASCII_STRINGPARAM("hyper"), css::uno::TypeClass_HYPER },
+        { RTL_CONSTASCII_STRINGPARAM("unsigned hyper"),
+          css::uno::TypeClass_UNSIGNED_HYPER },
+        { RTL_CONSTASCII_STRINGPARAM("float"), css::uno::TypeClass_FLOAT },
+        { RTL_CONSTASCII_STRINGPARAM("double"), css::uno::TypeClass_DOUBLE },
+        { RTL_CONSTASCII_STRINGPARAM("char"), css::uno::TypeClass_CHAR },
+        { RTL_CONSTASCII_STRINGPARAM("string"), css::uno::TypeClass_STRING },
+        { RTL_CONSTASCII_STRINGPARAM("type"), css::uno::TypeClass_TYPE },
+        { RTL_CONSTASCII_STRINGPARAM("any"), css::uno::TypeClass_ANY } };
+    for (std::size_t i = 0; i != SAL_N_ELEMENTS(simple); ++i) {
+        if (name.equalsAsciiL(simple[i].name, simple[i].length)) {
             return css::uno::makeAny<
                 css::uno::Reference< css::reflection::XTypeDescription > >(
-                    new ConstantDescription(aName, val2));
-        } else {
-            rtl::Reference< unoidl::Entity > ent(provider_->getEntity(off));
+                    new SimpleTypeDescription(simple[i].typeClass, name));
+        }
+    }
+    if (name.match("[]")) {
+        return getSequenceType(name);
+    }
+    sal_Int32 i = name.indexOf('<');
+    if (i != -1) {
+        return getInstantiatedStruct(name, i);
+    }
+    i = name.indexOf("::");
+    if (i != -1) {
+        return getInterfaceMember(name, i);
+    }
+    rtl::Reference< unoidl::Entity > ent(findEntity(name));
+    if (ent.is()) {
+        return getNamed(name, ent);
+    }
+    i = name.lastIndexOf('.');
+    if (i != -1) {
+        ent = findEntity(name.copy(0, i));
+        if (ent.is()) {
             switch (ent->getSort()) {
-            case unoidl::Entity::SORT_MODULE:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new ModuleDescription(
-                            context_, aName,
-                            static_cast< unoidl::ModuleEntity * >(ent.get())));
             case unoidl::Entity::SORT_ENUM_TYPE:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new EnumTypeDescription(
-                            aName,
-                            static_cast< unoidl::EnumTypeEntity * >(
-                                ent.get())));
-            case unoidl::Entity::SORT_PLAIN_STRUCT_TYPE:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new PlainStructTypeDescription(
-                            context_, aName,
-                            static_cast< unoidl::PlainStructTypeEntity * >(
-                                ent.get())));
-            case unoidl::Entity::SORT_POLYMORPHIC_STRUCT_TYPE_TEMPLATE:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new PolymorphicStructTypeTemplateDescription(
-                            context_, aName,
-                            static_cast<
-                                unoidl::PolymorphicStructTypeTemplateEntity * >(
-                                    ent.get())));
-            case unoidl::Entity::SORT_EXCEPTION_TYPE:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new ExceptionTypeDescription(
-                            context_, aName,
-                            static_cast< unoidl::ExceptionTypeEntity * >(
-                                ent.get())));
-            case unoidl::Entity::SORT_INTERFACE_TYPE:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new InterfaceTypeDescription(
-                            context_, aName,
-                            static_cast< unoidl::InterfaceTypeEntity * >(
-                                ent.get())));
-            case unoidl::Entity::SORT_TYPEDEF:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new TypedefDescription(
-                            context_, aName,
-                            static_cast< unoidl::TypedefEntity * >(ent.get())));
+                return getEnumMember(
+                    static_cast< unoidl::EnumTypeEntity * >(ent.get()),
+                    name.copy(i + 1));
             case unoidl::Entity::SORT_CONSTANT_GROUP:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new ConstantGroupDescription(
-                            context_, aName,
-                            static_cast< unoidl::ConstantGroupEntity * >(
-                                ent.get())));
-            case unoidl::Entity::SORT_SINGLE_INTERFACE_BASED_SERVICE:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new SingleInterfaceBasedServiceDescription(
-                            context_, aName,
-                            static_cast<
-                                unoidl::SingleInterfaceBasedServiceEntity * >(
-                                    ent.get())));
-            case unoidl::Entity::SORT_ACCUMULATION_BASED_SERVICE:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new AccumulationBasedServiceDescription(
-                            context_, aName,
-                            static_cast<
-                                unoidl::AccumulationBasedServiceEntity * >(
-                                    ent.get())));
-            case unoidl::Entity::SORT_INTERFACE_BASED_SINGLETON:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new InterfaceBasedSingletonDescription(
-                            context_, aName,
-                            static_cast<
-                                unoidl::InterfaceBasedSingletonEntity * >(
-                                    ent.get())));
-            case unoidl::Entity::SORT_SERVICE_BASED_SINGLETON:
-                return css::uno::makeAny<
-                    css::uno::Reference< css::reflection::XTypeDescription > >(
-                        new ServiceBasedSingletonDescription(
-                            context_, aName,
-                            static_cast<
-                                unoidl::ServiceBasedSingletonEntity * >(
-                                    ent.get())));
+                return getConstant(
+                    static_cast< unoidl::ConstantGroupEntity * >(ent.get()),
+                    name.copy(i + 1));
             default:
-                for (;;) { std::abort(); } // this cannot happen
+                break;
             }
         }
-    } catch (unoidl::FileFormatException & e) {
+    }
+    return css::uno::Any();
+}
+
+css::uno::Reference< css::reflection::XTypeDescription >
+cppuhelper::TypeManager::resolve(rtl::OUString const & name) {
+    css::uno::Reference< css::reflection::XTypeDescription > desc(
+        find(name), css::uno::UNO_QUERY);
+    if (!desc.is()) {
         throw css::uno::DeploymentException(
-            e.getUri() + ": " + e.getDetail(),
+            "cannot resolve type \"" + name + "\"",
             static_cast< cppu::OWeakObject * >(this));
     }
+    return desc;
 }
 
-sal_Bool Provider::hasByHierarchicalName(
-    rtl::OUString const & aName) throw (css::uno::RuntimeException)
+cppuhelper::TypeManager::~TypeManager() throw () {}
+
+void cppuhelper::TypeManager::disposing() {} //TODO
+
+rtl::OUString cppuhelper::TypeManager::getImplementationName()
+    throw (css::uno::RuntimeException)
 {
-    try {
-        return provider_->find(aName) != 0;
-    } catch (unoidl::FileFormatException & e) {
-        throw css::uno::DeploymentException(
-            e.getUri() + ": " + e.getDetail(),
-            static_cast< cppu::OWeakObject * >(this));
+    return rtl::OUString(
+        "com.sun.star.comp.cppuhelper.bootstrap.TypeManager");
+}
+
+sal_Bool cppuhelper::TypeManager::supportsService(
+    rtl::OUString const & ServiceName)
+    throw (css::uno::RuntimeException)
+{
+    return cppu::supportsService(this, ServiceName);
+}
+
+css::uno::Sequence< rtl::OUString >
+cppuhelper::TypeManager::getSupportedServiceNames()
+    throw (css::uno::RuntimeException)
+{
+    css::uno::Sequence< rtl::OUString > names(1);
+    names[0] = "com.sun.star.reflection.TypeDescriptionManager"; //TODO
+    return names;
+}
+
+css::uno::Any cppuhelper::TypeManager::getByHierarchicalName(
+    rtl::OUString const & aName)
+    throw (css::container::NoSuchElementException, css::uno::RuntimeException)
+{
+    css::uno::Any desc(find(aName));
+    if (!desc.hasValue()) {
+        throw css::container::NoSuchElementException(
+            aName, static_cast< cppu::OWeakObject * >(this));
     }
+    return desc;
+}
+
+sal_Bool cppuhelper::TypeManager::hasByHierarchicalName(
+    rtl::OUString const & aName)
+    throw (css::uno::RuntimeException)
+{
+    return find(aName).hasValue();
+}
+
+css::uno::Type cppuhelper::TypeManager::getElementType()
+    throw (css::uno::RuntimeException)
+{
+    return cppu::UnoType< rtl::OUString >::get();
+}
+
+sal_Bool cppuhelper::TypeManager::hasElements()
+    throw (css::uno::RuntimeException)
+{
+    throw css::uno::RuntimeException(
+        "TypeManager hasElements: method not supported",
+        static_cast< cppu::OWeakObject * >(this));
+}
+
+css::uno::Reference< css::container::XEnumeration >
+cppuhelper::TypeManager::createEnumeration()
+    throw (css::uno::RuntimeException)
+{
+    throw css::uno::RuntimeException(
+        "TypeManager createEnumeration: method not supported",
+        static_cast< cppu::OWeakObject * >(this));
+}
+
+sal_Bool cppuhelper::TypeManager::has(css::uno::Any const &)
+    throw (css::uno::RuntimeException)
+{
+    throw css::uno::RuntimeException(
+        "TypeManager has: method not supported",
+        static_cast< cppu::OWeakObject * >(this));
+}
+
+void cppuhelper::TypeManager::insert(css::uno::Any const & aElement)
+    throw (
+        css::lang::IllegalArgumentException,
+        css::container::ElementExistException, css::uno::RuntimeException)
+{
+    rtl::OUString uri;
+    if (!(aElement >>= uri)) {
+        throw css::lang::IllegalArgumentException(
+            ("css.uno.theTypeDescriptionManager.insert expects a string URI"
+             " argument"),
+            static_cast< cppu::OWeakObject * >(this), 0);
+    }
+    //TODO: check for ElementExistException
+    //TODO: check for consistency with existing data
+    readRdbFile(uri, false);
+}
+
+void cppuhelper::TypeManager::remove(css::uno::Any const & aElement)
+    throw (
+        css::lang::IllegalArgumentException,
+        css::container::NoSuchElementException, css::uno::RuntimeException)
+{
+    rtl::OUString uri;
+    if (!(aElement >>= uri)) {
+        throw css::lang::IllegalArgumentException(
+            ("css.uno.theTypeDescriptionManager.remove expects a string URI"
+             " argument"),
+            static_cast< cppu::OWeakObject * >(this), 0);
+    }
+    //TODO: remove requests are silently ignored for now
 }
 
 css::uno::Reference< css::reflection::XTypeDescriptionEnumeration >
-Provider::createTypeDescriptionEnumeration(
+cppuhelper::TypeManager::createTypeDescriptionEnumeration(
     rtl::OUString const & moduleName,
     css::uno::Sequence< css::uno::TypeClass > const & types,
     css::reflection::TypeDescriptionSearchDepth depth)
-    throw(
+    throw (
         css::reflection::NoSuchTypeNameException,
-        css::reflection::InvalidTypeNameException, css::uno::RuntimeException)
+        css::reflection::InvalidTypeNameException,
+        css::uno::RuntimeException)
 {
+    //TODO: This fails for modules spread across multiple providers, esp. for
+    // the empty moduleName
+    rtl::Reference< unoidl::Entity > ent(findEntity(moduleName));
+    if (!ent.is()) {
+        throw css::reflection::NoSuchTypeNameException(
+            moduleName, static_cast< cppu::OWeakObject * >(this));
+    }
+    if (ent->getSort() != unoidl::Entity::SORT_MODULE) {
+        throw css::reflection::InvalidTypeNameException(
+            moduleName, static_cast< cppu::OWeakObject * >(this));
+    }
+    rtl::Reference< unoidl::MapCursor > cursor;
     try {
-        rtl::OUString prefix;
-        rtl::Reference< unoidl::MapCursor > cursor;
-        if (moduleName.isEmpty()) {
-            cursor = provider_->createRootCursor();
-        } else {
-            prefix = moduleName + ".";
-            bool cnst;
-            sal_uInt32 off = provider_->find(moduleName, &cnst);
-            if (off == 0) {
-                throw css::reflection::NoSuchTypeNameException(
-                    moduleName, static_cast< cppu::OWeakObject * >(this));
-            }
-            if (cnst) {
-                throw css::reflection::InvalidTypeNameException(
-                    moduleName, static_cast< cppu::OWeakObject * >(this));
-            }
-            rtl::Reference< unoidl::Entity > ent(provider_->getEntity(off));
-            if (ent->getSort() != unoidl::Entity::SORT_MODULE) {
-                throw css::reflection::InvalidTypeNameException(
-                    moduleName, static_cast< cppu::OWeakObject * >(this));
-            }
-            cursor = static_cast< unoidl::ModuleEntity * >(ent.get())->
-                createCursor();
-        }
-        return new Enumeration(
-            context_, prefix, cursor, types,
-            depth == css::reflection::TypeDescriptionSearchDepth_INFINITE);
+        cursor = static_cast< unoidl::ModuleEntity * >(ent.get())->
+            createCursor();
     } catch (unoidl::FileFormatException & e) {
         throw css::uno::DeploymentException(
-            e.getUri() + ": " + e.getDetail(),
+            ("unoidl::FileFormatException for <" + e.getUri() + ">: "
+             + e.getDetail()),
             static_cast< cppu::OWeakObject * >(this));
     }
+    return new Enumeration(
+        this, moduleName + ".", cursor, types,
+        depth == css::reflection::TypeDescriptionSearchDepth_INFINITE);
 }
 
-css::uno::Reference< css::container::XHierarchicalNameAccess >
-readLegacyRdbFile(
-    rtl::OUString const & uri,
-    css::uno::Reference< css::lang::XMultiComponentFactory > const &
-        serviceManager,
-    css::uno::Reference< css::uno::XComponentContext > const & context)
-{
-    assert(serviceManager.is());
-    css::uno::Reference< css::registry::XSimpleRegistry > reg(
-        serviceManager->createInstanceWithContext(
-            "com.sun.star.comp.stoc.SimpleRegistry", context),
-        css::uno::UNO_QUERY_THROW);
-    try {
-        reg->open(uri, true, false);
-    } catch (css::registry::InvalidRegistryException & e) {
-        throw css::uno::DeploymentException(
-            "Invalid registry " + uri + ":" + e.Message,
-            css::uno::Reference< css::uno::XInterface >());
-    }
-    css::uno::Sequence< css::uno::Any > arg(1);
-    arg[0] <<= reg;
-    return css::uno::Reference< css::container::XHierarchicalNameAccess >(
-        serviceManager->createInstanceWithArgumentsAndContext(
-            "com.sun.star.comp.stoc.RegistryTypeDescriptionProvider", arg,
-            context),
-        css::uno::UNO_QUERY_THROW);
-}
-
-void readRdbFile(
-    rtl::OUString const & uri, bool optional,
-    css::uno::Reference< css::lang::XMultiComponentFactory > const &
-        serviceManager,
-    css::uno::Reference< css::uno::XComponentContext > const & context,
-    std::vector<
-        css::uno::Reference< css::container::XHierarchicalNameAccess > > *
-            providers)
-{
-    assert(providers != 0);
-    css::uno::Reference< css::container::XHierarchicalNameAccess > prov;
-    try {
-        prov = new Provider(context, uri);
-    } catch (unoidl::NoSuchFileException &) {
-        if (optional) {
-            SAL_INFO("cppuhelper", "Ignored optional " << uri);
-            return;
+void cppuhelper::TypeManager::readRdbs(rtl::OUString const & uris) {
+    for (sal_Int32 i = 0; i != -1;) {
+        rtl::OUString uri(uris.getToken(0, ' ', i));
+        if (uri.isEmpty()) {
+            continue;
+        }
+        bool optional;
+        bool directory;
+        cppu::decodeRdbUri(&uri, &optional, &directory);
+        if (directory) {
+            readRdbDirectory(uri, optional);
+        } else {
+            readRdbFile(uri, optional);
         }
-        throw css::uno::DeploymentException(
-            uri + ": no such file",
-            css::uno::Reference< css::uno::XInterface >());
-    } catch (unoidl::FileFormatException &) {
-        prov = readLegacyRdbFile(uri, serviceManager, context);
     }
-    assert(prov.is());
-    providers->push_back(prov);
 }
 
-void readRdbDirectory(
-    rtl::OUString const & uri, bool optional,
-    css::uno::Reference< css::lang::XMultiComponentFactory > const &
-        serviceManager,
-    css::uno::Reference< css::uno::XComponentContext > const & context,
-    std::vector<
-        css::uno::Reference< css::container::XHierarchicalNameAccess > > *
-            providers)
+void cppuhelper::TypeManager::readRdbDirectory(
+    rtl::OUString const & uri, bool optional)
 {
     osl::Directory dir(uri);
     switch (dir.open()) {
@@ -2020,54 +2113,258 @@ void readRdbDirectory(
     default:
         throw css::uno::DeploymentException(
             "Cannot open directory " + uri,
-            css::uno::Reference< css::uno::XInterface >());
+            static_cast< cppu::OWeakObject * >(this));
     }
     for (;;) {
-        rtl::OUString fileUri;
-        if (!cppu::nextDirectoryItem(dir, &fileUri)) {
+        rtl::OUString url;
+        if (!cppu::nextDirectoryItem(dir, &url)) {
             break;
         }
-        readRdbFile(fileUri, optional, serviceManager, context, providers);
+        readRdbFile(url, false);
     }
 }
 
+void cppuhelper::TypeManager::readRdbFile(
+    rtl::OUString const & uri, bool optional)
+{
+    rtl::Reference< unoidl::Provider > prov;
+    try {
+        prov = unoidl::loadProvider(manager_, uri);
+    } catch (unoidl::NoSuchFileException &) {
+        if (!optional) {
+            throw css::uno::DeploymentException(
+                uri + ": no such file",
+                static_cast< cppu::OWeakObject * >(this));
+        }
+        SAL_INFO("cppuhelper", "Ignored optional " << uri);
+    } catch (unoidl::FileFormatException & e) {
+            throw css::uno::DeploymentException(
+                ("unoidl::FileFormatException for <" + e.getUri() + ">: "
+                 + e.getDetail()),
+                static_cast< cppu::OWeakObject * >(this));
+    }
+    manager_->addProvider(prov);
 }
 
-css::uno::Sequence<
-    css::uno::Reference< css::container::XHierarchicalNameAccess > >
-cppuhelper::createTypeDescriptionProviders(
-    rtl::OUString const & uris,
-    css::uno::Reference< css::lang::XMultiComponentFactory > const &
-        serviceManager,
-    css::uno::Reference< css::uno::XComponentContext > const & context)
-{
-    std::vector<
-        css::uno::Reference< css::container::XHierarchicalNameAccess > > provs;
-    for (sal_Int32 i = 0; i != -1;) {
-        rtl::OUString uri(uris.getToken(0, ' ', i));
-        if (uri.isEmpty()) {
-            continue;
+css::uno::Any cppuhelper::TypeManager::getSequenceType(
+    rtl::OUString const & name)
+{
+    assert(name.match("[]"));
+    return css::uno::makeAny<
+        css::uno::Reference< css::reflection::XTypeDescription > >(
+            new SequenceTypeDescription(
+                this, name, name.copy(std::strlen("[]"))));
+}
+
+css::uno::Any cppuhelper::TypeManager::getInstantiatedStruct(
+    rtl::OUString const & name, sal_Int32 separator)
+{
+    assert(name.indexOf('<') == separator && separator != -1);
+    rtl::Reference< unoidl::Entity > ent(findEntity(name.copy(0, separator)));
+    if (!ent.is()
+        || (ent->getSort()
+            != unoidl::Entity::SORT_POLYMORPHIC_STRUCT_TYPE_TEMPLATE))
+    {
+        return css::uno::Any();
+    }
+    rtl::Reference< unoidl::PolymorphicStructTypeTemplateEntity > ent2(
+        static_cast< unoidl::PolymorphicStructTypeTemplateEntity * >(
+            ent.get()));
+    std::vector< rtl::OUString > args;
+    sal_Int32 i = separator;
+    do {
+        ++i; // skip '<' or ','
+        sal_Int32 j = i;
+        for (sal_Int32 level = 0; j != name.getLength(); ++j) {
+            sal_Unicode c = name[j];
+            if (c == ',') {
+                if (level == 0) {
+                    break;
+                }
+            } else if (c == '<') {
+                ++level;
+            } else if (c == '>') {
+                if (level == 0) {
+                    break;
+                }
+                --level;
+            }
         }
-        bool optional;
-        bool directory;
-        cppu::decodeRdbUri(&uri, &optional, &directory);
-        if (directory) {
-            readRdbDirectory(uri, optional, serviceManager, context, &provs);
-        } else {
-            readRdbFile(uri, optional, serviceManager, context, &provs);
+        if (j != name.getLength()) {
+            args.push_back(name.copy(i, j - i));
         }
+        i = j;
+    } while (i != name.getLength() && name[i] != '>');
+    if (i != name.getLength() - 1 || name[i] != '>'
+        || args.size() != ent2->getTypeParameters().size())
+    {
+        return css::uno::Any();
     }
+    return css::uno::makeAny<
+        css::uno::Reference< css::reflection::XTypeDescription > >(
+            new InstantiatedPolymorphicStructTypeDescription(
+                this, name, ent2, args));
+}
+
+css::uno::Any cppuhelper::TypeManager::getInterfaceMember(
+    rtl::OUString const & name, sal_Int32 separator)
+{
+    assert(name.indexOf("::") == separator && separator != -1);
+    css::uno::Reference< css::reflection::XInterfaceTypeDescription2 > ifc(
+        resolveTypedefs(find(name.copy(0, separator))), css::uno::UNO_QUERY);
+    if (!ifc.is()) {
+        return css::uno::Any();
+    }
+    rtl::OUString member(name.copy(separator + std::strlen("::")));
     css::uno::Sequence<
-        css::uno::Reference< css::container::XHierarchicalNameAccess > > provs2(
-            static_cast< sal_Int32 >(provs.size())); //TODO: check overflow
-    std::vector<
         css::uno::Reference<
-            css::container::XHierarchicalNameAccess > >::iterator i(
-                provs.begin());
-    for (sal_Int32 j = 0; j != provs2.getLength(); ++j) {
-        provs2[j] = *i++;
+            css::reflection::XInterfaceMemberTypeDescription > > mems(
+                ifc->getMembers());
+    for (sal_Int32 i = 0; i != mems.getLength(); ++i) {
+        if (mems[i]->getMemberName() == member) {
+            return css::uno::makeAny<
+                css::uno::Reference< css::reflection::XTypeDescription > >(
+                    mems[i].get());
+        }
+    }
+    return css::uno::Any();
+}
+
+css::uno::Any cppuhelper::TypeManager::getNamed(
+    rtl::OUString const & name, rtl::Reference< unoidl::Entity > entity)
+{
+    assert(entity.is());
+    switch (entity->getSort()) {
+    case unoidl::Entity::SORT_MODULE:
+        return css::uno::makeAny<
+            css::uno::Reference< css::reflection::XTypeDescription > >(
+                new ModuleDescription(
+                    this, name,
+                    static_cast< unoidl::ModuleEntity * >(entity.get())));
+    case unoidl::Entity::SORT_ENUM_TYPE:
+        return css::uno::makeAny<
+            css::uno::Reference< css::reflection::XTypeDescription > >(
+                new EnumTypeDescription(
+                    name,
+                    static_cast< unoidl::EnumTypeEntity * >(entity.get())));
+    case unoidl::Entity::SORT_PLAIN_STRUCT_TYPE:
+        return css::uno::makeAny<
+            css::uno::Reference< css::reflection::XTypeDescription > >(
+                new PlainStructTypeDescription(
+                    this, name,
+                    static_cast< unoidl::PlainStructTypeEntity * >(
+                        entity.get())));

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list