summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbasic/prj/build.lst2
-rw-r--r--basic/source/classes/sbxmod.cxx2
-rw-r--r--boost/boost_1_39_0.patch196
-rw-r--r--boost/makefile.mk2
-rw-r--r--boost/prj/d.lst10
-rw-r--r--bridges/source/jni_uno/jni_uno2java.cxx2
-rw-r--r--chart2/prj/build.lst1
-rw-r--r--comphelper/inc/comphelper/storagehelper.hxx9
-rw-r--r--comphelper/qa/complex/makefile.mk14
-rw-r--r--comphelper/source/misc/storagehelper.cxx27
-rw-r--r--configmgr/prj/d.lst11
-rw-r--r--configmgr/source/access.cxx2
-rw-r--r--configmgr/source/components.cxx10
-rw-r--r--configmgr/source/groupnode.cxx12
-rw-r--r--configmgr/source/groupnode.hxx4
-rw-r--r--configmgr/source/localizedpropertynode.cxx2
-rw-r--r--configmgr/source/localizedpropertynode.hxx2
-rw-r--r--configmgr/source/localizedvaluenode.cxx2
-rw-r--r--configmgr/source/localizedvaluenode.hxx2
-rw-r--r--configmgr/source/makefile.mk4
-rw-r--r--configmgr/source/node.hxx2
-rw-r--r--configmgr/source/nodemap.cxx2
-rw-r--r--configmgr/source/propertynode.cxx2
-rw-r--r--configmgr/source/propertynode.hxx2
-rw-r--r--configmgr/source/services.cxx17
-rw-r--r--configmgr/source/setnode.cxx11
-rw-r--r--configmgr/source/setnode.hxx4
-rw-r--r--configmgr/source/update.cxx143
-rw-r--r--configmgr/source/update.hxx59
-rw-r--r--configmgr/source/xcsparser.cxx26
-rw-r--r--configmgr/source/xcuparser.cxx4
-rw-r--r--configure.in24
-rw-r--r--connectivity/prj/build.lst2
-rw-r--r--connectivity/qa/connectivity/tools/makefile.mk3
-rw-r--r--connectivity/source/drivers/calc/CTable.cxx9
-rwxr-xr-xcppu/test/AffineBridge/AffineBridge.test.pl72
-rw-r--r--cppu/test/AffineBridge/makefile.mk42
-rw-r--r--cppu/test/AntiEnvGuard/AntiEnvGuard.test.cxx131
-rw-r--r--cppu/test/AntiEnvGuard/makefile.mk46
-rw-r--r--cppu/test/EnvDcp/EnvDcp.test.cxx111
-rw-r--r--cppu/test/EnvGuard/EnvGuard.test.cxx152
-rw-r--r--cppu/test/EnvGuard/makefile.mk46
-rwxr-xr-xcppu/test/EnvStack/EnvStack.test.pl89
-rw-r--r--cppu/test/EnvStack_tester/EnvStack.tester.cxx200
-rw-r--r--cppu/test/EnvStack_tester/EnvStack.tester.hxx61
-rw-r--r--cppu/test/EnvStack_tester/ProbeEnv.cxx148
-rw-r--r--cppu/test/EnvStack_tester/ProbeEnv.def8
-rw-r--r--cppu/test/EnvStack_tester/makefile.mk126
-rw-r--r--cppu/test/Environment.test.cxx75
-rw-r--r--cppu/test/FreeReference/FreeReference.test.cxx414
-rw-r--r--cppu/test/IdentityMapping.test.cxx77
-rw-r--r--cppu/test/Map/Map.test.cxx258
-rw-r--r--cppu/test/Mapping.test.cxx77
-rw-r--r--cppu/test/ObjectFactory/CppObject.cxx103
-rw-r--r--cppu/test/ObjectFactory/CppObject.hxx62
-rw-r--r--cppu/test/ObjectFactory/ObjectFactory.cxx69
-rw-r--r--cppu/test/ObjectFactory/ObjectFactory.hxx48
-rw-r--r--cppu/test/ObjectFactory/UnoObject.cxx227
-rw-r--r--cppu/test/ObjectFactory/UnoObject.hxx43
-rw-r--r--cppu/test/ObjectFactory/callee.hxx39
-rw-r--r--cppu/test/ObjectFactory/empty.def5
-rw-r--r--cppu/test/ObjectFactory/makefile.mk48
-rw-r--r--cppu/test/Shield/Shield.test.cxx249
-rw-r--r--cppu/test/Shield/makefile.mk55
-rwxr-xr-xcppu/test/UnsafeBridge/UnsafeBridge.test.pl72
-rw-r--r--cppu/test/alignment.idl205
-rw-r--r--cppu/test/alignment/diagnose.h67
-rw-r--r--cppu/test/alignment/makefile.mk84
-rw-r--r--cppu/test/alignment/pass1.cxx240
-rw-r--r--cppu/test/cascade_mapping/TestMapping.cxx194
-rw-r--r--cppu/test/cascade_mapping/TestMapping.def11
-rw-r--r--cppu/test/cascade_mapping/TestProxy.cxx179
-rw-r--r--cppu/test/cascade_mapping/TestProxy.hxx70
-rwxr-xr-xcppu/test/cascade_mapping/cascade_mapping.test.pl91
-rw-r--r--cppu/test/cascade_mapping/makefile.mk90
-rw-r--r--cppu/test/cascade_mapping/path.test.cxx60
-rw-r--r--cppu/test/cascade_mapping/path.test.def8
-rw-r--r--cppu/test/cpputest.idl94
-rw-r--r--cppu/test/env_substs/env_subst.test.cxx95
-rw-r--r--cppu/test/env_substs/makefile.mk46
-rw-r--r--cppu/test/env_tester/TestEnvironment.cxx37
-rw-r--r--cppu/test/env_tester/TestEnvironment.def7
-rw-r--r--cppu/test/env_tester/env.tester.cxx104
-rw-r--r--cppu/test/env_tester/makefile.mk67
-rw-r--r--cppu/test/env_tester/purpenv.test.cxx401
-rw-r--r--cppu/test/env_tester/register.test.cxx234
-rw-r--r--cppu/test/language_binding.idl239
-rw-r--r--cppu/test/makefile.mk156
-rw-r--r--cppu/test/mapping_tester/Mapping.tester.hxx75
-rw-r--r--cppu/test/mapping_tester/mapping.tester.cxx456
-rw-r--r--cppu/test/purpenvhelper/TestEnv.cxx129
-rw-r--r--cppu/test/purpenvhelper/TestEnv.def8
-rw-r--r--cppu/test/purpenvhelper/makefile.mk54
-rw-r--r--cppu/test/purpose_envs/makefile.mk44
-rw-r--r--cppu/test/surrogate.hxx155
-rw-r--r--cppu/test/test_Cincludes.c9
-rw-r--r--cppu/test/test_cuno.c784
-rw-r--r--cppu/test/test_di.cxx888
-rw-r--r--cppu/test/test_sec.cxx211
-rw-r--r--cppu/test/testcppu.cxx1241
-rw-r--r--cppu/test/testthreadpool.cxx193
-rw-r--r--cppunit/ldflags.patch10
-rw-r--r--cppunit/makefile.mk4
-rw-r--r--dbaccess/prj/build.lst2
-rwxr-xr-xdbaccess/qa/complex/dbaccess/makefile.mk5
-rw-r--r--default_images/sc/res/calcteam.pngbin85491 -> 0 bytes
-rw-r--r--desktop/prj/build.lst2
-rw-r--r--desktop/source/app/makefile.mk1
-rw-r--r--desktop/source/deployment/makefile.mk3
-rw-r--r--desktop/source/deployment/misc/dp_dependencies.cxx16
-rw-r--r--desktop/source/deployment/registry/configuration/dp_configuration.cxx12
-rw-r--r--desktop/source/migration/migration.cxx26
-rw-r--r--desktop/source/splash/makefile.mk1
-rw-r--r--desktop/test/deployment/boxt/Addons.xcu50
-rw-r--r--desktop/test/deployment/boxt/ProtocolHandler.xcu38
-rw-r--r--desktop/test/deployment/boxt/boxt.cxx235
-rw-r--r--desktop/test/deployment/boxt/description.xml39
-rw-r--r--desktop/test/deployment/boxt/makefile.mk70
-rw-r--r--desktop/test/deployment/boxt/manifest.xml37
-rw-r--r--desktop/util/makefile.mk71
-rw-r--r--editeng/source/editeng/eehtml.cxx21
-rw-r--r--editeng/source/editeng/eehtml.hxx1
-rw-r--r--extensions/prj/build.lst1
-rw-r--r--extensions/source/abpilot/datasourcehandling.cxx19
-rw-r--r--extensions/source/abpilot/datasourcehandling.hxx11
-rw-r--r--extensions/source/nsplugin/source/so_env.cxx21
-rw-r--r--extensions/source/nsplugin/source/so_env.hxx3
-rw-r--r--extensions/source/nsplugin/source/so_instance.cxx8
-rw-r--r--extensions/source/nsplugin/source/so_instance.hxx1
-rw-r--r--extensions/source/nsplugin/source/so_main.cxx10
-rw-r--r--extensions/source/propctrlr/browserline.cxx6
-rw-r--r--extensions/source/propctrlr/browserline.hxx1
-rw-r--r--extensions/source/propctrlr/browserlistbox.cxx19
-rw-r--r--extensions/source/propctrlr/browserlistbox.hxx2
-rw-r--r--extensions/source/propctrlr/handlerhelper.cxx8
-rw-r--r--extensions/source/propctrlr/handlerhelper.hxx8
-rw-r--r--extras/source/autotext/lang/af-ZA/acor_af-ZA.datbin61723 -> 5241 bytes
-rw-r--r--extras/source/autotext/lang/da/acor_da-DK.datbin68970 -> 7470 bytes
-rw-r--r--extras/source/autotext/lang/en-ZA/acor_en-ZA.datbin81042 -> 8244 bytes
-rw-r--r--extras/source/autotext/lang/mn/acor_mn-MN.datbin31558 -> 4249 bytes
-rw-r--r--extras/source/autotext/lang/pl/acor_pl-PL.datbin79983 -> 7913 bytes
-rw-r--r--filter/source/config/fragments/types/calc_Text_txt_csv_StarCalc.xcu2
-rw-r--r--filter/source/xslt/odf2xhtml/export/xhtml/body.xsl2
-rw-r--r--forms/prj/build.lst2
-rw-r--r--forms/qa/makefile.mk12
-rw-r--r--forms/qa/unoapi/forms.sce6
-rw-r--r--forms/qa/unoapi/knownissues.xcl11
-rw-r--r--forms/source/component/DatabaseForm.cxx10
-rw-r--r--forms/source/inc/InterfaceContainer.hxx2
-rw-r--r--forms/source/misc/InterfaceContainer.cxx117
-rw-r--r--formula/inc/formula/compiler.hrc8
-rw-r--r--formula/inc/formula/opcode.hxx4
-rw-r--r--formula/source/core/api/FormulaCompiler.cxx2
-rw-r--r--framework/inc/properties.h8
-rw-r--r--framework/inc/uielement/toolbarmanager.hxx2
-rw-r--r--framework/inc/uielement/uicommanddescription.hxx2
-rwxr-xr-xframework/qa/unoapi/knownissues.xcl3
-rw-r--r--framework/source/uielement/toolbarmanager.cxx96
-rw-r--r--framework/source/uielement/uicommanddescription.cxx4
-rw-r--r--instsetoo_native/util/openoffice.lst3
-rw-r--r--jurt/com/sun/star/lib/connections/pipe/PipeConnection.java24
-rw-r--r--jurt/prj/build.lst1
-rw-r--r--jurt/prj/d.lst3
-rw-r--r--jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c47
-rw-r--r--jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.h53
-rw-r--r--jurt/source/pipe/jpipe.dxp5
-rw-r--r--jurt/source/pipe/makefile.mk96
-rw-r--r--jurt/source/pipe/wrapper/makefile.mk (renamed from cppu/test/EnvDcp/makefile.mk)36
-rw-r--r--jurt/source/pipe/wrapper/wrapper.c99
-rwxr-xr-xlibxml2/libxml2-2.6.31-mingw.patch24
-rw-r--r--libxml2/libxml2-2.6.31.patch412
-rw-r--r--libxml2/libxml2-configure.patch118
-rw-r--r--libxml2/libxml2-gnome599717.patch20
-rw-r--r--libxml2/libxml2-gnome602728.patch12
-rwxr-xr-xlibxml2/libxml2-mingw.patch24
-rw-r--r--libxml2/makefile.mk14
-rw-r--r--libxmlsec/makefile.mk17
-rw-r--r--libxmlsec/readme.txt2
-rw-r--r--libxmlsec/xmlsec1-configure.patch705
-rw-r--r--libxmlsec/xmlsec1-customkeymanage.patch428
-rw-r--r--libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch28
-rw-r--r--libxmlsec/xmlsec1-mingw32.patch191
-rw-r--r--libxmlsec/xmlsec1-noverify.patch10
-rw-r--r--libxmlsec/xmlsec1-nssdisablecallbacks.patch4
-rw-r--r--libxmlsec/xmlsec1-nssmangleciphers.patch4
-rw-r--r--libxmlsec/xmlsec1-olderlibxml2.patch23
-rw-r--r--libxslt/libxslt-configure.patch (renamed from libxslt/libxslt-1.1.24.patch)24
-rw-r--r--libxslt/libxslt-gnome602728.patch11
-rw-r--r--libxslt/libxslt-win_manifest.patch (renamed from libxslt/libxslt-1.1.24_win_manifest.patch)6
-rw-r--r--libxslt/libxsltversion.mk2
-rw-r--r--libxslt/makefile.mk6
-rw-r--r--np_sdk/mozsrc/npunix.c48
-rw-r--r--odk/cfgWin.js2
-rwxr-xr-x[-rw-r--r--]odk/configure.pl14
-rw-r--r--odk/setsdkenv_unix.csh.in8
-rw-r--r--odk/setsdkenv_unix.sh.in8
-rw-r--r--odk/settings/settings.mk12
-rw-r--r--offapi/com/sun/star/configuration/Update.idl (renamed from configmgr/inc/configmgr/detail/configmgrdllapi.hxx)22
-rw-r--r--offapi/com/sun/star/configuration/XUpdate.idl (renamed from configmgr/inc/configmgr/update.hxx)39
-rw-r--r--offapi/com/sun/star/configuration/makefile.mk2
-rwxr-xr-xoffapi/com/sun/star/document/DocumentProperties.idl2
-rw-r--r--offapi/com/sun/star/document/OfficeDocument.idl13
-rwxr-xr-xoffapi/com/sun/star/document/XDocumentProperties.idl30
-rw-r--r--offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl2
-rw-r--r--offapi/com/sun/star/embed/Actions.idl2
-rw-r--r--offapi/com/sun/star/embed/Aspects.idl2
-rw-r--r--offapi/com/sun/star/embed/BaseStorage.idl2
-rw-r--r--offapi/com/sun/star/embed/DocumentCloser.idl2
-rw-r--r--offapi/com/sun/star/embed/ElementModes.idl2
-rw-r--r--offapi/com/sun/star/embed/EmbedMapUnits.idl2
-rw-r--r--offapi/com/sun/star/embed/EmbedMisc.idl2
-rw-r--r--offapi/com/sun/star/embed/EmbedStates.idl2
-rw-r--r--offapi/com/sun/star/embed/EmbedUpdateModes.idl2
-rw-r--r--offapi/com/sun/star/embed/EmbedVerbs.idl2
-rw-r--r--offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl2
-rw-r--r--offapi/com/sun/star/embed/EntryInitModes.idl2
-rw-r--r--offapi/com/sun/star/embed/FileSystemStorage.idl2
-rw-r--r--offapi/com/sun/star/embed/FileSystemStorageFactory.idl2
-rw-r--r--offapi/com/sun/star/embed/InsertedObjectInfo.idl2
-rw-r--r--offapi/com/sun/star/embed/InstanceLocker.idl2
-rw-r--r--offapi/com/sun/star/embed/InvalidStorageException.idl2
-rw-r--r--offapi/com/sun/star/embed/LinkageMisuseException.idl2
-rw-r--r--offapi/com/sun/star/embed/NeedsRunningStateException.idl2
-rw-r--r--offapi/com/sun/star/embed/NoVisualAreaSizeException.idl2
-rw-r--r--offapi/com/sun/star/embed/OLESimpleStorage.idl2
-rw-r--r--offapi/com/sun/star/embed/ObjectSaveVetoException.idl2
-rw-r--r--offapi/com/sun/star/embed/StateChangeInProgressException.idl2
-rw-r--r--offapi/com/sun/star/embed/Storage.idl2
-rw-r--r--offapi/com/sun/star/embed/StorageFactory.idl17
-rw-r--r--offapi/com/sun/star/embed/StorageFormats.idl (renamed from sc/source/ui/inc/teamdlg.hxx)40
-rw-r--r--offapi/com/sun/star/embed/StorageStream.idl2
-rw-r--r--offapi/com/sun/star/embed/StorageWrappedTargetException.idl2
-rw-r--r--offapi/com/sun/star/embed/UnreachableStateException.idl2
-rw-r--r--offapi/com/sun/star/embed/UseBackupException.idl2
-rw-r--r--offapi/com/sun/star/embed/VerbAttributes.idl2
-rw-r--r--offapi/com/sun/star/embed/VerbDescriptor.idl2
-rw-r--r--offapi/com/sun/star/embed/VisualRepresentation.idl2
-rw-r--r--offapi/com/sun/star/embed/WrongStateException.idl2
-rw-r--r--offapi/com/sun/star/embed/XActionsApproval.idl2
-rw-r--r--offapi/com/sun/star/embed/XClassifiedObject.idl2
-rw-r--r--offapi/com/sun/star/embed/XCommonEmbedPersist.idl2
-rw-r--r--offapi/com/sun/star/embed/XComponentSupplier.idl2
-rw-r--r--offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl2
-rw-r--r--offapi/com/sun/star/embed/XEmbedObjectCreator.idl2
-rw-r--r--offapi/com/sun/star/embed/XEmbedObjectFactory.idl2
-rw-r--r--offapi/com/sun/star/embed/XEmbedPersist.idl2
-rw-r--r--offapi/com/sun/star/embed/XEmbeddedClient.idl2
-rw-r--r--offapi/com/sun/star/embed/XEmbeddedObject.idl2
-rw-r--r--offapi/com/sun/star/embed/XEncryptionProtectedSource.idl2
-rw-r--r--offapi/com/sun/star/embed/XExtendedStorageStream.idl2
-rw-r--r--offapi/com/sun/star/embed/XHatchWindow.idl2
-rw-r--r--offapi/com/sun/star/embed/XHatchWindowController.idl2
-rw-r--r--offapi/com/sun/star/embed/XHatchWindowFactory.idl2
-rw-r--r--offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl2
-rw-r--r--offapi/com/sun/star/embed/XInplaceObject.idl2
-rw-r--r--offapi/com/sun/star/embed/XInsertObjectDialog.idl2
-rw-r--r--offapi/com/sun/star/embed/XLinkCreator.idl2
-rw-r--r--offapi/com/sun/star/embed/XLinkFactory.idl2
-rw-r--r--offapi/com/sun/star/embed/XLinkageSupport.idl2
-rw-r--r--offapi/com/sun/star/embed/XOLESimpleStorage.idl2
-rw-r--r--offapi/com/sun/star/embed/XOptimizedStorage.idl2
-rw-r--r--offapi/com/sun/star/embed/XPackageStructureCreator.idl2
-rw-r--r--offapi/com/sun/star/embed/XPersistanceHolder.idl2
-rw-r--r--offapi/com/sun/star/embed/XRelationshipAccess.idl2
-rw-r--r--offapi/com/sun/star/embed/XStateChangeBroadcaster.idl2
-rw-r--r--offapi/com/sun/star/embed/XStateChangeListener.idl2
-rw-r--r--offapi/com/sun/star/embed/XStorage.idl2
-rw-r--r--offapi/com/sun/star/embed/XStorageRawAccess.idl2
-rw-r--r--offapi/com/sun/star/embed/XTransactedObject.idl2
-rw-r--r--offapi/com/sun/star/embed/XTransactionBroadcaster.idl2
-rw-r--r--offapi/com/sun/star/embed/XTransactionListener.idl2
-rw-r--r--offapi/com/sun/star/embed/XTransferableSupplier.idl2
-rw-r--r--offapi/com/sun/star/embed/XVisualObject.idl2
-rw-r--r--offapi/com/sun/star/embed/XWindowSupplier.idl2
-rw-r--r--offapi/com/sun/star/embed/makefile.mk1
-rw-r--r--offapi/com/sun/star/packages/NoEncryptionException.idl2
-rw-r--r--offapi/com/sun/star/packages/NoRawFormatException.idl2
-rw-r--r--offapi/com/sun/star/packages/WrongPasswordException.idl2
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu2
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu249
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu172
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu2
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu75
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Calc.xcs2
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/Commands.xcs1
-rw-r--r--oox/inc/oox/drawingml/customshapegeometry.hxx4
-rw-r--r--oox/inc/oox/drawingml/customshapeproperties.hxx4
-rw-r--r--oox/inc/oox/drawingml/drawingmltypes.hxx4
-rw-r--r--oox/inc/oox/drawingml/shape.hxx5
-rw-r--r--oox/inc/oox/drawingml/textcharacterproperties.hxx1
-rw-r--r--oox/inc/oox/drawingml/textliststyle.hxx4
-rw-r--r--oox/inc/oox/drawingml/textparagraphproperties.hxx4
-rw-r--r--oox/inc/oox/helper/propertymap.hxx5
-rw-r--r--oox/inc/oox/helper/propertyset.hxx4
-rw-r--r--oox/inc/oox/ppt/pptshape.hxx6
-rw-r--r--oox/inc/oox/ppt/slidetransition.hxx2
-rw-r--r--oox/source/drawingml/chart/plotareaconverter.cxx1
-rw-r--r--oox/source/drawingml/customshapegeometry.cxx92
-rw-r--r--oox/source/drawingml/diagram/diagramdefinitioncontext.cxx1
-rw-r--r--oox/source/drawingml/diagram/diagramfragmenthandler.cxx2
-rw-r--r--oox/source/drawingml/drawingmltypes.cxx25
-rw-r--r--oox/source/drawingml/graphicshapecontext.cxx1
-rw-r--r--oox/source/drawingml/shape.cxx36
-rw-r--r--oox/source/drawingml/shapepropertiescontext.cxx2
-rw-r--r--oox/source/drawingml/table/tablerowcontext.cxx1
-rw-r--r--oox/source/drawingml/textbodypropertiescontext.cxx37
-rw-r--r--oox/source/drawingml/textcharacterproperties.cxx3
-rw-r--r--oox/source/drawingml/textliststyle.cxx11
-rw-r--r--oox/source/drawingml/theme.cxx1
-rw-r--r--oox/source/helper/propertymap.cxx73
-rw-r--r--oox/source/helper/propertyset.cxx7
-rw-r--r--oox/source/helper/zipstorage.cxx9
-rw-r--r--oox/source/ppt/pptshape.cxx69
-rw-r--r--oox/source/ppt/pptshapecontext.cxx28
-rw-r--r--oox/source/ppt/slidefragmenthandler.cxx13
-rw-r--r--oox/source/ppt/slidetransition.cxx36
-rw-r--r--oox/source/shape/ShapeContextHandler.cxx1
-rw-r--r--oox/source/token/properties.txt4
-rw-r--r--oox/source/xls/themebuffer.cxx1
-rw-r--r--package/inc/PackageConstants.hxx4
-rw-r--r--package/inc/ZipPackage.hxx4
-rw-r--r--package/inc/ZipPackageFolder.hxx6
-rw-r--r--package/source/xstor/ocompinstream.cxx27
-rw-r--r--package/source/xstor/ocompinstream.hxx6
-rw-r--r--package/source/xstor/oseekinstream.cxx4
-rw-r--r--package/source/xstor/oseekinstream.hxx4
-rw-r--r--package/source/xstor/owriteablestream.cxx113
-rw-r--r--package/source/xstor/owriteablestream.hxx8
-rw-r--r--package/source/xstor/xfactory.cxx36
-rw-r--r--package/source/xstor/xstorage.cxx171
-rw-r--r--package/source/xstor/xstorage.hxx21
-rw-r--r--package/source/zippackage/ZipPackage.cxx68
-rw-r--r--package/source/zippackage/ZipPackageFolder.cxx21
-rw-r--r--package/source/zippackage/ZipPackageStream.cxx7
-rw-r--r--postprocess/packregistry/makefile.mk29
-rw-r--r--qadevOOo/runner/convwatch/OfficePrint.java65
-rw-r--r--qadevOOo/runner/graphical/BuildID.java6
-rw-r--r--qadevOOo/runner/graphical/DirectoryHelper.java6
-rw-r--r--qadevOOo/runner/graphical/EnhancedComplexTestCase.java52
-rw-r--r--qadevOOo/runner/graphical/FileHelper.java30
-rw-r--r--qadevOOo/runner/graphical/GlobalLogWriter.java17
-rw-r--r--qadevOOo/runner/graphical/HTMLResult.java2
-rw-r--r--qadevOOo/runner/graphical/IDocument.java2
-rw-r--r--qadevOOo/runner/graphical/IniFile.java47
-rw-r--r--qadevOOo/runner/graphical/JPEGComparator.java482
-rw-r--r--qadevOOo/runner/graphical/JPEGCreator.java53
-rw-r--r--qadevOOo/runner/graphical/MSOfficePostscriptCreator.java95
-rw-r--r--qadevOOo/runner/graphical/Office.java1
-rw-r--r--qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java180
-rw-r--r--qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java280
-rw-r--r--qadevOOo/runner/graphical/ParameterHelper.java16
-rw-r--r--qadevOOo/runner/graphical/PerformanceContainer.java18
-rw-r--r--qadevOOo/runner/graphical/PropertyName.java2
-rw-r--r--qadevOOo/runner/graphical/TimeHelper.java45
-rw-r--r--qadevOOo/runner/graphical/Tolerance.java23
-rw-r--r--qadevOOo/runner/graphical/makefile.mk3
-rw-r--r--qadevOOo/runner/helper/OfficeProvider.java30
-rw-r--r--qadevOOo/runner/org/openoffice/Runner.java5
-rw-r--r--qadevOOo/runner/util/utils.java52
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java3
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java30
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ORowSet.java2
-rw-r--r--qadevOOo/tests/java/mod/_forms/ODatabaseForm.java2
-rw-r--r--qadevOOo/tests/java/mod/_sfx/StandaloneDocumentInfo.java2
-rw-r--r--sal/prj/build.lst1
-rw-r--r--sal/qa/ByteSequence/ByteSequence.cxx729
-rw-r--r--sal/qa/ByteSequence/Byte_Const.h95
-rw-r--r--sal/qa/ByteSequence/makefile.mk64
-rw-r--r--sal/qa/ByteSequence/rtl_old_testbyteseq.cxx134
-rwxr-xr-xsal/qa/osl/mutex/osl_Mutex.cxx6
-rw-r--r--sal/rtl/source/bootstrap.cxx8
-rw-r--r--sc/inc/column.hxx4
-rw-r--r--sc/inc/docoptio.hxx6
-rw-r--r--sc/inc/document.hxx6
-rw-r--r--sc/inc/globstr.hrc2
-rw-r--r--sc/inc/sc.hrc4
-rw-r--r--sc/inc/scmod.hxx5
-rw-r--r--sc/inc/table.hxx7
-rw-r--r--sc/inc/unonames.hxx1
-rwxr-xr-xsc/prj/build.lst1
-rw-r--r--sc/qa/unoapi/knownissues.xcl6
-rw-r--r--sc/source/core/data/column2.cxx12
-rw-r--r--sc/source/core/data/column3.cxx38
-rw-r--r--sc/source/core/data/documen4.cxx2
-rw-r--r--sc/source/core/data/dpsave.cxx2
-rw-r--r--sc/source/core/data/dpsdbtab.cxx9
-rwxr-xr-xsc/source/core/data/dpshttab.cxx6
-rw-r--r--sc/source/core/data/global.cxx15
-rw-r--r--sc/source/core/data/table1.cxx5
-rw-r--r--sc/source/core/data/table3.cxx4
-rw-r--r--sc/source/core/inc/interpre.hxx13
-rw-r--r--sc/source/core/inc/sctictac.hxx131
-rw-r--r--sc/source/core/tool/compiler.cxx2
-rw-r--r--sc/source/core/tool/docoptio.cxx2
-rw-r--r--sc/source/core/tool/interpr4.cxx289
-rw-r--r--sc/source/core/tool/makefile.mk1
-rw-r--r--sc/source/core/tool/sctictac.cxx551
-rw-r--r--sc/source/filter/html/htmlexp.cxx28
-rw-r--r--sc/source/filter/html/htmlpars.cxx19
-rw-r--r--sc/source/filter/xml/xmlexprt.cxx30
-rw-r--r--sc/source/ui/app/inputhdl.cxx41
-rw-r--r--sc/source/ui/app/scmod.cxx22
-rw-r--r--sc/source/ui/docshell/docsh8.cxx2
-rw-r--r--sc/source/ui/docshell/tablink.cxx5
-rw-r--r--sc/source/ui/inc/inputhdl.hxx4
-rw-r--r--sc/source/ui/inc/optdlg.hrc1
-rw-r--r--sc/source/ui/inc/output.hxx23
-rw-r--r--sc/source/ui/inc/tpcalc.hxx1
-rw-r--r--sc/source/ui/miscdlgs/autofmt.cxx4
-rw-r--r--sc/source/ui/miscdlgs/makefile.mk2
-rw-r--r--sc/source/ui/miscdlgs/teamdlg.cxx116
-rw-r--r--sc/source/ui/optdlg/tpcalc.cxx59
-rw-r--r--sc/source/ui/src/globstr.src4
-rw-r--r--sc/source/ui/src/miscdlgs.src17
-rw-r--r--sc/source/ui/src/optdlg.src38
-rw-r--r--sc/source/ui/unoobj/defltuno.cxx11
-rw-r--r--sc/source/ui/unoobj/docuno.cxx9
-rw-r--r--sc/source/ui/unoobj/filtuno.cxx4
-rw-r--r--sc/source/ui/unoobj/nameuno.cxx2
-rw-r--r--sc/source/ui/unoobj/scdetect.cxx27
-rwxr-xr-xsc/source/ui/view/dbfunc3.cxx171
-rw-r--r--sc/source/ui/view/drawview.cxx8
-rw-r--r--sc/source/ui/view/output2.cxx481
-rw-r--r--scp2/source/ooo/file_library_ooo.scp2
-rw-r--r--scp2/source/ooo/scpaction_ooo.scp4
-rwxr-xr-xscp2/source/ooo/ure.scp10
-rw-r--r--sd/qa/unoapi/sd.sce14
-rw-r--r--sd/source/filter/eppt/epptso.cxx6
-rw-r--r--sd/source/ui/view/drviews1.cxx24
-rw-r--r--setup_native/prj/d.lst2
-rw-r--r--setup_native/source/mac/broffice/osxdndinstall_nologo.pngbin0 -> 14323 bytes
-rw-r--r--setup_native/source/mac/ooo/osxdndinstall_nologo.pngbin0 -> 12672 bytes
-rw-r--r--sfx2/qa/unoapi/sfx.sce2
-rw-r--r--sfx2/source/doc/SfxDocumentMetaData.cxx37
-rw-r--r--sfx2/source/doc/guisaveas.cxx3
-rw-r--r--solenv/bin/macosx-change-install-names.pl4
-rw-r--r--solenv/bin/modules/installer/environment.pm2
-rw-r--r--solenv/bin/modules/installer/globals.pm2
-rw-r--r--solenv/bin/modules/installer/systemactions.pm7
-rw-r--r--solenv/bin/modules/installer/worker.pm5
-rw-r--r--solenv/bin/packregistry.xslt10
-rwxr-xr-xsolenv/bin/subsequenttests2
-rw-r--r--solenv/config/sdev300.ini3
-rw-r--r--solenv/inc/installationtest.mk24
-rw-r--r--solenv/inc/libs.mk10
-rw-r--r--solenv/inc/minor.mk6
-rw-r--r--solenv/inc/settings.mk1
-rw-r--r--solenv/inc/unxlng.mk1
-rw-r--r--solenv/inc/unxmacx.mk1
-rw-r--r--solenv/inc/unxsoli4.mk1
-rw-r--r--solenv/inc/unxsols4.mk1
-rw-r--r--solenv/inc/unxsolu4.mk2
-rw-r--r--starmath/qa/unoapi/knownissues.xcl5
-rw-r--r--svl/inc/svl/zforlist.hxx13
-rw-r--r--svl/inc/svl/zformat.hxx7
-rw-r--r--svl/source/numbers/zforlist.cxx20
-rw-r--r--svl/source/numbers/zformat.cxx180
-rw-r--r--svl/source/numbers/zforscan.cxx2
-rw-r--r--svl/source/numbers/zforscan.hxx6
-rw-r--r--svtools/qa/unoapi/svtools.sce12
-rw-r--r--svx/qa/unoapi/knownissues.xcl8
-rw-r--r--svx/qa/unoapi/svx.sce12
-rw-r--r--svx/source/sdr/properties/attributeproperties.cxx22
-rw-r--r--sw/inc/swtable.hxx19
-rw-r--r--sw/qa/unoapi/knownissues.xcl16
-rw-r--r--sw/qa/unoapi/sw.sce38
-rw-r--r--sw/source/core/table/swtable.cxx157
-rw-r--r--sw/source/filter/ww8/WW8TableInfo.cxx902
-rw-r--r--sw/source/filter/ww8/WW8TableInfo.hxx171
-rw-r--r--sw/source/filter/ww8/attributeoutputbase.hxx9
-rw-r--r--sw/source/filter/ww8/wrtww8.cxx256
-rw-r--r--sw/source/filter/ww8/wrtww8.hxx5
-rw-r--r--sw/source/filter/ww8/ww8atr.cxx11
-rw-r--r--sw/source/ui/app/apphdl.cxx30
-rw-r--r--test/source/cpp/officeconnection.cxx114
-rw-r--r--test/source/java/OfficeConnection.java64
-rwxr-xr-xtestautomation/extensions/optional/e_issues.bas55
-rwxr-xr-xtestautomation/extensions/optional/includes/issue110083.inc79
-rwxr-xr-x[-rw-r--r--]testautomation/extensions/optional/includes/platforms.inc2
-rwxr-xr-xtestautomation/extensions/optional/input/issues/Logging.xcu24
-rw-r--r--testautomation/extensions/optional/input/issues/LoggingOptions.xcs19
-rwxr-xr-x[-rw-r--r--]testautomation/global/tools/includes/optional/t_extension_manager_tools.inc4
-rwxr-xr-xtestautomation/global/win/tab_a_d.win1
-rwxr-xr-x[-rw-r--r--]testautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc12
-rwxr-xr-x[-rw-r--r--]testautomation/spreadsheet/optional/includes/solver/c_solver.inc0
-rw-r--r--testgraphical/document-pool/demo/CurrentTime.odsbin0 -> 8299 bytes
-rw-r--r--testgraphical/document-pool/demo/knownissues.xcl8
-rw-r--r--testgraphical/document-pool/singletest/eis-test.odtbin0 -> 9623 bytes
-rw-r--r--testgraphical/prechecks/makefile.mk (renamed from cppu/test/mapping_tester/makefile.mk)43
-rw-r--r--testgraphical/prechecks/softwaretests.pl564
-rwxr-xr-xtestgraphical/prj/build.lst7
-rwxr-xr-xtestgraphical/prj/d.lst0
-rw-r--r--testgraphical/qa/graphical/Test.java113
-rw-r--r--testgraphical/qa/graphical/makefile.mk (renamed from cppu/test/FreeReference/makefile.mk)50
-rw-r--r--testgraphical/references/unxlngi/demo/CurrentTime.ods.pdfbin0 -> 13916 bytes
-rw-r--r--testgraphical/references/unxlngi/demo/CurrentTime.ods.ps576
-rw-r--r--testgraphical/references/unxlngi/singletest/eis-test.odt.pdfbin0 -> 14356 bytes
-rw-r--r--testgraphical/references/unxlngi/singletest/eis-test.odt.ps565
-rw-r--r--testgraphical/references/unxlngi/singletest/tolerance.ini_4
-rw-r--r--testgraphical/references/unxsoli/singletest/eis-test.odt.pdfbin0 -> 9162 bytes
-rw-r--r--testgraphical/references/wntmsci/demo/CurrentTime.ods.pdfbin0 -> 13916 bytes
-rw-r--r--testgraphical/references/wntmsci/demo/CurrentTime.ods.ps499
-rw-r--r--testgraphical/references/wntmsci/singletest/eis-test.odt.pdfbin0 -> 9142 bytes
-rw-r--r--testgraphical/references/wntmsci/singletest/eis-test.odt.ps1984
-rw-r--r--testgraphical/source/CallExternals.pm539
-rw-r--r--testgraphical/source/ConvwatchHelper.pm574
-rw-r--r--testgraphical/source/compare.pl408
-rw-r--r--testgraphical/source/cwstestresult.pl208
-rw-r--r--testgraphical/source/cwstestresulthelper.pm268
-rw-r--r--testgraphical/source/dbhelper.pm209
-rw-r--r--testgraphical/source/filehelper.pm358
-rw-r--r--testgraphical/source/fill_documents_loop.pl423
-rw-r--r--testgraphical/source/graphical_compare.pm586
-rw-r--r--testgraphical/source/loghelper.pm94
-rw-r--r--testgraphical/source/makefile.mk112
-rw-r--r--testgraphical/source/oshelper.pm110
-rw-r--r--[-rwxr-xr-x]testgraphical/source/solarenvhelper.pm (renamed from cppu/test/purpenvhelper/purpenvhelper.test.pl)66
-rw-r--r--[-rwxr-xr-x]testgraphical/source/stringhelper.pm (renamed from cppu/test/purpose_envs/purpose_envs.test.pl)66
-rw-r--r--testgraphical/source/timehelper.pm99
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/build.xml74
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/dist/ConvwatchGUIProject.jarbin0 -> 28271 bytes
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/makefile.mk (renamed from cppu/test/Map/makefile.mk)46
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/manifest.mf3
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/build-impl.xml805
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/genfiles.properties8
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/config.properties0
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.properties7
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.xml4
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.properties71
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.xml15
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.form286
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.java535
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/src/IniFile.java718
-rw-r--r--testgraphical/ui/java/makefile.mk (renamed from cppu/test/EnvStack/makefile.mk)26
-rw-r--r--testgraphical/util/makefile.pmk (renamed from cppu/test/UnsafeBridge/makefile.mk)18
-rw-r--r--toolkit/qa/unoapi/knownissues.xcl10
-rw-r--r--toolkit/qa/unoapi/toolkit.sce8
-rw-r--r--ucb/source/ucp/webdav/DAVAuthListener.hxx3
-rw-r--r--ucb/source/ucp/webdav/DAVAuthListenerImpl.hxx1
-rw-r--r--ucb/source/ucp/webdav/DAVResourceAccess.cxx4
-rw-r--r--ucb/source/ucp/webdav/NeonSession.cxx21
-rw-r--r--ucbhelper/source/provider/simpleauthenticationrequest.cxx9
-rw-r--r--ure/source/README1
-rw-r--r--uui/source/iahndl-authentication.cxx245
-rw-r--r--uui/source/loginerr.hxx61
-rw-r--r--uui/source/passwordcontainer.cxx13
-rw-r--r--vcl/source/app/svapp.cxx5
-rw-r--r--vcl/unx/gtk/window/gtkframe.cxx38
-rw-r--r--vcl/unx/inc/plugins/gtk/gtkframe.hxx1
-rw-r--r--vcl/unx/source/dtrans/X11_selection.cxx4
-rw-r--r--wizards/prj/build.lst2
-rw-r--r--wizards/source/formwizard/dbwizres.src2
-rw-r--r--xmloff/qa/unoapi/xmloff.sce26
-rw-r--r--xmloff/source/forms/elementexport.cxx4
-rw-r--r--xmloff/source/forms/propertyexport.cxx6
-rw-r--r--xmloff/source/forms/propertyexport.hxx8
-rw-r--r--xmloff/source/forms/propertyimport.cxx2
-rw-r--r--xmloff/source/script/XMLScriptExportHandler.cxx3
558 files changed, 18825 insertions, 16346 deletions
diff --git a/basic/prj/build.lst b/basic/prj/build.lst
index 2cd1d3dc0466..9453154edf46 100755
--- a/basic/prj/build.lst
+++ b/basic/prj/build.lst
@@ -5,7 +5,7 @@ sb basic\source\app nmake - all sb_app sb_class sb_inc NULL
sb basic\source\basmgr nmake - all sb_mgr sb_inc NULL
sb basic\source\classes nmake - all sb_class sb_inc NULL
sb basic\source\comp nmake - all sb_comp sb_inc NULL
-sb basic\source\runtime nmake - all sb_rt sb_inc NULL
+sb basic\source\runtime nmake - all sb_rt sb_inc sb_class NULL
sb basic\source\sample nmake - all sb_samp sb_inc NULL
sb basic\source\sbx nmake - all sb_sbx sb_inc NULL
sb basic\source\uno nmake - all sb_uno sb_inc NULL
diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index 83c0ae9e65f4..4b58942d77aa 100644
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -1905,7 +1905,7 @@ void SbUserFormModule::InitObject()
triggerInitializeEvent();
}
}
- catch( uno::Exception& e )
+ catch( uno::Exception& )
{
}
diff --git a/boost/boost_1_39_0.patch b/boost/boost_1_39_0.patch
index 9ab3099fc444..d837246a83bf 100644
--- a/boost/boost_1_39_0.patch
+++ b/boost/boost_1_39_0.patch
@@ -1,6 +1,35 @@
---- misc/boost_1_39_0/boost/function/function_template.hpp 2008-10-16 15:21:50.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/function/function_template.hpp 2009-07-09 12:58:51.141224220 +0200
-@@ -950,10 +950,10 @@
+diff --git boost_1_39_0/boost/config/compiler/visualc.hpp boost_1_39_0/boost/config/compiler/visualc.hpp
+index 552e5bb..d9f90b2 100644
+--- misc/build/boost_1_39_0/boost/config/compiler/visualc.hpp
++++ misc/build/boost_1_39_0/boost/config/compiler/visualc.hpp
+@@ -138,6 +138,9 @@
+ # define BOOST_NO_RTTI
+ #endif
+
++// disable WORKAROUND macro - gives warning for undefined macros
++#define BOOST_STRICT_CONFIG 1
++
+ //
+ // all versions support __declspec:
+ //
+diff --git boost_1_39_0/boost/function/function_base.hpp boost_1_39_0/boost/function/function_base.hpp
+index 6612fb8..35afa16 100644
+--- misc/build/boost_1_39_0/boost/function/function_base.hpp
++++ misc/build/boost_1_39_0/boost/function/function_base.hpp
+@@ -42,7 +42,7 @@
+ #endif
+
+ // Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
+-#ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE
++#ifdef BOOST_NO_STD_TYPEINFO
+ // Embedded VC++ does not have type_info in namespace std
+ # define BOOST_FUNCTION_STD_NS
+ #else
+diff --git boost_1_39_0/boost/function/function_template.hpp boost_1_39_0/boost/function/function_template.hpp
+index 584abe9..36b619b 100644
+--- misc/build/boost_1_39_0/boost/function/function_template.hpp
++++ misc/build/boost_1_39_0/boost/function/function_template.hpp
+@@ -950,10 +950,10 @@ namespace boost {
f.vtable->manager(f.functor, this->functor,
boost::detail::function::move_functor_tag);
f.vtable = 0;
@@ -12,32 +41,11 @@
} catch (...) {
vtable = 0;
throw;
---- misc/boost_1_39_0/boost/function/function_base.hpp 2008-10-16 15:21:50.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/function/function_base.hpp 2009-07-12 21:42:22.779873909 +0200
-@@ -42,7 +42,7 @@
- #endif
-
- // Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
--#ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE
-+#ifdef BOOST_NO_STD_TYPEINFO
- // Embedded VC++ does not have type_info in namespace std
- # define BOOST_FUNCTION_STD_NS
- #else
---- misc/boost_1_39_0/boost/config/compiler/visualc.hpp 2009-03-26 20:00:00.000000000 +0100
-+++ misc/build/boost_1_39_0/boost/config/compiler/visualc.hpp 2009-06-10 21:53:42.484375000 +0200
-@@ -138,6 +138,9 @@
- # define BOOST_NO_RTTI
- #endif
-
-+// disable WORKAROUND macro - gives warning for undefined macros
-+#define BOOST_STRICT_CONFIG 1
-+
- //
- // all versions support __declspec:
- //
---- misc/boost_1_39_0/boost/mpl/apply_wrap.hpp 2008-10-11 08:50:46.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/mpl/apply_wrap.hpp 2009-06-10 21:53:42.500000000 +0200
-@@ -173,8 +173,8 @@
+diff --git boost_1_39_0/boost/mpl/apply_wrap.hpp boost_1_39_0/boost/mpl/apply_wrap.hpp
+index b3cb12b..0bf8e73 100644
+--- misc/build/boost_1_39_0/boost/mpl/apply_wrap.hpp
++++ misc/build/boost_1_39_0/boost/mpl/apply_wrap.hpp
+@@ -173,8 +173,8 @@ struct BOOST_PP_CAT(apply_wrap,i_)<AUX778076_APPLY_WRAP_SPEC_PARAMS(i_, int)>
# undef i_
///// iteration, depth == 2
@@ -48,15 +56,17 @@
# define j_ BOOST_PP_FRAME_ITERATION(2)
-@@ -230,4 +231,5 @@
+@@ -231,4 +231,5 @@ struct BOOST_PP_CAT(apply_wrap_impl,i_)<
# undef j_
#endif // BOOST_PP_ITERATION_DEPTH()
+#endif
#endif // BOOST_PP_IS_ITERATING
---- misc/boost_1_39_0/boost/mpl/bind.hpp 2008-10-11 08:19:02.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/mpl/bind.hpp 2009-06-10 21:53:42.515625000 +0200
-@@ -531,7 +531,8 @@
+diff --git boost_1_39_0/boost/mpl/bind.hpp boost_1_39_0/boost/mpl/bind.hpp
+index 5d851ef..780e260 100644
+--- misc/build/boost_1_39_0/boost/mpl/bind.hpp
++++ misc/build/boost_1_39_0/boost/mpl/bind.hpp
+@@ -531,7 +531,8 @@ struct bind_chooser<i_>
///// iteration, depth == 2
@@ -66,15 +76,81 @@
# define j_ BOOST_PP_FRAME_ITERATION(2)
# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-@@ -548,4 +549,5 @@
+@@ -548,4 +549,5 @@ struct bind_chooser<i_>
# undef j_
#endif // BOOST_PP_ITERATION_DEPTH()
+#endif
#endif // BOOST_PP_IS_ITERATING
---- misc/boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp 2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp 2009-06-10 21:53:42.531250000 +0200
-@@ -19,12 +19,12 @@
+diff --git boost_1_39_0/boost/ptr_container/detail/move.hpp boost_1_39_0/boost/ptr_container/detail/move.hpp
+index bf07d5f..6b082a7 100644
+--- misc/build/boost_1_39_0/boost/ptr_container/detail/move.hpp
++++ misc/build/boost_1_39_0/boost/ptr_container/detail/move.hpp
+@@ -20,7 +20,7 @@ namespace move_ptrs {
+ template<typename Ptr>
+ class move_source {
+ public:
+- move_source(Ptr& ptr) : ptr_(ptr) {}
++ move_source(Ptr& _ptr) : ptr_(_ptr) {}
+ Ptr& ptr() const { return ptr_; }
+ private:
+ Ptr& ptr_;
+diff --git boost_1_39_0/boost/ptr_container/detail/reversible_ptr_container.hpp boost_1_39_0/boost/ptr_container/detail/reversible_ptr_container.hpp
+index 47c3903..3ad2c5c 100644
+--- misc/build/boost_1_39_0/boost/ptr_container/detail/reversible_ptr_container.hpp
++++ misc/build/boost_1_39_0/boost/ptr_container/detail/reversible_ptr_container.hpp
+@@ -278,9 +278,9 @@ namespace ptr_container_detail
+
+ private:
+ template< class ForwardIterator >
+- ForwardIterator advance( ForwardIterator begin, size_type n )
++ ForwardIterator advance( ForwardIterator _begin, size_type n )
+ {
+- ForwardIterator iter = begin;
++ ForwardIterator iter = _begin;
+ std::advance( iter, n );
+ return iter;
+ }
+diff --git boost_1_39_0/boost/ptr_container/detail/static_move_ptr.hpp boost_1_39_0/boost/ptr_container/detail/static_move_ptr.hpp
+index ba2b9af..9e0d682 100644
+--- misc/build/boost_1_39_0/boost/ptr_container/detail/static_move_ptr.hpp
++++ misc/build/boost_1_39_0/boost/ptr_container/detail/static_move_ptr.hpp
+@@ -151,7 +151,7 @@ public:
+ deleter_const_reference get_deleter() const { return impl_.second(); }
+ private:
+ template<typename TT, typename DD>
+- void check(const static_move_ptr<TT, DD>& ptr)
++ void check(const static_move_ptr<TT, DD>& _ptr)
+ {
+ typedef move_ptrs::is_smart_ptr_convertible<TT, T> convertible;
+ BOOST_STATIC_ASSERT(convertible::value);
+diff --git boost_1_39_0/boost/ptr_container/exception.hpp boost_1_39_0/boost/ptr_container/exception.hpp
+index d9a5ffe..7837fbb 100644
+--- misc/build/boost_1_39_0/boost/ptr_container/exception.hpp
++++ misc/build/boost_1_39_0/boost/ptr_container/exception.hpp
+@@ -24,7 +24,7 @@ namespace boost
+ {
+ const char* what_;
+ public:
+- bad_ptr_container_operation( const char* what ) : what_( what )
++ bad_ptr_container_operation( const char* text ) : what_( text )
+ { }
+
+ virtual const char* what() const throw()
+@@ -38,7 +38,7 @@ namespace boost
+ class bad_index : public bad_ptr_container_operation
+ {
+ public:
+- bad_index( const char* what ) : bad_ptr_container_operation( what )
++ bad_index( const char* text ) : bad_ptr_container_operation( text )
+ { }
+ };
+
+diff --git boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp
+index 492bf4b..565fdec 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp
+@@ -19,12 +19,12 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
: len(-1), val() {}
template <typename T>
@@ -91,7 +167,7 @@
template <typename T>
inline bool
-@@ -66,11 +66,11 @@
+@@ -66,11 +66,11 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
inline match<nil_t>::match()
: len(-1) {}
@@ -107,9 +183,11 @@
inline bool
match<nil_t>::operator!() const
---- misc/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp 2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp 2009-06-10 21:53:42.546875000 +0200
-@@ -226,7 +226,7 @@
+diff --git boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp
+index ca51bd2..b2282fa 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp
+@@ -226,7 +226,7 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
template <typename ParserT, typename ScannerT, typename AttrT>
struct concrete_parser : abstract_parser<ScannerT, AttrT>
{
@@ -118,9 +196,11 @@
virtual ~concrete_parser() {}
virtual typename match_result<ScannerT, AttrT>::type
---- misc/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp 2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp 2009-06-10 21:53:42.562500000 +0200
-@@ -106,7 +106,7 @@
+diff --git boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp
+index 2f4b986..b3809da 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp
+@@ -106,7 +106,7 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
: parser_id(reinterpret_cast<std::size_t>(this));
}
@@ -129,9 +209,11 @@
private:
---- misc/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp 2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp 2009-07-08 22:23:45.899895415 +0200
-@@ -159,11 +159,11 @@
+diff --git boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp
+index 73389b4..18d26cc 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp
+@@ -159,11 +159,11 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
return ptr.get();
}
@@ -147,9 +229,11 @@
scoped_ptr<abstract_parser_t> ptr;
};
---- misc/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp 2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp 2009-06-10 21:53:42.593750000 +0200
-@@ -210,7 +210,7 @@
+diff --git boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp
+index 5d6761f..b93118a 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp
+@@ -210,7 +210,7 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
subrule_list<
subrule_parser<ID2, DefT2, ContextT2>,
nil_t> >
@@ -158,7 +242,7 @@
{
return subrule_list<
self_t,
-@@ -220,7 +220,7 @@
+@@ -220,7 +220,7 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
*this,
subrule_list<
subrule_parser<ID2, DefT2, ContextT2>, nil_t>(
@@ -167,7 +251,7 @@
}
typename DefT::embed_t rhs;
-@@ -258,10 +258,10 @@
+@@ -258,10 +258,10 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
parse_main(ScannerT const& scan) const
{
typedef typename parser_result<self_t, ScannerT>::type result_t;
@@ -181,9 +265,11 @@
}
template <typename ScannerT>
---- misc/boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp 2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp 2009-10-11 22:34:54.867381817 +0200
-@@ -395,13 +395,13 @@
+diff --git boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp
+index 5d75be2..730cf0c 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp
+@@ -395,13 +395,13 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
}
bool register_node(void const *r, char const *name_to_register,
diff --git a/boost/makefile.mk b/boost/makefile.mk
index 8c1df4e21dbc..fdc1dfd2a44c 100644
--- a/boost/makefile.mk
+++ b/boost/makefile.mk
@@ -91,6 +91,8 @@ $(PACKAGE_DIR)$/$(NORMALIZE_FLAG_FILE) : $(PACKAGE_DIR)$/$(BUILD_FLAG_FILE)
@$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/pending $(INCCOM)$/$(PRJNAME)
@$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/pool $(INCCOM)$/$(PRJNAME)
@$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/preprocessor $(INCCOM)$/$(PRJNAME)
+ @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/ptr_container $(INCCOM)$/$(PRJNAME)
+ @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/range $(INCCOM)$/$(PRJNAME)
@$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/spirit $(INCCOM)$/$(PRJNAME)
@$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/smart_ptr $(INCCOM)$/$(PRJNAME)
@$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/tuple $(INCCOM)$/$(PRJNAME)
diff --git a/boost/prj/d.lst b/boost/prj/d.lst
index 07d5a72a4384..6b9ebcaf6d66 100644
--- a/boost/prj/d.lst
+++ b/boost/prj/d.lst
@@ -81,6 +81,10 @@ mkdir: %_DEST%\inc%_EXT%\boost\preprocessor\seq\detail
mkdir: %_DEST%\inc%_EXT%\boost\preprocessor\slot
mkdir: %_DEST%\inc%_EXT%\boost\preprocessor\slot\detail
mkdir: %_DEST%\inc%_EXT%\boost\preprocessor\tuple
+mkdir: %_DEST%\inc%_EXT%\boost\ptr_container
+mkdir: %_DEST%\inc%_EXT%\boost\ptr_container\detail
+mkdir: %_DEST%\inc%_EXT%\boost\range
+mkdir: %_DEST%\inc%_EXT%\boost\range\detail
mkdir: %_DEST%\inc%_EXT%\boost\spirit
mkdir: %_DEST%\inc%_EXT%\boost\spirit\actor
mkdir: %_DEST%\inc%_EXT%\boost\spirit\attribute
@@ -147,6 +151,7 @@ mkdir: %_DEST%\inc%_EXT%\boost\tuple\detail
mkdir: %_DEST%\inc%_EXT%\boost\type_traits
mkdir: %_DEST%\inc%_EXT%\boost\type_traits\detail
mkdir: %_DEST%\inc%_EXT%\boost\utility
+mkdir: %_DEST%\inc%_EXT%\boost\utility\detail
mkdir: %_DEST%\inc%_EXT%\boost\variant
mkdir: %_DEST%\inc%_EXT%\boost\variant\detail
@@ -232,6 +237,10 @@ mkdir: %_DEST%\inc%_EXT%\boost\variant\detail
..\%__SRC%\inc\boost\preprocessor\slot\* %_DEST%\inc%_EXT%\boost\preprocessor\slot
..\%__SRC%\inc\boost\preprocessor\slot\detail\* %_DEST%\inc%_EXT%\boost\preprocessor\slot\detail
..\%__SRC%\inc\boost\preprocessor\tuple\* %_DEST%\inc%_EXT%\boost\preprocessor\tuple
+..\%__SRC%\inc\boost\ptr_container\* %_DEST%\inc%_EXT%\boost\ptr_container
+..\%__SRC%\inc\boost\ptr_container\detail\* %_DEST%\inc%_EXT%\boost\ptr_container\detail
+..\%__SRC%\inc\boost\range\* %_DEST%\inc%_EXT%\boost\range
+..\%__SRC%\inc\boost\range\detail\* %_DEST%\inc%_EXT%\boost\range\detail
..\%__SRC%\inc\boost\spirit\* %_DEST%\inc%_EXT%\boost\spirit
..\%__SRC%\inc\boost\spirit\actor\* %_DEST%\inc%_EXT%\boost\spirit\actor
..\%__SRC%\inc\boost\spirit\attribute\* %_DEST%\inc%_EXT%\boost\spirit\attribute
@@ -298,5 +307,6 @@ mkdir: %_DEST%\inc%_EXT%\boost\variant\detail
..\%__SRC%\inc\boost\type_traits\* %_DEST%\inc%_EXT%\boost\type_traits
..\%__SRC%\inc\boost\type_traits\detail\* %_DEST%\inc%_EXT%\boost\type_traits\detail
..\%__SRC%\inc\boost\utility\* %_DEST%\inc%_EXT%\boost\utility
+..\%__SRC%\inc\boost\utility\detail\* %_DEST%\inc%_EXT%\boost\utility\detail
..\%__SRC%\inc\boost\variant\* %_DEST%\inc%_EXT%\boost\variant
..\%__SRC%\inc\boost\variant\detail\* %_DEST%\inc%_EXT%\boost\variant\detail
diff --git a/bridges/source/jni_uno/jni_uno2java.cxx b/bridges/source/jni_uno/jni_uno2java.cxx
index 99ec6e32fce2..81ae922ae717 100644
--- a/bridges/source/jni_uno/jni_uno2java.cxx
+++ b/bridges/source/jni_uno/jni_uno2java.cxx
@@ -848,7 +848,7 @@ void SAL_CALL UNO_proxy_dispatch(
#if OSL_DEBUG_LEVEL > 0
OString cstr_msg2(
OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ) );
- OSL_ENSURE( 0, cstr_msg2.getStr() );
+ OSL_TRACE( "%s", cstr_msg2.getStr() );
#endif
}
catch (::jvmaccess::VirtualMachine::AttachGuard::CreationException &)
diff --git a/chart2/prj/build.lst b/chart2/prj/build.lst
index 370eacebe0c2..3cdc9a26e3f5 100644
--- a/chart2/prj/build.lst
+++ b/chart2/prj/build.lst
@@ -24,4 +24,3 @@ ch chart2\source\controller\chartapiwrapper nmake - all ch_source_controlle
ch chart2\source\controller\main nmake - all ch_source_controller_main ch_inc NULL
ch chart2\source\controller\menus nmake - all ch_source_controller_menus ch_inc NULL
ch chart2\prj get - all ch_prj NULL
-ch chart2\qa\unoapi nmake - all ch_qa_unoapi NULL
diff --git a/comphelper/inc/comphelper/storagehelper.hxx b/comphelper/inc/comphelper/storagehelper.hxx
index 796c0ad47142..b613ddd2c5f1 100644
--- a/comphelper/inc/comphelper/storagehelper.hxx
+++ b/comphelper/inc/comphelper/storagehelper.hxx
@@ -136,7 +136,8 @@ public:
const ::rtl::OUString& aURL,
sal_Int32 nStorageMode,
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory
- = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() )
+ = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >(),
+ sal_Bool bRepairStorage = sal_False )
throw ( ::com::sun::star::uno::Exception );
static ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >
@@ -144,7 +145,8 @@ public:
const ::rtl::OUString& aFormat,
const ::com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream >& xStream,
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory
- = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() )
+ = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >(),
+ sal_Bool bRepairStorage = sal_False )
throw ( ::com::sun::star::uno::Exception );
static ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >
@@ -153,7 +155,8 @@ public:
const ::com::sun::star::uno::Reference < ::com::sun::star::io::XStream >& xStream,
sal_Int32 nStorageMode = ::com::sun::star::embed::ElementModes::READWRITE,
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory
- = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() )
+ = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >(),
+ sal_Bool bRepairStorage = sal_False )
throw ( ::com::sun::star::uno::Exception );
static sal_Bool IsValidZipEntryFileName( const ::rtl::OUString& aName, sal_Bool bSlashAllowed );
diff --git a/comphelper/qa/complex/makefile.mk b/comphelper/qa/complex/makefile.mk
index 341b6868e1ec..ec0efdd1188c 100644
--- a/comphelper/qa/complex/makefile.mk
+++ b/comphelper/qa/complex/makefile.mk
@@ -32,9 +32,6 @@ PRJNAME = comphelper
# --- Settings -----------------------------------------------------
.INCLUDE: settings.mk
-
-.IF "$(BUILD_QADEVOOO)" == "YES"
-
#----- compile .java files -----------------------------------------
JARFILES := ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
@@ -63,8 +60,6 @@ RUNNER_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,
RUNNER_ARGS = org.openoffice.Runner -TestBase java_complex $(RUNNER_APPEXECCOMMAND)
-.END # "$(BUILD_QADEVOOO)" == "YES"
-
# --- Targets ------------------------------------------------------
.IF "$(depend)" == ""
@@ -78,7 +73,6 @@ ALL: ALLDEP
.INCLUDE : target.mk
-.IF "$(BUILD_QADEVOOO)" == "YES"
show_targets:
+@java $(RUNNER_CLASSPATH) complexlib.ShowTargets $(foreach,i,$(JAVAFILES) $(i:s#.java##:s#./#complex.#))
@@ -87,11 +81,3 @@ run:
run_%:
+java $(RUNNER_CLASSPATH) $(RUNNER_ARGS) -o complex.$(PRJNAME).$(@:s/run_//)
-
-.ELSE
-run: show_targets
-
-show_targets:
- +@echo "Built without qadevOOo, no QA tests"
-
-.ENDIF
diff --git a/comphelper/source/misc/storagehelper.cxx b/comphelper/source/misc/storagehelper.cxx
index eda42ec98abb..e2557523f674 100644
--- a/comphelper/source/misc/storagehelper.cxx
+++ b/comphelper/source/misc/storagehelper.cxx
@@ -328,12 +328,19 @@ uno::Reference< embed::XStorage > OStorageHelper::GetStorageOfFormatFromURL(
const ::rtl::OUString& aFormat,
const ::rtl::OUString& aURL,
sal_Int32 nStorageMode,
- const uno::Reference< lang::XMultiServiceFactory >& xFactory )
+ const uno::Reference< lang::XMultiServiceFactory >& xFactory,
+ sal_Bool bRepairStorage )
throw ( uno::Exception )
{
uno::Sequence< beans::PropertyValue > aProps( 1 );
aProps[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "StorageFormat" ) );
aProps[0].Value <<= aFormat;
+ if ( bRepairStorage )
+ {
+ aProps.realloc( 2 );
+ aProps[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RepairPackage" ) );
+ aProps[1].Value <<= bRepairStorage;
+ }
uno::Sequence< uno::Any > aArgs( 3 );
aArgs[0] <<= aURL;
@@ -352,12 +359,19 @@ uno::Reference< embed::XStorage > OStorageHelper::GetStorageOfFormatFromURL(
uno::Reference< embed::XStorage > OStorageHelper::GetStorageOfFormatFromInputStream(
const ::rtl::OUString& aFormat,
const uno::Reference < io::XInputStream >& xStream,
- const uno::Reference< lang::XMultiServiceFactory >& xFactory )
+ const uno::Reference< lang::XMultiServiceFactory >& xFactory,
+ sal_Bool bRepairStorage )
throw ( uno::Exception )
{
uno::Sequence< beans::PropertyValue > aProps( 1 );
aProps[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "StorageFormat" ) );
aProps[0].Value <<= aFormat;
+ if ( bRepairStorage )
+ {
+ aProps.realloc( 2 );
+ aProps[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RepairPackage" ) );
+ aProps[1].Value <<= bRepairStorage;
+ }
uno::Sequence< uno::Any > aArgs( 3 );
aArgs[0] <<= xStream;
@@ -377,12 +391,19 @@ uno::Reference< embed::XStorage > OStorageHelper::GetStorageOfFormatFromStream(
const ::rtl::OUString& aFormat,
const uno::Reference < io::XStream >& xStream,
sal_Int32 nStorageMode,
- const uno::Reference< lang::XMultiServiceFactory >& xFactory )
+ const uno::Reference< lang::XMultiServiceFactory >& xFactory,
+ sal_Bool bRepairStorage )
throw ( uno::Exception )
{
uno::Sequence< beans::PropertyValue > aProps( 1 );
aProps[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "StorageFormat" ) );
aProps[0].Value <<= aFormat;
+ if ( bRepairStorage )
+ {
+ aProps.realloc( 2 );
+ aProps[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RepairPackage" ) );
+ aProps[1].Value <<= bRepairStorage;
+ }
uno::Sequence< uno::Any > aArgs( 3 );
aArgs[0] <<= xStream;
diff --git a/configmgr/prj/d.lst b/configmgr/prj/d.lst
index a9d91980b213..17ccdbe86a08 100644
--- a/configmgr/prj/d.lst
+++ b/configmgr/prj/d.lst
@@ -1,8 +1,3 @@
-mkdir: %_DEST%\inc%_EXT%\configmgr
-mkdir: %_DEST%\inc%_EXT%\configmgr\detail
-..\%__SRC%\bin\configmgr.dll %_DEST%\bin%_EXT%\configmgr.dll
-..\%__SRC%\lib\iconfigmgr.lib %_DEST%\lib%_EXT%\iconfigmgr.lib
-..\%__SRC%\lib\libconfigmgr.dylib %_DEST%\lib%_EXT%\libconfigmgr.dylib
-..\%__SRC%\lib\libconfigmgr.so %_DEST%\lib%_EXT%\libconfigmgr.so
-..\inc\configmgr\detail\configmgrdllapi.hxx %_DEST%\inc%_EXT%\configmgr\detail\configmgrdllapi.hxx
-..\inc\configmgr\update.hxx %_DEST%\inc%_EXT%\configmgr\update.hxx
+..\%__SRC%\bin\configmgr.uno.dll %_DEST%\bin%_EXT%\configmgr.uno.dll
+..\%__SRC%\lib\configmgr.uno.dylib %_DEST%\lib%_EXT%\configmgr.uno.dylib
+..\%__SRC%\lib\configmgr.uno.so %_DEST%\lib%_EXT%\configmgr.uno.so
diff --git a/configmgr/source/access.cxx b/configmgr/source/access.cxx
index 7af9c1f8d9c0..60f6a4a54e46 100644
--- a/configmgr/source/access.cxx
+++ b/configmgr/source/access.cxx
@@ -1917,7 +1917,7 @@ css::uno::Reference< css::uno::XInterface > Access::createInstance()
tmplName),
static_cast< cppu::OWeakObject * >(this));
}
- rtl::Reference< Node > node(tmpl->clone());
+ rtl::Reference< Node > node(tmpl->clone(true));
node->setLayer(Data::NO_LAYER);
return static_cast< cppu::OWeakObject * >(
new ChildAccess(components_, getRootAccess(), node));
diff --git a/configmgr/source/components.cxx b/configmgr/source/components.cxx
index 6d97971e1a2c..48f90fa8382e 100644
--- a/configmgr/source/components.cxx
+++ b/configmgr/source/components.cxx
@@ -494,12 +494,10 @@ void Components::parseFileList(
try {
(*parseFile)(url, layer, data_, 0, 0);
} catch (css::container::NoSuchElementException & e) {
- throw css::uno::RuntimeException(
- (rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "stat'ed file does not exist: ")) +
- e.Message),
- css::uno::Reference< css::uno::XInterface >());
+ OSL_TRACE(
+ "configmgr file does not exist: %s",
+ rtl::OUStringToOString(
+ e.Message, RTL_TEXTENCODING_UTF8).getStr());
}
}
if (i == -1) {
diff --git a/configmgr/source/groupnode.cxx b/configmgr/source/groupnode.cxx
index 60d825451d69..59c0f89df5d1 100644
--- a/configmgr/source/groupnode.cxx
+++ b/configmgr/source/groupnode.cxx
@@ -44,8 +44,8 @@ GroupNode::GroupNode(
mandatory_(Data::NO_LAYER)
{}
-rtl::Reference< Node > GroupNode::clone() const {
- return new GroupNode(*this);
+rtl::Reference< Node > GroupNode::clone(bool keepTemplateName) const {
+ return new GroupNode(*this, keepTemplateName);
}
NodeMap & GroupNode::getMembers() {
@@ -68,11 +68,13 @@ bool GroupNode::isExtensible() const {
return extensible_;
}
-GroupNode::GroupNode(GroupNode const & other):
- Node(other), extensible_(other.extensible_),
- templateName_(other.templateName_), mandatory_(other.mandatory_)
+GroupNode::GroupNode(GroupNode const & other, bool keepTemplateName):
+ Node(other), extensible_(other.extensible_), mandatory_(other.mandatory_)
{
cloneNodeMap(other.members_, &members_);
+ if (keepTemplateName) {
+ templateName_ = other.templateName_;
+ }
}
GroupNode::~GroupNode() {}
diff --git a/configmgr/source/groupnode.hxx b/configmgr/source/groupnode.hxx
index be4907b86ce3..9d7bbbafa5b3 100644
--- a/configmgr/source/groupnode.hxx
+++ b/configmgr/source/groupnode.hxx
@@ -42,7 +42,7 @@ class GroupNode: public Node {
public:
GroupNode(int layer, bool extensible, rtl::OUString const & templateName);
- virtual rtl::Reference< Node > clone() const;
+ virtual rtl::Reference< Node > clone(bool keepTemplateName) const;
virtual NodeMap & getMembers();
@@ -55,7 +55,7 @@ public:
bool isExtensible() const;
private:
- GroupNode(GroupNode const & other);
+ GroupNode(GroupNode const & other, bool keepTemplateName);
virtual ~GroupNode();
diff --git a/configmgr/source/localizedpropertynode.cxx b/configmgr/source/localizedpropertynode.cxx
index 9c5fa3328a58..54560d7aded4 100644
--- a/configmgr/source/localizedpropertynode.cxx
+++ b/configmgr/source/localizedpropertynode.cxx
@@ -51,7 +51,7 @@ LocalizedPropertyNode::LocalizedPropertyNode(
Node(layer), staticType_(staticType), nillable_(nillable)
{}
-rtl::Reference< Node > LocalizedPropertyNode::clone() const {
+rtl::Reference< Node > LocalizedPropertyNode::clone(bool) const {
return new LocalizedPropertyNode(*this);
}
diff --git a/configmgr/source/localizedpropertynode.hxx b/configmgr/source/localizedpropertynode.hxx
index d5a16af0e54d..4ebcf8e243da 100644
--- a/configmgr/source/localizedpropertynode.hxx
+++ b/configmgr/source/localizedpropertynode.hxx
@@ -47,7 +47,7 @@ class LocalizedPropertyNode: public Node {
public:
LocalizedPropertyNode(int layer, Type staticType, bool nillable);
- virtual rtl::Reference< Node > clone() const;
+ virtual rtl::Reference< Node > clone(bool keepTemplateName) const;
virtual NodeMap & getMembers();
diff --git a/configmgr/source/localizedvaluenode.cxx b/configmgr/source/localizedvaluenode.cxx
index f6246106c8fe..c0e3bc333187 100644
--- a/configmgr/source/localizedvaluenode.cxx
+++ b/configmgr/source/localizedvaluenode.cxx
@@ -48,7 +48,7 @@ LocalizedValueNode::LocalizedValueNode(int layer, css::uno::Any const & value):
Node(layer), value_(value)
{}
-rtl::Reference< Node > LocalizedValueNode::clone() const {
+rtl::Reference< Node > LocalizedValueNode::clone(bool) const {
return new LocalizedValueNode(*this);
}
diff --git a/configmgr/source/localizedvaluenode.hxx b/configmgr/source/localizedvaluenode.hxx
index 7f8a5dd987ce..bfcbdea1de51 100644
--- a/configmgr/source/localizedvaluenode.hxx
+++ b/configmgr/source/localizedvaluenode.hxx
@@ -43,7 +43,7 @@ class LocalizedValueNode: public Node {
public:
LocalizedValueNode(int layer, com::sun::star::uno::Any const & value);
- virtual rtl::Reference< Node > clone() const;
+ virtual rtl::Reference< Node > clone(bool keepTemplateName) const;
virtual rtl::OUString getTemplateName() const;
diff --git a/configmgr/source/makefile.mk b/configmgr/source/makefile.mk
index 317e08bdf49c..777fed3323d8 100644
--- a/configmgr/source/makefile.mk
+++ b/configmgr/source/makefile.mk
@@ -34,7 +34,7 @@ VISIBILITY_HIDDEN = TRUE
.INCLUDE: settings.mk
-CDEFS += -DOOO_DLLIMPLEMENTATION_CONFIGMGR
+DLLPRE =
SLOFILES = \
$(SLO)/access.obj \
@@ -77,7 +77,7 @@ SHL1STDLIBS = \
$(CPPULIB) \
$(SALHELPERLIB) \
$(SALLIB)
-SHL1TARGET = configmgr
+SHL1TARGET = configmgr.uno
SHL1USE_EXPORTS = name
DEF1NAME = $(SHL1TARGET)
diff --git a/configmgr/source/node.hxx b/configmgr/source/node.hxx
index 10f168520595..7c9417e68ea9 100644
--- a/configmgr/source/node.hxx
+++ b/configmgr/source/node.hxx
@@ -46,7 +46,7 @@ public:
virtual Kind kind() const = 0;
- virtual rtl::Reference< Node > clone() const = 0;
+ virtual rtl::Reference< Node > clone(bool keepTemplateName) const = 0;
virtual NodeMap & getMembers();
diff --git a/configmgr/source/nodemap.cxx b/configmgr/source/nodemap.cxx
index 6b22863b5672..8e4d06030bdf 100644
--- a/configmgr/source/nodemap.cxx
+++ b/configmgr/source/nodemap.cxx
@@ -42,7 +42,7 @@ void cloneNodeMap(NodeMap const & source, NodeMap * target) {
OSL_ASSERT(target != 0 && target->empty());
NodeMap clone(source);
for (NodeMap::iterator i(clone.begin()); i != clone.end(); ++i) {
- i->second = i->second->clone();
+ i->second = i->second->clone(true);
}
std::swap(clone, *target);
}
diff --git a/configmgr/source/propertynode.cxx b/configmgr/source/propertynode.cxx
index 070b56d9be9a..f3e459998e7e 100644
--- a/configmgr/source/propertynode.cxx
+++ b/configmgr/source/propertynode.cxx
@@ -55,7 +55,7 @@ PropertyNode::PropertyNode(
extension_(extension)
{}
-rtl::Reference< Node > PropertyNode::clone() const {
+rtl::Reference< Node > PropertyNode::clone(bool) const {
return new PropertyNode(*this);
}
diff --git a/configmgr/source/propertynode.hxx b/configmgr/source/propertynode.hxx
index 1566cbf72dbe..506526ffcc1e 100644
--- a/configmgr/source/propertynode.hxx
+++ b/configmgr/source/propertynode.hxx
@@ -48,7 +48,7 @@ public:
int layer, Type staticType, bool nillable,
com::sun::star::uno::Any const & value, bool extension);
- virtual rtl::Reference< Node > clone() const;
+ virtual rtl::Reference< Node > clone(bool keepTemplateName) const;
Type getStaticType() const;
diff --git a/configmgr/source/services.cxx b/configmgr/source/services.cxx
index 3a009b3cee15..f8c3289664ef 100644
--- a/configmgr/source/services.cxx
+++ b/configmgr/source/services.cxx
@@ -44,6 +44,7 @@
#include "configurationprovider.hxx"
#include "configurationregistry.hxx"
#include "defaultprovider.hxx"
+#include "update.hxx"
namespace {
@@ -67,6 +68,9 @@ static cppu::ImplementationEntry const services[] = {
{ &dummy, &configmgr::configuration_registry::getImplementationName,
&configmgr::configuration_registry::getSupportedServiceNames,
&configmgr::configuration_registry::createFactory, 0, 0 },
+ { &dummy, &configmgr::update::getImplementationName,
+ &configmgr::update::getSupportedServiceNames,
+ &configmgr::update::createFactory, 0, 0 },
{ 0, 0, 0, 0, 0, 0 }
};
@@ -107,6 +111,19 @@ extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.configuration.DefaultProvider")));
+ css::uno::Reference< css::registry::XRegistryKey >(
+ (css::uno::Reference< css::registry::XRegistryKey >(
+ static_cast< css::registry::XRegistryKey * >(pRegistryKey))->
+ createKey(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "/com.sun.star.comp.configuration.Update/UNO/"
+ "SINGLETONS/com.sun.star.configuration.Update")))),
+ css::uno::UNO_SET_THROW)->
+ setStringValue(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.configuration.Update_Service")));
} catch (css::uno::Exception & e) {
(void) e;
OSL_TRACE(
diff --git a/configmgr/source/setnode.cxx b/configmgr/source/setnode.cxx
index f19c36c0bba5..465345a5f856 100644
--- a/configmgr/source/setnode.cxx
+++ b/configmgr/source/setnode.cxx
@@ -69,8 +69,8 @@ SetNode::SetNode(
templateName_(templateName), mandatory_(Data::NO_LAYER)
{}
-rtl::Reference< Node > SetNode::clone() const {
- return new SetNode(*this);
+rtl::Reference< Node > SetNode::clone(bool keepTemplateName) const {
+ return new SetNode(*this, keepTemplateName);
}
NodeMap & SetNode::getMembers() {
@@ -105,12 +105,15 @@ bool SetNode::isValidTemplate(rtl::OUString const & templateName) const {
additionalTemplateNames_.end());
}
-SetNode::SetNode(SetNode const & other):
+SetNode::SetNode(SetNode const & other, bool keepTemplateName):
Node(other), defaultTemplateName_(other.defaultTemplateName_),
additionalTemplateNames_(other.additionalTemplateNames_),
- templateName_(other.templateName_), mandatory_(other.mandatory_)
+ mandatory_(other.mandatory_)
{
cloneNodeMap(other.members_, &members_);
+ if (keepTemplateName) {
+ templateName_ = other.templateName_;
+ }
}
SetNode::~SetNode() {}
diff --git a/configmgr/source/setnode.hxx b/configmgr/source/setnode.hxx
index 7bf1ab0a199e..94ce537adda1 100644
--- a/configmgr/source/setnode.hxx
+++ b/configmgr/source/setnode.hxx
@@ -46,7 +46,7 @@ public:
int layer, rtl::OUString const & defaultTemplateName,
rtl::OUString const & templateName);
- virtual rtl::Reference< Node > clone() const;
+ virtual rtl::Reference< Node > clone(bool keepTemplateName) const;
virtual NodeMap & getMembers();
@@ -63,7 +63,7 @@ public:
bool isValidTemplate(rtl::OUString const & templateName) const;
private:
- SetNode(SetNode const & other);
+ SetNode(SetNode const & other, bool keepTemplateName);
virtual ~SetNode();
diff --git a/configmgr/source/update.cxx b/configmgr/source/update.cxx
index 57f45068d954..4c1d59d5d054 100644
--- a/configmgr/source/update.cxx
+++ b/configmgr/source/update.cxx
@@ -30,27 +30,84 @@
#include <set>
-#include "configmgr/update.hxx"
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/configuration/XUpdate.hpp"
+#include "com/sun/star/lang/XSingleComponentFactory.hpp"
+#include "com/sun/star/uno/Any.hxx"
+#include "com/sun/star/uno/Exception.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/XComponentContext.hpp"
+#include "com/sun/star/uno/XInterface.hpp"
+#include "cppuhelper/factory.hxx"
+#include "cppuhelper/implbase1.hxx"
+#include "cppuhelper/weak.hxx"
#include "osl/mutex.hxx"
#include "rtl/ref.hxx"
+#include "rtl/unload.h"
+#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
+#include "sal/types.h"
#include "broadcaster.hxx"
#include "components.hxx"
#include "lock.hxx"
#include "modifications.hxx"
#include "rootaccess.hxx"
+#include "update.hxx"
-namespace configmgr {
+namespace configmgr { namespace update {
-namespace update {
+namespace {
-void insertExtensionXcsFile(bool shared, rtl::OUString const & fileUri) {
+namespace css = com::sun::star;
+
+std::set< rtl::OUString > seqToSet(
+ css::uno::Sequence< rtl::OUString > const & sequence)
+{
+ return std::set< rtl::OUString >(
+ sequence.getConstArray(),
+ sequence.getConstArray() + sequence.getLength());
+}
+
+class Service:
+ public cppu::WeakImplHelper1< css::configuration::XUpdate >,
+ private boost::noncopyable
+{
+public:
+ Service() {}
+
+private:
+ virtual ~Service() {}
+
+ virtual void SAL_CALL insertExtensionXcsFile(
+ sal_Bool shared, rtl::OUString const & fileUri)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL insertExtensionXcuFile(
+ sal_Bool shared, rtl::OUString const & fileUri)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL insertModificationXcuFile(
+ rtl::OUString const & fileUri,
+ css::uno::Sequence< rtl::OUString > const & includedPaths,
+ css::uno::Sequence< rtl::OUString > const & excludedPaths)
+ throw (css::uno::RuntimeException);
+};
+
+void Service::insertExtensionXcsFile(
+ sal_Bool shared, rtl::OUString const & fileUri)
+ throw (css::uno::RuntimeException)
+{
osl::MutexGuard g(lock);
Components::getSingleton().insertExtensionXcsFile(shared, fileUri);
}
-void insertExtensionXcuFile(bool shared, rtl::OUString const & fileUri) {
+void Service::insertExtensionXcuFile(
+ sal_Bool shared, rtl::OUString const & fileUri)
+ throw (css::uno::RuntimeException)
+{
Broadcaster bc;
{
osl::MutexGuard g(lock);
@@ -63,23 +120,91 @@ void insertExtensionXcuFile(bool shared, rtl::OUString const & fileUri) {
bc.send();
}
-void insertModificationXcuFile(
+void Service::insertModificationXcuFile(
rtl::OUString const & fileUri,
- std::set< rtl::OUString > const & includedPaths,
- std::set< rtl::OUString > const & excludedPaths)
+ css::uno::Sequence< rtl::OUString > const & includedPaths,
+ css::uno::Sequence< rtl::OUString > const & excludedPaths)
+ throw (css::uno::RuntimeException)
{
Broadcaster bc;
{
osl::MutexGuard g(lock);
Modifications mods;
Components::getSingleton().insertModificationXcuFile(
- fileUri, includedPaths, excludedPaths, &mods);
+ fileUri, seqToSet(includedPaths), seqToSet(excludedPaths), &mods);
Components::getSingleton().initGlobalBroadcaster(
mods, rtl::Reference< RootAccess >(), &bc);
}
bc.send();
}
+class Factory:
+ public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
+ private boost::noncopyable
+{
+public:
+ Factory() {}
+
+private:
+ virtual ~Factory() {}
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
+ createInstanceWithContext(
+ css::uno::Reference< css::uno::XComponentContext > const & Context)
+ throw (css::uno::Exception, css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
+ createInstanceWithArgumentsAndContext(
+ css::uno::Sequence< css::uno::Any > const & Arguments,
+ css::uno::Reference< css::uno::XComponentContext > const & Context)
+ throw (css::uno::Exception, css::uno::RuntimeException);
+};
+
+css::uno::Reference< css::uno::XInterface > Factory::createInstanceWithContext(
+ css::uno::Reference< css::uno::XComponentContext > const & Context)
+ throw (css::uno::Exception, css::uno::RuntimeException)
+{
+ return createInstanceWithArgumentsAndContext(
+ css::uno::Sequence< css::uno::Any >(), Context);
+}
+
+css::uno::Reference< css::uno::XInterface >
+Factory::createInstanceWithArgumentsAndContext(
+ css::uno::Sequence< css::uno::Any > const & Arguments,
+ css::uno::Reference< css::uno::XComponentContext > const &)
+ throw (css::uno::Exception, css::uno::RuntimeException)
+{
+ if (Arguments.getLength() != 0) {
+ throw css::uno::Exception(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.comp.configuration.Update must be"
+ " instantiated without arguments")),
+ static_cast< cppu::OWeakObject * >(this));
+ }
+ return static_cast< cppu::OWeakObject * >(new Service);
}
}
+
+rtl::OUString getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.configuration.Update"));
+}
+
+css::uno::Sequence< rtl::OUString > getSupportedServiceNames() {
+ rtl::OUString name(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.configuration.Update_Service"));
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
+css::uno::Reference< css::lang::XSingleComponentFactory > createFactory(
+ cppu::ComponentFactoryFunc, rtl::OUString const &,
+ css::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
+ SAL_THROW(())
+{
+ return new Factory;
+}
+
+} }
diff --git a/configmgr/source/update.hxx b/configmgr/source/update.hxx
new file mode 100644
index 000000000000..faa5c86b15fa
--- /dev/null
+++ b/configmgr/source/update.hxx
@@ -0,0 +1,59 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+#ifndef INCLUDED_CONFIGMGR_SOURCE_UPDATE_HXX
+#define INCLUDED_CONFIGMGR_SOURCE_UPDATE_HXX
+
+#include "sal/config.h"
+
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/Sequence.hxx"
+#include "cppuhelper/factory.hxx"
+#include "rtl/unload.h"
+#include "sal/types.h"
+
+namespace com { namespace sun { namespace star { namespace lang {
+ class XSingleComponentFactory;
+} } } }
+namespace rtl { class OUString; }
+
+namespace configmgr { namespace update {
+
+rtl::OUString SAL_CALL getImplementationName();
+
+com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL
+getSupportedServiceNames();
+
+com::sun::star::uno::Reference< com::sun::star::lang::XSingleComponentFactory >
+SAL_CALL createFactory(
+ cppu::ComponentFactoryFunc, rtl::OUString const &,
+ com::sun::star::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
+ SAL_THROW(());
+
+} }
+
+#endif
diff --git a/configmgr/source/xcsparser.cxx b/configmgr/source/xcsparser.cxx
index 12e64ebbe171..79e122759fc8 100644
--- a/configmgr/source/xcsparser.cxx
+++ b/configmgr/source/xcsparser.cxx
@@ -78,19 +78,19 @@ void merge(
case Node::KIND_LOCALIZED_VALUE:
break; //TODO: merge certain parts?
case Node::KIND_GROUP:
- if (dynamic_cast< GroupNode * >(original.get())->isExtensible()) {
- for (NodeMap::iterator i2(update->getMembers().begin());
- i2 != update->getMembers().end(); ++i2)
- {
- NodeMap::iterator i1(
- original->getMembers().find(i2->first));
- if (i1 == original->getMembers().end()) {
- if (i2->second->kind() == Node::KIND_PROPERTY) {
- original->getMembers().insert(*i2);
- }
- } else if (i2->second->kind() == i1->second->kind()) {
- merge(i1->second, i2->second);
+ for (NodeMap::iterator i2(update->getMembers().begin());
+ i2 != update->getMembers().end(); ++i2)
+ {
+ NodeMap::iterator i1(original->getMembers().find(i2->first));
+ if (i1 == original->getMembers().end()) {
+ if (i2->second->kind() == Node::KIND_PROPERTY &&
+ dynamic_cast< GroupNode * >(
+ original.get())->isExtensible())
+ {
+ original->getMembers().insert(*i2);
}
+ } else if (i2->second->kind() == i1->second->kind()) {
+ merge(i1->second, i2->second);
}
}
break;
@@ -456,7 +456,7 @@ void XcsParser::handleNodeRef(XmlReader & reader) {
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
}
- rtl::Reference< Node > node(tmpl->clone());
+ rtl::Reference< Node > node(tmpl->clone(false));
node->setLayer(valueParser_.getLayer());
elements_.push(Element(node, name));
}
diff --git a/configmgr/source/xcuparser.cxx b/configmgr/source/xcuparser.cxx
index 77b0f747f313..f9f439c98916 100644
--- a/configmgr/source/xcuparser.cxx
+++ b/configmgr/source/xcuparser.cxx
@@ -1056,7 +1056,7 @@ void XcuParser::handleSetNode(XmlReader & reader, SetNode * set) {
if (state_.top().locked || finalizedLayer < valueParser_.getLayer()) {
state_.push(State(true)); // ignored
} else {
- rtl::Reference< Node > member(tmpl->clone());
+ rtl::Reference< Node > member(tmpl->clone(true));
member->setLayer(valueParser_.getLayer());
member->setFinalized(finalizedLayer);
member->setMandatory(mandatoryLayer);
@@ -1070,7 +1070,7 @@ void XcuParser::handleSetNode(XmlReader & reader, SetNode * set) {
{
state_.push(State(true)); // ignored
} else {
- rtl::Reference< Node > member(tmpl->clone());
+ rtl::Reference< Node > member(tmpl->clone(true));
member->setLayer(valueParser_.getLayer());
member->setFinalized(finalizedLayer);
member->setMandatory(mandatoryLayer);
diff --git a/configure.in b/configure.in
index 928e08275213..6b6dabe6571b 100644
--- a/configure.in
+++ b/configure.in
@@ -118,10 +118,6 @@ AC_ARG_ENABLE(odk,
[ --disable-odk OO.o includes an ODK, office development kit
which some packagers may with to build without
],,enable_odk="yes")
-AC_ARG_ENABLE(qadevooo,
-[ --disable-qadevooo OO.o includes some qa testsuites which some
- packagers may wish to build without
-],,enable_qadevooo="yes")
AC_ARG_ENABLE(mathmldtd,
[ --disable-mathmldtd disable mathmldtd
(useful for distributions that want to avoid packaging
@@ -3496,20 +3492,6 @@ AC_SUBST(MINGWCXX)
AC_SUBST(MINGWSTRIP)
dnl ===================================================================
-dnl Check for building qadevOOo
-dnl ===================================================================
-AC_MSG_CHECKING([whether to build qadevOOo])
-if test "z$enable_qadevooo" = "z" -o "$enable_qadevooo" != "no"; then
- AC_MSG_RESULT([yes])
- BUILD_QADEVOOO="YES"
- BUILD_TYPE="$BUILD_TYPE QADEVOOO"
-else
- BUILD_QADEVOOO="NO"
- AC_MSG_RESULT([no])
-fi
-AC_SUBST(BUILD_QADEVOOO)
-
-dnl ===================================================================
dnl Check for prelinked libgcc_s.so.1
dnl ===================================================================
if test "$_os" = "Linux" -a -z "$with_system_stdlibs" -a -z "$with_system_libs"; then
@@ -6748,9 +6730,9 @@ if test "$SOLAR_JAVA" != "" && test "$with_junit" != "no"; then
AC_MSG_RESULT([$OOO_JUNIT_JAR])
else
AC_MSG_RESULT([no])
- AC_MSG_ERROR([cannot find JUnit 4 jar at $OOO_JUNIT_JAR;
-please install one and/or specify its pathname via --with-junit=...,
-or disable it via --without-junit])
+ AC_MSG_ERROR([cannot find JUnit 4 jar; please install one in the default
+location (/usr/share/java), specify its pathname via
+--with-junit=..., or disable it via --without-junit])
fi
fi
AC_SUBST(OOO_JUNIT_JAR)
diff --git a/connectivity/prj/build.lst b/connectivity/prj/build.lst
index dd386c7c7161..0b15c06acf15 100644
--- a/connectivity/prj/build.lst
+++ b/connectivity/prj/build.lst
@@ -1,4 +1,4 @@
-cn connectivity : shell l10n comphelper MOZ:moz SO:moz_prebuilt svl UNIXODBC:unixODBC unoil javaunohelper HSQLDB:hsqldb QADEVOOO:qadevOOo officecfg NSS:nss NULL
+cn connectivity : shell l10n comphelper MOZ:moz SO:moz_prebuilt svl UNIXODBC:unixODBC unoil javaunohelper HSQLDB:hsqldb qadevOOo officecfg NSS:nss NULL
cn connectivity usr1 - all cn_mkout NULL
cn connectivity\inc nmake - all cn_inc NULL
cn connectivity\com\sun\star\sdbcx\comp\hsqldb nmake - all cn_jhsqldbdb cn_hsqldb cn_inc NULL
diff --git a/connectivity/qa/connectivity/tools/makefile.mk b/connectivity/qa/connectivity/tools/makefile.mk
index 0f3c9c84b92e..07490532a1b1 100644
--- a/connectivity/qa/connectivity/tools/makefile.mk
+++ b/connectivity/qa/connectivity/tools/makefile.mk
@@ -38,7 +38,6 @@ all:
@echo "Java not available. Build skipped"
.ELSE
-.IF "$(BUILD_QADEVOOO)" == "YES"
#----- compile .java files -----------------------------------------
JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunnerLight.jar
@@ -61,8 +60,6 @@ ALL : ALLTAR
ALL: ALLDEP
.ENDIF
-.ENDIF
-
.ENDIF # "$(SOLAR_JAVA)" == ""
.INCLUDE : target.mk
diff --git a/connectivity/source/drivers/calc/CTable.cxx b/connectivity/source/drivers/calc/CTable.cxx
index 1d19c05a46c0..d95c6263b7ed 100644
--- a/connectivity/source/drivers/calc/CTable.cxx
+++ b/connectivity/source/drivers/calc/CTable.cxx
@@ -347,14 +347,15 @@ void lcl_SetValue( ORowSetValue& rValue, const Reference<XSpreadsheet>& xSheet,
switch (nType)
{
case DataType::VARCHAR:
- if ( eCellType == CellContentType_TEXT )
+ if ( eCellType == CellContentType_EMPTY )
+ rValue.setNull();
+ else
{
+ // #i25840# still let Calc convert numbers to text
const Reference<XText> xText( xCell, UNO_QUERY );
if ( xText.is() )
rValue = xText->getString();
- } // if ( eCellType == CellContentType_TEXT )
- else
- rValue.setNull();
+ }
break;
case DataType::DECIMAL:
if ( eCellType == CellContentType_VALUE )
diff --git a/cppu/test/AffineBridge/AffineBridge.test.pl b/cppu/test/AffineBridge/AffineBridge.test.pl
deleted file mode 100755
index 6b667efd299c..000000000000
--- a/cppu/test/AffineBridge/AffineBridge.test.pl
+++ /dev/null
@@ -1,72 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-my $rc = 0;
-my $comment = "";
-
-
-@tests = (
- "EnvStack.tester :A:affine :A:affine \"-enter:A[0,not entered]-leave:A[0,not entered]\" :A:affine", # initially not entered&leave
- "EnvStack.tester :affine:A :affine:A \"-enter:affine:A[1,OK]-leave:affine:A[1,OK]\" :affine", # enter
- "EnvStack.tester \"\" :affine:A \"-into:affine:A[1,OK]\" :affine", # call into
- "EnvStack.tester :affine :A \"-into:A[0,wrong thread]\" :affine", # call out
- "EnvStack.tester \"\" :affine:affine:A \"-into:affine:affine:A[0,wrong thread]\" :affine", # wrong thread
- "env.tester.bin CPP:affine"
-);
-
-foreach $test (@tests) {
- $output = "";
-
- $cmd = $test;
- open TESTER, $cmd . "|";
- while (<TESTER>) {
- chomp;
-
- $output = $output . "\t" . $_ . "\n";
- }
- close TESTER ;
-
- if ($? != 0) {
- $comment = $comment . "TEST FAILED: " . $cmd . "\n";
- $comment = $comment . $output;
- }
- $rc = $rc + $?;
-}
-
-
-print $comment;
-
-if ($rc == 0) {
- print "*********** SUCCESS\n";
-}
-else {
- print "*********** FAILURE\n";
-}
diff --git a/cppu/test/AffineBridge/makefile.mk b/cppu/test/AffineBridge/makefile.mk
deleted file mode 100644
index f282d05cf357..000000000000
--- a/cppu/test/AffineBridge/makefile.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := AffineBridge.test.pl
-
-
-.INCLUDE : settings.mk
-
-
-.INCLUDE : target.mk
-
-
-ALLTAR: $(BIN)$/$(TARGET)
-
-$(BIN)$/$(TARGET): AffineBridge.test.pl
- @+$(COPY) $^ $@
diff --git a/cppu/test/AntiEnvGuard/AntiEnvGuard.test.cxx b/cppu/test/AntiEnvGuard/AntiEnvGuard.test.cxx
deleted file mode 100644
index 885600141255..000000000000
--- a/cppu/test/AntiEnvGuard/AntiEnvGuard.test.cxx
+++ /dev/null
@@ -1,131 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "sal/main.h"
-
-#include "cppu/EnvGuards.hxx"
-#include "uno/environment.hxx"
-
-#include <iostream>
-
-
-using namespace com::sun::star;
-
-static rtl::OUString s_message;
-
-
-static void s_test__ctor(void)
-{
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__ctor"));
-
- rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("uno"));
-
- rtl::OUString current_EnvDcp;
- {
- cppu::EnvGuard envGuard(uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")), NULL));
-
- {
- cppu::AntiEnvGuard antiGuard;
-
- current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName();
- }
- }
-
- if (current_EnvDcp == ref)
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \""));
- s_message += current_EnvDcp;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \""));
- s_message += ref;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- }
-}
-
-static void s_test__dtor(void)
-{
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__dtor"));
-
- rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe"));
-
- rtl::OUString current_EnvDcp;
- {
- cppu::EnvGuard envGuard(uno::Environment(ref, NULL));
-
- {
- cppu::AntiEnvGuard antiGuard;
- }
- current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName();
- }
-
-
- if (current_EnvDcp == ref)
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \""));
- s_message += current_EnvDcp;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \""));
- s_message += ref;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- }
-}
-
-
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
-{
- s_test__ctor();
- s_test__dtor();
-
- int ret;
- if (s_message.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
-
- std::cerr
- << argv[0]
- << std::endl
- << rtl::OUStringToOString(s_message, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
diff --git a/cppu/test/AntiEnvGuard/makefile.mk b/cppu/test/AntiEnvGuard/makefile.mk
deleted file mode 100644
index 3164ca17650d..000000000000
--- a/cppu/test/AntiEnvGuard/makefile.mk
+++ /dev/null
@@ -1,46 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := AntiEnvGuard.test
-
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
-
-
-.INCLUDE : settings.mk
-
-
-APP1TARGET := $(TARGET)
-APP1OBJS := $(OBJ)$/AntiEnvGuard.test.obj
-APP1STDLIBS := $(CPPULIB) $(SALLIB)
-
-
-.INCLUDE : target.mk
diff --git a/cppu/test/EnvDcp/EnvDcp.test.cxx b/cppu/test/EnvDcp/EnvDcp.test.cxx
deleted file mode 100644
index d9f78468ef3f..000000000000
--- a/cppu/test/EnvDcp/EnvDcp.test.cxx
+++ /dev/null
@@ -1,111 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "sal/main.h"
-
-#include "cppu/EnvDcp.hxx"
-
-#include <iostream>
-
-
-static rtl::OUString s_message;
-
-static void s_test__getTypeName(void)
-{
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__getTypeName"));
-
- rtl::OUString envDcp(RTL_CONSTASCII_USTRINGPARAM("acaQEQWE123:asda:2342"));
-
- rtl::OUString typeName(cppu::EnvDcp::getTypeName(envDcp));
-
- rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("acaQEQWE123"));
-
- if (typeName == ref)
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \""));
- s_message += typeName;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \""));
- s_message += ref;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- }
-}
-
-static void s_test__getPurpose(void)
-{
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__getPurpose"));
-
- rtl::OUString envDcp(RTL_CONSTASCII_USTRINGPARAM("acaQEQWE123:asda:2342"));
-
- rtl::OUString purpose(cppu::EnvDcp::getPurpose(envDcp));
-
- rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM(":asda:2342"));
-
- if (purpose == ref)
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \""));
- s_message += purpose;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \""));
- s_message += ref;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- }
-}
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
-{
- s_test__getTypeName();
- s_test__getPurpose();
-
- int ret;
- if (s_message.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
-
- std::cerr
- << argv[0]
- << std::endl
- << rtl::OUStringToOString(s_message, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
diff --git a/cppu/test/EnvGuard/EnvGuard.test.cxx b/cppu/test/EnvGuard/EnvGuard.test.cxx
deleted file mode 100644
index ec926fa56670..000000000000
--- a/cppu/test/EnvGuard/EnvGuard.test.cxx
+++ /dev/null
@@ -1,152 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "sal/main.h"
-
-#include "cppu/EnvGuards.hxx"
-#include "uno/environment.hxx"
-
-#include <iostream>
-
-
-using namespace com::sun::star;
-
-static rtl::OUString s_message;
-
-
-static void s_test__entered(void)
-{
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__entered"));
-
- rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe"));
-
- rtl::OUString current_EnvDcp;
- {
- cppu::EnvGuard envGuard(uno::Environment(ref, NULL));
-
- current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName();
- }
-
- if (current_EnvDcp == ref)
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \""));
- s_message += current_EnvDcp;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \""));
- s_message += ref;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- }
-}
-
-static void s_test__left(void)
-{
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__left"));
-
- rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("uno"));
-
- rtl::OUString current_EnvDcp;
- {
- cppu::EnvGuard envGuard(uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")), NULL));
- }
- current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName();
-
-
- if (current_EnvDcp == ref)
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \""));
- s_message += current_EnvDcp;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \""));
- s_message += ref;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- }
-}
-
-static void s_test__clear(void)
-{
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__clear"));
-
- rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("uno"));
-
- rtl::OUString current_EnvDcp;
- {
- cppu::EnvGuard envGuard(uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")), NULL));
-
- envGuard.clear();
- current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName();
- }
-
-
- if (current_EnvDcp == ref)
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \""));
- s_message += current_EnvDcp;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \""));
- s_message += ref;
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- }
-}
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
-{
- s_test__entered();
- s_test__left();
- s_test__clear();
-
- int ret;
- if (s_message.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
-
- std::cerr
- << argv[0]
- << std::endl
- << rtl::OUStringToOString(s_message, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
diff --git a/cppu/test/EnvGuard/makefile.mk b/cppu/test/EnvGuard/makefile.mk
deleted file mode 100644
index bb851af3fb25..000000000000
--- a/cppu/test/EnvGuard/makefile.mk
+++ /dev/null
@@ -1,46 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := EnvGuard.test
-
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
-
-
-.INCLUDE : settings.mk
-
-
-APP1TARGET := $(TARGET)
-APP1OBJS := $(OBJ)$/EnvGuard.test.obj
-APP1STDLIBS := $(CPPULIB) $(SALLIB)
-
-
-.INCLUDE : target.mk
diff --git a/cppu/test/EnvStack/EnvStack.test.pl b/cppu/test/EnvStack/EnvStack.test.pl
deleted file mode 100755
index 842b2ebab5da..000000000000
--- a/cppu/test/EnvStack/EnvStack.test.pl
+++ /dev/null
@@ -1,89 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-my $rc = 0;
-my $comment = "";
-
-
-@tests = (
- "EnvStack.tester \"\" \"\" \"\"",
- "EnvStack.tester \":A:a\" \":A:b\" \"-enter:A-enter:A:a-out:A:a-into:A:b-leave:A:a-leave:A\"",
- "EnvStack.tester \":A:B:a\" \":A:B:b\" \"-enter:A-enter:A:B-enter:A:B:a-out:A:B:a-into:A:B:b-leave:A:B:a-leave:A:B-leave:A\"",
- "EnvStack.tester \":A:B:C:a\" \":A:B:C:b\" \"-enter:A-enter:A:B-enter:A:B:C-enter:A:B:C:a-out:A:B:C:a-into:A:B:C:b-leave:A:B:C:a-leave:A:B:C-leave:A:B-leave:A\"",
- "EnvStack.tester \":A:B:C:D:a\" \":A:B:C:D:b\" \"-enter:A-enter:A:B-enter:A:B:C-enter:A:B:C:D-enter:A:B:C:D:a-out:A:B:C:D:a-into:A:B:C:D:b-leave:A:B:C:D:a-leave:A:B:C:D-leave:A:B:C-leave:A:B-leave:A\"",
- "EnvStack.tester \":A:a:b\" \":A:c:d\" \"-enter:A-enter:A:a-enter:A:a:b-out:A:a:b-out:A:a-into:A:c-into:A:c:d-leave:A:a:b-leave:A:a-leave:A\"",
- "EnvStack.tester \":A:B:a:b\" \":A:B:c:d\" \"-enter:A-enter:A:B-enter:A:B:a-enter:A:B:a:b-out:A:B:a:b-out:A:B:a-into:A:B:c-into:A:B:c:d-leave:A:B:a:b-leave:A:B:a-leave:A:B-leave:A\"",
- "EnvStack.tester \":A\" \"\" \"-enter:A-out:A-leave:A\"",
- "EnvStack.tester \":A:B\" \"\" \"-enter:A-enter:A:B-out:A:B-out:A-leave:A:B-leave:A\"",
- "EnvStack.tester \":A:B:C\" \"\" \"-enter:A-enter:A:B-enter:A:B:C-out:A:B:C-out:A:B-out:A-leave:A:B:C-leave:A:B-leave:A\"",
- "EnvStack.tester \":A:B:C:D\" \"\" \"-enter:A-enter:A:B-enter:A:B:C-enter:A:B:C:D-out:A:B:C:D-out:A:B:C-out:A:B-out:A-leave:A:B:C:D-leave:A:B:C-leave:A:B-leave:A\"",
- "EnvStack.tester \"\" \":a\" \"-into:a\"",
- "EnvStack.tester \"\" \":a:b\" \"-into:a-into:a:b\"",
- "EnvStack.tester \"\" \":a:b:c\" \"-into:a-into:a:b-into:a:b:c\"",
- "EnvStack.tester \"\" \":a:b:c:d\" \"-into:a-into:a:b-into:a:b:c-into:a:b:c:d\"",
- "EnvStack.tester \":A\" \":a\" \"-enter:A-out:A-into:a-leave:A\"",
- "EnvStack.tester \":A:B\" \":a:b\" \"-enter:A-enter:A:B-out:A:B-out:A-into:a-into:a:b-leave:A:B-leave:A\"",
- "EnvStack.tester \":A:B:C\" \":a:b:c\" \"-enter:A-enter:A:B-enter:A:B:C-out:A:B:C-out:A:B-out:A-into:a-into:a:b-into:a:b:c-leave:A:B:C-leave:A:B-leave:A\"",
- "EnvStack.tester \":A:B:C:D\" \":a:b:c:d\" \"-enter:A-enter:A:B-enter:A:B:C-enter:A:B:C:D-out:A:B:C:D-out:A:B:C-out:A:B-out:A-into:a-into:a:b-into:a:b:c-into:a:b:c:d-leave:A:B:C:D-leave:A:B:C-leave:A:B-leave:A\"",
- "EnvStack.tester \":A\" \":A\" \"-enter:A-leave:A\"",
- "EnvStack.tester \":A:B\" \":A:B\" \"-enter:A-enter:A:B-leave:A:B-leave:A\"",
- "EnvStack.tester \":A:B:C\" \":A:B:C\" \"-enter:A-enter:A:B-enter:A:B:C-leave:A:B:C-leave:A:B-leave:A\"",
- "EnvStack.tester \":A:B:C:D\" \":A:B:C:D\" \"-enter:A-enter:A:B-enter:A:B:C-enter:A:B:C:D-leave:A:B:C:D-leave:A:B:C-leave:A:B-leave:A\""
-);
-
-foreach $test (@tests) {
- $output = "";
-
- $cmd = $test;
- open TESTER, $cmd . "|";
- while (<TESTER>) {
- chomp;
-
- $output = $output . "\t" . $_ . "\n";
- }
- close TESTER ;
-
- if ($? != 0) {
- $comment = $comment . "TEST FAILED: " . $cmd . "\n";
- $comment = $comment . $output;
- }
- $rc = $rc + $?;
-}
-
-
-print $comment;
-
-if ($rc == 0) {
- print "*********** SUCCESS\n";
-}
-else {
- print "*********** FAILURE\n";
-}
diff --git a/cppu/test/EnvStack_tester/EnvStack.tester.cxx b/cppu/test/EnvStack_tester/EnvStack.tester.cxx
deleted file mode 100644
index caa6660a91b6..000000000000
--- a/cppu/test/EnvStack_tester/EnvStack.tester.cxx
+++ /dev/null
@@ -1,200 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <iostream>
-
-#include "sal/main.h"
-
-#include "uno/lbnames.h"
-#include "uno/environment.hxx"
-#include "cppu/EnvDcp.hxx"
-#include <com/sun/star/uno/Exception.hpp>
-
-
-#define CPPU_test_EnvStack_tester_IMPL
-#include "EnvStack.tester.hxx"
-
-
-using namespace com::sun::star;
-
-
-static rtl::OUString s_getCurrentEnvDcp(void)
-{
- uno::Environment env(uno::Environment::getCurrent());
- rtl::OUString env_dcp(env.getTypeName());
-
- return env_dcp;
-}
-
-extern "C" { static void s_getCurrentEnvDcp_v(va_list * pParam)
-{
- rtl_uString ** ppEnvDcp = va_arg(*pParam, rtl_uString **);
-
- rtl::OUString env_dcp(s_getCurrentEnvDcp());
-
- rtl_uString_assign(ppEnvDcp, env_dcp.pData);
-}}
-
-static rtl::OUString s_test__uno_Environment_invoke(rtl::OUString const & src_purpose,
- rtl::OUString const & dst_purpose,
- rtl::OUString const & ref)
-{
- rtl::OUString result;
- rtl::OUString target_envDcp;
-
- rtl::OUString src_envDcp(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO));
- src_envDcp += src_purpose;
-
- rtl::OUString dst_envDcp(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO));
- dst_envDcp += dst_purpose;
-
- uno::Environment cur_Env(src_envDcp.pData, NULL);
- uno_Environment_enter(cur_Env.get());
- cur_Env.clear();
-
- uno::Environment dst_Env(dst_envDcp.pData, NULL);
- uno_Environment_invoke(dst_Env.get(), s_getCurrentEnvDcp_v, &target_envDcp.pData);
- dst_Env.clear();
-
- uno_Environment_enter(NULL);
-
-
- if (cppu::EnvDcp::getPurpose(target_envDcp).equals(dst_purpose)
- && g_commentStack.equals(ref))
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" PASSED\n"));
-
- else
- {
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" FAILED -> "));
- result += target_envDcp;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\texpected: \""));
- result += ref;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tgot: \""));
- result += g_commentStack;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- }
-
-
-
- return result;
-}
-
-static rtl::OUString s_test__uno_Environment_invoke_v(va_list param)
-{
- rtl::OUString const * pSrc_purpose = va_arg(param, rtl::OUString const *);
- rtl::OUString const * pDst_purpose = va_arg(param, rtl::OUString const *);
- rtl::OUString const * pRef = va_arg(param, rtl::OUString const *);
-
-
- rtl::OUString result;
-
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("s_test__uno_Environment_invoke_v"));
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - \""));
- result += *pSrc_purpose;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" -> \""));
- result += *pDst_purpose;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\""));
-
- result += s_test__uno_Environment_invoke(*pSrc_purpose, *pDst_purpose, *pRef);
-
- return result;
-}
-
-static rtl::OUString s_do_a_test(rtl::OUString (* pTest)(va_list), ...)
-{
- rtl::OUString result;
-
- va_list param;
-
- va_start(param, pTest);
- try {
- result += pTest(param);
- }
- catch (uno::Exception & exception)
- {
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" FAILED with exception: "));
- result += exception.Message;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
- }
- va_end(param);
-
- return result;
-}
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
-{
- int result = 0;
- rtl::OString message;
-
- if (argc >= 4 && argc <= 5)
- {
- rtl::OUString src_purpose(argv[1], rtl_str_getLength(argv[1]), RTL_TEXTENCODING_ASCII_US);
- rtl::OUString dst_purpose(argv[2], rtl_str_getLength(argv[2]), RTL_TEXTENCODING_ASCII_US);
- rtl::OUString ref (argv[3], rtl_str_getLength(argv[3]), RTL_TEXTENCODING_ASCII_US);
-
- if (argc == 5)
- {
- rtl::OUString test_env(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO));
- test_env += rtl::OUString(argv[4], rtl_str_getLength(argv[4]), RTL_TEXTENCODING_ASCII_US);
- g_env = uno::Environment(test_env);
- }
-
-
- message += rtl::OUStringToOString(
- s_do_a_test(s_test__uno_Environment_invoke_v, &src_purpose, &dst_purpose, &ref),
- RTL_TEXTENCODING_ASCII_US);
-
-
- if (g_env.is())
- g_env.clear();
-
-
- if (message.indexOf(rtl::OString("FAILED")) == -1)
- message += rtl::OString("TESTS PASSED\n");
-
- else
- {
- message += rtl::OString("TESTS _NOT_ PASSED\n");
- result = -1;
- }
- }
- else
- {
- message = "usage: EnvStack.tester <source purpose>"
- " <destination purpose>"
- " <reference string>"
- " [<reference environment>]\n\n";
- }
-
- std::cout << message.getStr();
-
-
- return result;
-}
-
diff --git a/cppu/test/EnvStack_tester/EnvStack.tester.hxx b/cppu/test/EnvStack_tester/EnvStack.tester.hxx
deleted file mode 100644
index 1500ffe4723f..000000000000
--- a/cppu/test/EnvStack_tester/EnvStack.tester.hxx
+++ /dev/null
@@ -1,61 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_cppu_test_EnvStack_tester_hxx
-#define INCLUDED_cppu_test_EnvStack_tester_hxx
-
-#include "uno/environment.hxx"
-
-
-#ifdef CPPU_test_EnvStack_tester_IMPL
-# define CPPU_test_EnvStack_tester_EXPORT SAL_DLLPUBLIC_EXPORT
-
-#elif defined(CPPU_test_EnvStack_Test_LIB)
-# define CPPU_test_EnvStack_tester_EXPORT extern
-
-#elif defined(__GNUC__) && defined(HAVE_GCC_VISIBILITY_FEATURE)
-# define CPPU_test_EnvStack_tester_EXPORT extern __attribute__ ((weak))
-
-#elif defined(__SUNPRO_CC)
-# define CPPU_test_EnvStack_tester_EXPORT extern
- extern rtl::OUString g_commentStack;
- extern com::sun::star::uno::Environment g_env;
-
-# pragma weak g_commentStack
-# pragma weak g_env
-
-#else
-# define CPPU_test_EnvStack_tester_EXPORT SAL_DLLPUBLIC_IMPORT
-
-#endif
-
-CPPU_test_EnvStack_tester_EXPORT rtl::OUString g_commentStack;
-CPPU_test_EnvStack_tester_EXPORT com::sun::star::uno::Environment g_env;
-
-
-
-#endif
diff --git a/cppu/test/EnvStack_tester/ProbeEnv.cxx b/cppu/test/EnvStack_tester/ProbeEnv.cxx
deleted file mode 100644
index a6b1ce1aaac2..000000000000
--- a/cppu/test/EnvStack_tester/ProbeEnv.cxx
+++ /dev/null
@@ -1,148 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-
-#include "cppu/EnvDcp.hxx"
-
-#include "cppu/helper/purpenv/Environment.hxx"
-#include "cppu/helper/purpenv/Mapping.hxx"
-
-#include "EnvStack.tester.hxx"
-
-
-#define LOG_LIFECYCLE_TestEnv
-#ifdef LOG_LIFECYCLE_TestEnv
-# include <iostream>
-# define LOG_LIFECYCLE_TestEnv_emit(x) x
-
-#else
-# define LOG_LIFECYCLE_TestEnv_emit(x)
-
-#endif
-
-
-class SAL_DLLPRIVATE TestEnv : public cppu::Enterable
-{
- virtual ~TestEnv(void);
-
-public:
- explicit TestEnv(uno_Environment * pEnv);
-
- uno_Environment * m_pEnv;
-
-protected:
- virtual void v_enter(void);
- virtual void v_leave(void);
-
- virtual void v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam);
- virtual void v_callOut_v (uno_EnvCallee * pCallee, va_list * pParam);
-
- virtual int v_isValid (rtl::OUString * pReason);
-};
-
-TestEnv::TestEnv(uno_Environment * pEnv)
- : m_pEnv(pEnv)
-{
- LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::TestEnv(...)", this));
-}
-
-TestEnv::~TestEnv(void)
-{
- LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::~TestEnv(void)", this));
-}
-
-
-static void s_checkGEnvValidity(void)
-{
- if (g_env.is())
- {
- rtl::OUString reason;
- int result = g_env.isValid(&reason);
-
- g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("["));
- g_commentStack += rtl::OUString::valueOf((sal_Int32)result);
- g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(","));
- g_commentStack += reason;
- g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("]"));
- }
-}
-
-void TestEnv::v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam)
-{
- g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-into"));
- g_commentStack += cppu::EnvDcp::getPurpose(m_pEnv->pTypeName);
-
- s_checkGEnvValidity();
-
- pCallee(pParam);
-}
-
-void TestEnv::v_callOut_v(uno_EnvCallee * pCallee, va_list * pParam)
-{
- g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-out"));
- g_commentStack += cppu::EnvDcp::getPurpose(m_pEnv->pTypeName);
-
- s_checkGEnvValidity();
-
- pCallee(pParam);
-}
-
-void TestEnv::v_enter(void)
-{
- g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-enter"));
- g_commentStack += cppu::EnvDcp::getPurpose(m_pEnv->pTypeName);
-
- s_checkGEnvValidity();
-}
-
-void TestEnv::v_leave(void)
-{
- g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-leave"));
- g_commentStack += cppu::EnvDcp::getPurpose(m_pEnv->pTypeName);
-
- s_checkGEnvValidity();
-}
-
-int TestEnv::v_isValid(rtl::OUString * /*pReason*/)
-{
- return 1;
-}
-
-extern "C" void SAL_CALL uno_initEnvironment(uno_Environment * pEnv) SAL_THROW_EXTERN_C()
-{
- cppu::helper::purpenv::Environment_initWithEnterable(pEnv, new TestEnv(pEnv));
-}
-
-extern "C" void uno_ext_getMapping(uno_Mapping ** ppMapping,
- uno_Environment * pFrom,
- uno_Environment * pTo )
-{
- cppu::helper::purpenv::createMapping(ppMapping, pFrom, pTo);
-}
-
diff --git a/cppu/test/EnvStack_tester/ProbeEnv.def b/cppu/test/EnvStack_tester/ProbeEnv.def
deleted file mode 100644
index 1444d92c13fa..000000000000
--- a/cppu/test/EnvStack_tester/ProbeEnv.def
+++ /dev/null
@@ -1,8 +0,0 @@
-HEAPSIZE 0
-EXPORTS
- uno_initEnvironment
- uno_ext_getMapping
-
-
-
-
diff --git a/cppu/test/EnvStack_tester/makefile.mk b/cppu/test/EnvStack_tester/makefile.mk
deleted file mode 100644
index 1ae0e4e89250..000000000000
--- a/cppu/test/EnvStack_tester/makefile.mk
+++ /dev/null
@@ -1,126 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := EnvStack.tester
-
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
-
-
-.INCLUDE : settings.mk
-.INCLUDE : ../../source/helper/purpenv/export.mk
-
-.IF "$(COM)" == "GCC"
-LINKFLAGS += -rdynamic
-.ENDIF
-
-
-ENVINCPRE := -I$(OUT)$/inc$/$(TARGET)
-
-APP1TARGET := $(TARGET)
-APP1OBJS := $(OBJ)$/EnvStack.tester.obj
-APP1STDLIBS := $(CPPULIB) $(SALLIB)
-
-
-SHL1TARGET := $(HLD_DLLPRE)A_uno_uno
-SHL1IMPLIB := i$(SHL1TARGET)
-SHL1OBJS := $(SLO)$/ProbeEnv.obj
-SHL1STDLIBS := $(purpenv_helper_LIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB)
-.IF "$(GUI)"=="WNT"
-SHL1STDLIBS += $(BIN)$/EnvStack.tester.lib
-.ENDIF
-SHL1DEF := ProbeEnv.def
-
-SHL2TARGET := $(HLD_DLLPRE)B_uno_uno
-SHL2IMPLIB := i$(SHL2TARGET)
-SHL2OBJS := $(SHL1OBJS)
-SHL2STDLIBS := $(SHL1STDLIBS)
-SHL2DEF := $(SHL1DEF)
-
-SHL3TARGET := $(HLD_DLLPRE)C_uno_uno
-SHL3IMPLIB := i$(SHL3TARGET)
-SHL3OBJS := $(SHL1OBJS)
-SHL3STDLIBS := $(SHL1STDLIBS)
-SHL3DEF := $(SHL1DEF)
-
-SHL4TARGET := $(HLD_DLLPRE)D_uno_uno
-SHL4IMPLIB := i$(SHL4TARGET)
-SHL4OBJS := $(SHL1OBJS)
-SHL4STDLIBS := $(SHL1STDLIBS)
-SHL4DEF := $(SHL1DEF)
-
-SHL5TARGET := $(HLD_DLLPRE)a_uno_uno
-SHL5IMPLIB := i$(SHL5TARGET)
-SHL5OBJS := $(SHL1OBJS)
-SHL5STDLIBS := $(SHL1STDLIBS)
-SHL5DEF := $(SHL1DEF)
-
-SHL6TARGET := $(HLD_DLLPRE)b_uno_uno
-SHL6IMPLIB := i$(SHL6TARGET)
-SHL6OBJS := $(SHL1OBJS)
-SHL6STDLIBS := $(SHL1STDLIBS)
-SHL6DEF := $(SHL1DEF)
-
-SHL7TARGET := $(HLD_DLLPRE)c_uno_uno
-SHL7IMPLIB := i$(SHL7TARGET)
-SHL7OBJS := $(SHL1OBJS)
-SHL7STDLIBS := $(SHL1STDLIBS)
-SHL7DEF := $(SHL1DEF)
-
-SHL8TARGET := $(HLD_DLLPRE)d_uno_uno
-SHL8IMPLIB := i$(SHL8TARGET)
-SHL8OBJS := $(SHL1OBJS)
-SHL8STDLIBS := $(SHL1STDLIBS)
-SHL8DEF := $(SHL1DEF)
-
-
-.INCLUDE : target.mk
-
-
-ALLTAR: \
- $(SHL1TARGETN) \
- $(SHL2TARGETN) \
- $(SHL3TARGETN) \
- $(SHL4TARGETN) \
- $(SHL5TARGETN) \
- $(SHL6TARGETN) \
- $(SHL7TARGETN) \
- $(SHL8TARGETN)
-
-
-$(SHL1TARGETN) : $(APP1TARGETN)
-$(SHL2TARGETN) : $(APP1TARGETN)
-$(SHL3TARGETN) : $(APP1TARGETN)
-$(SHL4TARGETN) : $(APP1TARGETN)
-$(SHL5TARGETN) : $(APP1TARGETN)
-$(SHL6TARGETN) : $(APP1TARGETN)
-$(SHL7TARGETN) : $(APP1TARGETN)
-$(SHL8TARGETN) : $(APP1TARGETN)
diff --git a/cppu/test/Environment.test.cxx b/cppu/test/Environment.test.cxx
deleted file mode 100644
index 446ffda7f545..000000000000
--- a/cppu/test/Environment.test.cxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Test for uno/environment.hxx respectively com::sun::star::uno::Environment
-
-#include "uno/environment.hxx"
-#include "uno/lbnames.h"
-#include "sal/main.h"
-
-#include <iostream>
-
-
-using namespace com::sun::star;
-
-static rtl::OUString s_comment;
-
-static void s_test__constructor_oustring_context(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__constructor_outstring_context\n"));
-
- uno::Environment environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)), NULL);
-
- if (!environment.get())
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tcouldn't get an Environment - FAILURE\n"));
-}
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
-{
- s_test__constructor_oustring_context();
-
-
- int ret;
- if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
-
- std::cerr
- << argv[0]
- << std::endl
- << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
diff --git a/cppu/test/FreeReference/FreeReference.test.cxx b/cppu/test/FreeReference/FreeReference.test.cxx
deleted file mode 100644
index 1d80f573b0f3..000000000000
--- a/cppu/test/FreeReference/FreeReference.test.cxx
+++ /dev/null
@@ -1,414 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <iostream>
-
-#include "sal/main.h"
-
-#include "uno/environment.hxx"
-
-#include "cppu/FreeReference.hxx"
-#include "cppu/EnvGuards.hxx"
-
-#include "../ObjectFactory/ObjectFactory.hxx"
-
-
-
-using namespace com::sun::star;
-
-static rtl::OUString s_comment;
-static uno::Environment s_env;
-
-extern "C" {
-static void s_callee_in(rtl_uString * pMethod_name)
-{
- rtl::OUString method_name(pMethod_name);
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_in method:\""));
- s_comment += method_name;
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: "));
- s_comment += uno::Environment::getCurrent().getTypeName();
-
- if (!s_env.is())
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set"));
- return;
- }
-
- rtl::OUString reason;
- int valid = s_env.isValid(&reason);
-
- if (valid)
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: "));
- s_comment += reason;
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
- }
-}
-
-static void s_callee_out(rtl_uString * pMethod_name)
-{
- rtl::OUString method_name(pMethod_name);
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_out method:\""));
- s_comment += method_name;
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: "));
- s_comment += uno::Environment::getCurrent().getTypeName();
-
- if (!s_env.is())
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set"));
- return;
- }
-
- rtl::OUString reason;
- int valid = s_env.isValid(&reason);
-
- if (!valid)
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: is in\n"));
- }
-}
-}
-
-static cppu::FreeReference<uno::XInterface> s_get_envObject(void)
-{
- cppu::EnvGuard envGuard(s_env);
-
- uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_in));
-
- cppu::FreeReference<uno::XInterface> env_obj(pObject, SAL_NO_ACQUIRE);
-
- return env_obj;
-}
-
-static cppu::FreeReference<uno::XInterface> s_get_flatObject(void)
-{
- uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_out));
-
- return cppu::FreeReference<uno::XInterface>(pObject, SAL_NO_ACQUIRE);
-}
-
-
-static void s_test_operator_arrow(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_operator_arrow:\n"));
-
- cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject());
-
- env_obj->acquire();
- env_obj->release();
-}
-
-
-static void s_test_operator_assign_empty_reference(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_operator_assign_empty_reference\n"));
-
- cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject());
- cppu::FreeReference<uno::XInterface> empty_ref;
-
- flat_obj = empty_ref;
-}
-
-static void s_test_operator_assign_inner_reference_inside(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_operator_assign_inner_reference_inside\n"));
-
- cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject());
- cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject());
-
- {
- cppu::EnvGuard envGuard(s_env);
- env_obj = flat_obj;
- }
-}
-
-static void s_test_method_clear_inner_reference_inside(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_clear_inner_reference_inside\n"));
-
- cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject());
-
- {
- cppu::EnvGuard envGuard(s_env);
- env_obj.clear();
- }
-}
-
-static void s_test_method_clear_inner_reference_outside(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_clear_inner_reference_outside\n"));
-
- cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject());
-
- env_obj.clear();
-}
-
-static void s_test_method_clear_outer_reference_inside(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_clear_outer_reference_inside\n"));
-
- cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject());
-
- {
- cppu::EnvGuard envGuard(s_env);
- flat_obj.clear();
- }
-}
-
-static void s_test_method_clear_outer_reference_outside(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_clear_outer_reference_outside\n"));
-
- cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject());
-
- flat_obj.clear();
-}
-
-static void s_test_method_set_inside_with_inner_reference(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_set_inside_with_inner_reference\n"));
-
- cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject());
-
- {
- cppu::EnvGuard envGuard(s_env);
- uno::XInterface * pObject2 = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_in));
- {
- uno::Reference<uno::XInterface> ref(pObject2, SAL_NO_ACQUIRE);
-
- env_obj.set(ref);
- }
- }
-}
-
-static void s_test_method_set_inside_with_outer_reference(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_set_inside_with_outer_reference\n"));
-
- cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject());
-
- uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_out));
- {
- uno::Reference<uno::XInterface> ref(pObject, SAL_NO_ACQUIRE);
-
- env_obj.set(ref);
- }
-}
-
-static void s_test_method_set_with_empty_reference(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_set_outside_with_empty_reference\n"));
-
- cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject());
-
- {
- uno::Reference<uno::XInterface> ref;
-
- flat_obj.set(ref);
- }
-}
-
-static void s_test_method_set_outside_with_inner_reference(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_set_outside_with_inner_reference\n"));
-
- cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject());
-
- {
- cppu::EnvGuard envGuard(s_env);
-
- uno::XInterface * pObject2 = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_in));
- {
- uno::Reference<uno::XInterface> ref(pObject2, SAL_NO_ACQUIRE);
-
- flat_obj.set(ref);
- }
- }
-}
-
-static void s_test_method_set_outside_with_outer_reference(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_set_outside_with_outer_reference\n"));
-
- cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject());
-
- uno::XInterface * pObject2 = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_out));
- {
- uno::Reference<uno::XInterface> ref(pObject2, SAL_NO_ACQUIRE);
-
- flat_obj.set(ref);
- }
-}
-
-static void s_test_operator_equal(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_operator_equal\n"));
-
-
- cppu::FreeReference<uno::XInterface> env_obj;
- uno::XInterface * pObject = NULL;
- {
- cppu::EnvGuard envGuard(s_env);
- pObject = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_in));
-
- env_obj = cppu::FreeReference<uno::XInterface>(pObject, SAL_NO_ACQUIRE);
- }
-
-
- uno::Mapping mapping(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV) ":unsafe")),
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))));
- uno::Reference<uno::XInterface> tmp;
- uno::XInterface * pMappedObject = reinterpret_cast<uno::XInterface *>(mapping.mapInterface(pObject, ::getCppuType(&tmp)));
-
-
- cppu::FreeReference<uno::XInterface> flat_obj(pMappedObject, SAL_NO_ACQUIRE);
-
- {
- cppu::EnvGuard envGuard(s_env);
-
- if (!(env_obj == flat_obj))
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\trefs are not equal inside - FAILURE\n"));
- }
-
- if (!(env_obj == flat_obj))
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\trefs are not equal outside - FAILURE\n"));
-}
-
-static void s_test_operator_unequal(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_operator_unequal\n"));
-
-
- uno::XInterface * pObject = NULL;
- cppu::FreeReference<uno::XInterface> env_obj;
- {
- cppu::EnvGuard envGuard(s_env);
-
- pObject = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_in));
-
- env_obj = cppu::FreeReference<uno::XInterface>(pObject, SAL_NO_ACQUIRE);
- }
-
-
- uno::Mapping mapping(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV) ":unsafe")),
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))));
- uno::Reference<uno::XInterface> tmp;
- uno::XInterface * pMappedObject = reinterpret_cast<uno::XInterface *>(mapping.mapInterface(pObject, ::getCppuType(&tmp)));
-
-
- cppu::FreeReference<uno::XInterface> flat_obj(pMappedObject, SAL_NO_ACQUIRE);
-
- {
- cppu::EnvGuard envGuard(s_env);
-
- if (env_obj != flat_obj)
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\trefs are not equal inside - FAILURE\n"));
- }
-
- if (env_obj != flat_obj)
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\trefs are not equal outside - FAILURE\n"));
-}
-
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
-{
- uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).enter();
-
- s_env = uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")));
-
-
- rtl::OUString result;
- s_test_operator_arrow();
- s_test_operator_equal();
- s_test_operator_unequal();
-
- s_test_operator_assign_empty_reference();
- s_test_operator_assign_inner_reference_inside();
-
- s_test_method_set_with_empty_reference();
- s_test_method_set_inside_with_inner_reference();
- s_test_method_set_inside_with_outer_reference();
- s_test_method_set_outside_with_inner_reference();
- s_test_method_set_outside_with_outer_reference();
-
- s_test_method_clear_inner_reference_inside();
- s_test_method_clear_inner_reference_outside();
- s_test_method_clear_outer_reference_inside();
- s_test_method_clear_outer_reference_outside();
-
- s_env.clear();
-
-
- uno_Environment_enter(NULL);
-
-
- int ret;
- if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
-
- std::cerr
- << argv[0]
- << std::endl
- << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
diff --git a/cppu/test/IdentityMapping.test.cxx b/cppu/test/IdentityMapping.test.cxx
deleted file mode 100644
index 3b232ce0461e..000000000000
--- a/cppu/test/IdentityMapping.test.cxx
+++ /dev/null
@@ -1,77 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Test for uno/mapping.hxx respectively com::sun::star::uno::Mapping
-
-
-#include <iostream>
-
-#include "sal/main.h"
-
-#include "uno/mapping.hxx"
-
-
-using namespace com::sun::star;
-
-static rtl::OUString s_comment;
-
-static void s_test__get_identity_mapping(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__get_identity_mapping\n"));
-
- uno::Mapping mapping(uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))),
- uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))));
-
- if (!mapping.get())
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tcouldn't get a Mapping - FAILURE\n"));
-}
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
-{
- s_test__get_identity_mapping();
-
-
- int ret;
- if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
-
- std::cerr
- << argv[0]
- << std::endl
- << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
diff --git a/cppu/test/Map/Map.test.cxx b/cppu/test/Map/Map.test.cxx
deleted file mode 100644
index 171d72f99f34..000000000000
--- a/cppu/test/Map/Map.test.cxx
+++ /dev/null
@@ -1,258 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <iostream>
-
-#include "sal/main.h"
-
-#include "uno/environment.hxx"
-
-#include "cppu/Map.hxx"
-#include "cppu/EnvGuards.hxx"
-
-#include "../ObjectFactory/ObjectFactory.hxx"
-
-
-using namespace com::sun::star;
-
-
-static rtl::OUString s_comment;
-static uno::Environment s_env;
-
-extern "C" {
-static void s_callee_in(rtl_uString * pMethod_name)
-{
- rtl::OUString method_name(pMethod_name);
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_in method:\""));
- s_comment += method_name;
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \""));
- s_comment += uno::Environment::getCurrent().getTypeName();
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\""));
-
- if (!s_env.is())
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set"));
- return;
- }
-
- rtl::OUString reason;
- int valid = s_env.isValid(&reason);
-
- if (valid)
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: "));
- s_comment += reason;
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
- }
-}
-
-static void s_callee_out(rtl_uString * pMethod_name)
-{
- rtl::OUString method_name(pMethod_name);
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_out method:\""));
- s_comment += method_name;
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \""));
- s_comment += uno::Environment::getCurrent().getTypeName();
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\""));
-
- if (!s_env.is())
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set"));
- return;
- }
-
- rtl::OUString reason;
- int valid = s_env.isValid(&reason);
-
- if (!valid)
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: is in\n"));
-}
-}
-
-static uno::Reference<uno::XInterface> s_get_envObject(void)
-{
- cppu::EnvGuard envGuard(s_env);
-
- uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_in));
-
- return uno::Reference<uno::XInterface>(pObject, SAL_NO_ACQUIRE);
-}
-
-static uno::XInterface * s_x_get_flatObject(void)
-{
- uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_out));
-
- return pObject;
-}
-
-static uno::Reference<uno::XInterface> s_get_flatObject(void)
-{
- return uno::Reference<uno::XInterface>(s_x_get_flatObject(), SAL_NO_ACQUIRE);
-}
-
-
-static void s_test__mapOut(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__mapOut:\n"));
-
- uno::Reference<uno::XInterface> obj;
-
- {
- cppu::EnvGuard envGuard(s_env);
- obj.set(cppu::mapOut(s_get_envObject().get(),
- uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))),
- SAL_NO_ACQUIRE);
- }
-
- obj->acquire();
- obj->release();
-}
-
-static void s_test__mapIn(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__unshield:\n"));
-
- uno::Reference<uno::XInterface> obj;
-
- {
- cppu::EnvGuard envGuard(s_env);
- uno::XInterface * pObj = s_x_get_flatObject();
- obj.set(cppu::mapIn(pObj,
- uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))),
- SAL_NO_ACQUIRE);
-
- envGuard.clear();
-
- pObj->release();
- }
-
- {
- cppu::EnvGuard envGuard(s_env);
- obj.clear();
- }
-}
-
-static void s_test__mapOutAny(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__shieldAny:\n"));
-
- uno::Any out;
-
- {
- cppu::EnvGuard envGuard(s_env);
- uno::Any any;
- any <<= s_get_envObject();
- cppu::mapOutAny(any,
- &out,
- uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME))));
- }
-
- uno::Reference<uno::XInterface> obj;
- out >>= obj;
-
- obj->acquire();
- obj->release();
-}
-
-static void s_test__mapInAny(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__unshieldAny:\n"));
-
- uno::Any out;
- {
- uno::Any any(s_get_flatObject());
-
- {
- cppu::EnvGuard envGuard(s_env);
- cppu::mapInAny(any,
- &out,
- uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME))));
- }
- }
-
- {
- cppu::EnvGuard envGuard(s_env);
-
- uno::Reference<uno::XInterface> obj;
- out >>= obj;
-
- obj.clear();
- }
-}
-
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
-{
- uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).enter();
-
- s_env = uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")));
-
- s_test__mapOut();
- s_test__mapOutAny();
- s_test__mapIn();
- s_test__mapInAny();
-
- s_env.clear();
-
-
- uno_Environment_enter(NULL);
-
-
- int ret;
- if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
-
- std::cerr
- << argv[0]
- << std::endl
- << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
diff --git a/cppu/test/Mapping.test.cxx b/cppu/test/Mapping.test.cxx
deleted file mode 100644
index 1b763dd71cf2..000000000000
--- a/cppu/test/Mapping.test.cxx
+++ /dev/null
@@ -1,77 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Test for uno/mapping.hxx respectively com::sun::star::uno::Mapping
-
-
-#include <iostream>
-
-#include "sal/main.h"
-
-#include "uno/mapping.hxx"
-
-
-using namespace com::sun::star;
-
-static rtl::OUString s_comment;
-
-static void s_test__constructor_env_env(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__constructor_env_env\n"));
-
- uno::Mapping mapping(uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))),
- uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME))));
-
- if (!mapping.get())
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tcouldn't get a Mapping - FAILURE\n"));
-}
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
-{
- s_test__constructor_env_env();
-
-
- int ret;
- if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
-
- std::cerr
- << argv[0]
- << std::endl
- << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
diff --git a/cppu/test/ObjectFactory/CppObject.cxx b/cppu/test/ObjectFactory/CppObject.cxx
deleted file mode 100644
index 541a4172e3d8..000000000000
--- a/cppu/test/ObjectFactory/CppObject.cxx
+++ /dev/null
@@ -1,103 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-
-#include "cppu/EnvDcp.hxx"
-#include "cppuhelper/implbase1.hxx"
-
-#include "com/sun/star/uno/XComponentContext.hpp"
-
-#include "CppObject.hxx"
-
-
-using namespace ::com::sun::star;
-
-
-#ifdef LOG_LIFECYCLE
-#define LOG_LIFECYCLE_CppObject
-#endif
-
-#define LOG_LIFECYCLE_CppObject
-#ifdef LOG_LIFECYCLE_CppObject
-# include <iostream>
-# define LOG_LIFECYCLE_CppObject_emit(x) x
-
-#else
-# define LOG_LIFECYCLE_CppObject_emit(x)
-
-#endif
-
-CppObject::CppObject(Callee * pCallee) SAL_THROW((uno::RuntimeException))
- : m_nRef (1),
- m_pCallee(pCallee)
-{
- LOG_LIFECYCLE_CppObject_emit(fprintf(stderr, "LIFE: %s -> %p\n", "CppObject::CppObject", this));
-}
-
-CppObject::~CppObject() SAL_THROW((uno::RuntimeException))
-{
- LOG_LIFECYCLE_CppObject_emit(fprintf(stderr, "LIFE: %s -> %p\n", "CppObject::~CppObject", this));
-}
-
-void SAL_CALL CppObject::acquire() throw ()
-{
- m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::acquire")).pData);
-
- osl_incrementInterlockedCount(&m_nRef);
-}
-
-void SAL_CALL CppObject::release() throw ()
-{
- m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::release")).pData);
-
- if (osl_decrementInterlockedCount(&m_nRef) == 0)
- delete this;
-}
-
-uno::Any SAL_CALL CppObject::queryInterface(uno::Type const & rType ) throw (uno::RuntimeException)
-{
- m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::queryInterface")).pData);
-
- void * bla = this;
-
- return uno::Any(&bla, rType);
-}
-
-
-uno::XInterface * CppObject::s_create(Callee * pCallee)
-{
- return new CppObject(pCallee);
-}
-
-void CppObject::s_call(uno::XInterface * pXInterface)
-{
- uno::Reference<uno::XInterface> tmp;
-
- pXInterface->queryInterface(::getCppuType(&tmp));
-}
diff --git a/cppu/test/ObjectFactory/CppObject.hxx b/cppu/test/ObjectFactory/CppObject.hxx
deleted file mode 100644
index f8f5786daa31..000000000000
--- a/cppu/test/ObjectFactory/CppObject.hxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_CppObject_hxx
-#define INCLUDED_CppObject_hxx
-
-
-#include "com/sun/star/uno/XComponentContext.hpp"
-
-
-#include "callee.hxx"
-
-namespace cssu = ::com::sun::star::uno;
-
-
-class CppObject: public cssu::XInterface
-{
-public:
- static cssu::XInterface * s_create (Callee * pCallee);
- static void s_release(cssu::XInterface * pXInterface);
- static void s_call (cssu::XInterface * pXInterface);
-
- virtual void SAL_CALL acquire() throw ();
- virtual void SAL_CALL release() throw ();
-
- virtual cssu::Any SAL_CALL queryInterface(cssu::Type const & rType ) throw (cssu::RuntimeException);
-
-protected:
- oslInterlockedCount m_nRef;
-
- explicit CppObject(Callee * pCallee) SAL_THROW((cssu::RuntimeException));
- virtual ~CppObject(void) SAL_THROW((cssu::RuntimeException));
-
- Callee * m_pCallee;
-};
-
-
-#endif
diff --git a/cppu/test/ObjectFactory/ObjectFactory.cxx b/cppu/test/ObjectFactory/ObjectFactory.cxx
deleted file mode 100644
index d4f251d028ee..000000000000
--- a/cppu/test/ObjectFactory/ObjectFactory.cxx
+++ /dev/null
@@ -1,69 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-
-#define CPPU_test_ObjectFactory_IMPL
-
-#include "UnoObject.hxx"
-#include "CppObject.hxx"
-#include "ObjectFactory.hxx"
-
-
-using namespace com::sun::star;
-
-
-
-CPPU_test_ObjectFactory_EXPORT void * createObject(rtl::OUString const & envDcp, Callee * pCallee)
-{
- void * result;
-
- if (envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV)))))
- result = CppObject::s_create(pCallee);
-
- else if (envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))))
- result = UnoObject_create(pCallee);
-
- else
- abort();
-
- return result;
-}
-
-CPPU_test_ObjectFactory_EXPORT void callObject(rtl::OUString const & envDcp, void * pObject)
-{
- if (envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV)))))
- CppObject::s_call(reinterpret_cast<uno::XInterface *>(pObject));
-
- else if (envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))))
- UnoObject_call(reinterpret_cast<uno_Interface *>(pObject));
-
- else
- abort();
-}
-
diff --git a/cppu/test/ObjectFactory/ObjectFactory.hxx b/cppu/test/ObjectFactory/ObjectFactory.hxx
deleted file mode 100644
index 768c4c430f9c..000000000000
--- a/cppu/test/ObjectFactory/ObjectFactory.hxx
+++ /dev/null
@@ -1,48 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_ObjectFactory_hxx
-#define INCLUDED_ObjectFactory_hxx
-
-
-#include "callee.hxx"
-
-
-#ifdef CPPU_test_ObjectFactory_IMPL
-# define CPPU_test_ObjectFactory_EXPORT SAL_DLLPUBLIC_EXPORT
-
-#else
-# define CPPU_test_ObjectFactory_EXPORT SAL_DLLPUBLIC_IMPORT
-
-#endif
-
-
-CPPU_test_ObjectFactory_EXPORT void * createObject(rtl::OUString const & envDcp, Callee * pCallee);
-CPPU_test_ObjectFactory_EXPORT void callObject (rtl::OUString const & envDcp, void *);
-
-
-#endif
diff --git a/cppu/test/ObjectFactory/UnoObject.cxx b/cppu/test/ObjectFactory/UnoObject.cxx
deleted file mode 100644
index 9fa22c4ca52e..000000000000
--- a/cppu/test/ObjectFactory/UnoObject.cxx
+++ /dev/null
@@ -1,227 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-
-#include "osl/interlck.h"
-#include "uno/environment.h"
-#include "uno/mapping.h"
-#include "uno/dispatcher.h"
-#include "typelib/typedescription.h"
-#include "rtl/alloc.h"
-#include "com/sun/star/uno/Any.hxx"
-
-#include "UnoObject.hxx"
-#include "callee.hxx"
-
-
-using namespace com::sun::star;
-
-
-#ifdef LOG_LIFECYCLE
-# define LOG_LIFECYCLE_UnoObject
-#endif
-
-#define LOG_LIFECYCLE_UnoObject
-#ifdef LOG_LIFECYCLE_UnoObject
-# include <iostream>
-# define LOG_LIFECYCLE_UnoObject_emit(x) x
-
-#else
-# define LOG_LIFECYCLE_UnoObject_emit(x)
-
-#endif
-
-
-struct UnoObject : public uno_Interface
-{
- oslInterlockedCount m_nCount;
- Callee * m_pCallee;
-};
-
-
-
-static bool s_isQueryInterfaceCall(rtl_uString * pMethod,
- void * pArgs[],
- const sal_Char * pQueriedType)
-{
- static rtl::OString aPattern("com.sun.star.uno.XInterface::queryInterface");
-
- bool bIsQueryInterfaceCall =
- rtl_ustr_ascii_shortenedCompare_WithLength(
- rtl_uString_getStr( pMethod ),
- rtl_uString_getLength( pMethod ),
- aPattern.getStr(),
- aPattern.getLength() ) == 0;
-
- if (bIsQueryInterfaceCall)
- {
- typelib_TypeDescriptionReference * pTDR
- = *(typelib_TypeDescriptionReference **)pArgs[ 0 ];
-
- bIsQueryInterfaceCall =
- rtl_ustr_ascii_compare(
- rtl_uString_getStr( pTDR->pTypeName ),
- pQueriedType ) == 0;
- }
-
- return bIsQueryInterfaceCall;
-}
-
-static void s_UnoObject_delete(UnoObject * pUnoObject)
-{
- LOG_LIFECYCLE_UnoObject_emit(fprintf(stderr, "LIFE: %s -> %p\n", "s_UnoObject_delete", pUnoObject));
-
- rtl_freeMemory(pUnoObject);
-}
-
-
-extern "C" {
-static void SAL_CALL s_UnoObject_acquire(uno_Interface * pUnoI)
-{
- UnoObject * pUnoObject = (UnoObject *)pUnoI;
-
- pUnoObject->m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::acquire")).pData);
-
- osl_incrementInterlockedCount(&pUnoObject->m_nCount);
-}
-
-static void SAL_CALL s_UnoObject_release(uno_Interface * pUnoI)
-{
- UnoObject * pUnoObject = (UnoObject *)pUnoI;
-
- pUnoObject->m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::release")).pData);
-
- if (osl_decrementInterlockedCount(&pUnoObject->m_nCount) == 0)
- s_UnoObject_delete(pUnoObject);
-}
-
-static void SAL_CALL s_UnoObject_dispatch(
- uno_Interface * pUnoI,
- typelib_TypeDescription const * pMemberType,
- void * pReturn,
- void * pArgs[],
- uno_Any ** ppException )
-{
- UnoObject * pUnoObject = (UnoObject *)pUnoI;
- *ppException = NULL;
-
- pUnoObject->m_pCallee(rtl::OUString(pMemberType->pTypeName).pData);
-
- if (s_isQueryInterfaceCall(pMemberType->pTypeName, pArgs, "com.sun.star.uno.XInterface"))
- {
- typelib_TypeDescriptionReference * type_XInterface =
- * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE );
-
- typelib_typedescriptionreference_acquire(type_XInterface);
-
- uno::Any * pRet = (uno::Any *)pReturn;
- pRet->pType = type_XInterface;
- pRet->pData = &pRet->pReserved;
- pRet->pReserved = pUnoObject;
-
- s_UnoObject_acquire(pUnoObject);
- }
- else
- abort();
-}
-}
-
-uno_Interface * UnoObject_create(Callee * pCallee)
-{
- UnoObject * pUnoObject = (UnoObject *)rtl_allocateMemory(sizeof(UnoObject));
-
- LOG_LIFECYCLE_UnoObject_emit(fprintf(stderr, "LIFE: %s -> %p\n", "UnoObject_create", pUnoObject));
-
- pUnoObject->m_nCount = 1;
- pUnoObject->m_pCallee = pCallee;
-
- pUnoObject->acquire = s_UnoObject_acquire;
- pUnoObject->release = s_UnoObject_release;
- pUnoObject->pDispatcher = s_UnoObject_dispatch;
-
- pUnoObject->m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UnoObject_create")).pData);
-
- return pUnoObject;
-}
-
-void UnoObject_release(uno_Interface * pUnoI)
-{
- pUnoI->release(pUnoI);
-}
-
-
-void UnoObject_call(uno_Interface * pUnoI)
-{
- uno_Any exception;
- uno_Any * pException = &exception;
-
- uno_Interface * pUno_XInv = NULL;
-
- {
- typelib_TypeDescription * g_pQITD = NULL;
-
- typelib_TypeDescriptionReference * type_XInterface =
- * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE );
-
- typelib_InterfaceTypeDescription * pTXInterfaceDescr = 0;
- TYPELIB_DANGER_GET( (typelib_TypeDescription **) &pTXInterfaceDescr, type_XInterface );
- typelib_typedescriptionreference_getDescription(
- &g_pQITD, pTXInterfaceDescr->ppAllMembers[ 0 ] );
- TYPELIB_DANGER_RELEASE( (typelib_TypeDescription *) pTXInterfaceDescr );
-
-
-
- uno_Any result;
-
- void * args[ 1 ];
- args[ 0 ] = &type_XInterface;
-
- pUnoI->pDispatcher(pUnoI, g_pQITD, &result, args, &pException);
-
-
- typelib_TypeDescriptionReference * ret_type = result.pType;
- switch (ret_type->eTypeClass)
- {
- case typelib_TypeClass_VOID: // common case
- typelib_typedescriptionreference_release( ret_type );
- break;
- case typelib_TypeClass_INTERFACE:
- // tweaky... avoiding acquire/ release pair
- typelib_typedescriptionreference_release( ret_type );
- pUno_XInv = (uno_Interface *) result.pReserved; // serving acquired interface
- break;
- default:
- uno_any_destruct(&result, 0);
- break;
- }
- }
-
-
- pUno_XInv->release(pUno_XInv);
-}
diff --git a/cppu/test/ObjectFactory/UnoObject.hxx b/cppu/test/ObjectFactory/UnoObject.hxx
deleted file mode 100644
index e2d9fba5aa6b..000000000000
--- a/cppu/test/ObjectFactory/UnoObject.hxx
+++ /dev/null
@@ -1,43 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_UnoObject_hxx
-#define INCLUDED_UnoObject_hxx
-
-
-#include "rtl/ustring.hxx"
-#include "uno/dispatcher.h"
-
-#include "callee.hxx"
-
-
-uno_Interface * UnoObject_create (Callee * pCallee);
-void UnoObject_release(uno_Interface * pUnoI);
-void UnoObject_call (uno_Interface * pUnoI);
-
-
-#endif
diff --git a/cppu/test/ObjectFactory/callee.hxx b/cppu/test/ObjectFactory/callee.hxx
deleted file mode 100644
index beb31d4f4dd9..000000000000
--- a/cppu/test/ObjectFactory/callee.hxx
+++ /dev/null
@@ -1,39 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_callee_hxx
-#define INCLUDED_callee_hxx
-
-
-#include <rtl/ustring.hxx>
-
-
-extern "C" {
-typedef void Callee(rtl_uString * pMethod_name);
-}
-
-#endif
diff --git a/cppu/test/ObjectFactory/empty.def b/cppu/test/ObjectFactory/empty.def
deleted file mode 100644
index b191c70cf03c..000000000000
--- a/cppu/test/ObjectFactory/empty.def
+++ /dev/null
@@ -1,5 +0,0 @@
-HEAPSIZE 0
-EXPORTS
-
-
-
diff --git a/cppu/test/ObjectFactory/makefile.mk b/cppu/test/ObjectFactory/makefile.mk
deleted file mode 100644
index 1064c760d538..000000000000
--- a/cppu/test/ObjectFactory/makefile.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := ObjectFactory
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
-
-
-.INCLUDE : settings.mk
-
-SHL1TARGET := ObjectFactory.$(COMID)
-SHL1IMPLIB := i$(SHL1TARGET)
-SHL1OBJS := $(SLO)$/UnoObject.obj $(SLO)$/CppObject.obj $(SLO)$/ObjectFactory.obj
-SHL1STDLIBS := $(CPPULIB) $(SALHELPERLIB) $(SALLIB)
-SHL1DEF := empty.def
-
-
-.INCLUDE : target.mk
-
-
diff --git a/cppu/test/Shield/Shield.test.cxx b/cppu/test/Shield/Shield.test.cxx
deleted file mode 100644
index d08b60e59a45..000000000000
--- a/cppu/test/Shield/Shield.test.cxx
+++ /dev/null
@@ -1,249 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <iostream>
-
-#include "sal/main.h"
-
-#include "uno/environment.hxx"
-
-#include "cppu/Shield.hxx"
-#include "cppu/EnvGuards.hxx"
-
-#include "../ObjectFactory/ObjectFactory.hxx"
-
-
-using namespace com::sun::star;
-
-
-static rtl::OUString s_comment;
-static uno::Environment s_env;
-
-extern "C" {
-static void s_callee_in(rtl_uString * pMethod_name)
-{
- rtl::OUString method_name(pMethod_name);
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_in method:\""));
- s_comment += method_name;
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \""));
- s_comment += uno::Environment::getCurrent().getTypeName();
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\""));
-
- if (!s_env.is())
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set"));
- return;
- }
-
- rtl::OUString reason;
- int valid = s_env.isValid(&reason);
-
- if (valid)
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: "));
- s_comment += reason;
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
- }
-}
-
-static void s_callee_out(rtl_uString * pMethod_name)
-{
- rtl::OUString method_name(pMethod_name);
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_out method:\""));
- s_comment += method_name;
-
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \""));
- s_comment += uno::Environment::getCurrent().getTypeName();
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\""));
-
- if (!s_env.is())
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set"));
- return;
- }
-
- rtl::OUString reason;
- int valid = s_env.isValid(&reason);
-
- if (!valid)
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- else
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: is in\n"));
-}
-}
-
-static uno::Reference<uno::XInterface> s_get_envObject(void)
-{
- cppu::EnvGuard envGuard(s_env);
-
- uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_in));
-
- return uno::Reference<uno::XInterface>(pObject, SAL_NO_ACQUIRE);
-}
-
-static uno::XInterface * s_x_get_flatObject(void)
-{
- uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>(
- createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))),
- s_callee_out));
-
- return pObject;
-}
-
-static uno::Reference<uno::XInterface> s_get_flatObject(void)
-{
- return uno::Reference<uno::XInterface>(s_x_get_flatObject(), SAL_NO_ACQUIRE);
-}
-
-
-static void s_test__shield(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__shield:\n"));
-
- uno::Reference<uno::XInterface> obj;
-
- {
- cppu::EnvGuard envGuard(s_env);
- obj.set(cppu::shield(s_get_envObject().get()), SAL_NO_ACQUIRE);
- }
-
- obj->acquire();
- obj->release();
-}
-
-static void s_test__unshield(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__unshield:\n"));
-
- uno::Reference<uno::XInterface> obj;
-
- {
- cppu::EnvGuard envGuard(s_env);
- uno::XInterface * pObj = s_x_get_flatObject();
- obj.set(cppu::unshield(pObj), SAL_NO_ACQUIRE);
-
- envGuard.clear();
- pObj->release();
- }
-
- {
- cppu::EnvGuard envGuard(s_env);
- obj.clear();
- }
-}
-
-static void s_test__shieldAny(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__shieldAny:\n"));
-
- uno::Any out;
-
- {
- cppu::EnvGuard envGuard(s_env);
- uno::Any any;
- any <<= s_get_envObject();
- cppu::shieldAny(any, &out);
- }
-
- uno::Reference<uno::XInterface> obj;
- out >>= obj;
-
- obj->acquire();
- obj->release();
-}
-
-static void s_test__unshieldAny(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__unshieldAny:\n"));
-
- uno::Any out;
- {
- uno::Any any(s_get_flatObject());
-
- {
- cppu::EnvGuard envGuard(s_env);
- cppu::unshieldAny(any, &out);
- }
- }
-
- {
- cppu::EnvGuard envGuard(s_env);
-
- uno::Reference<uno::XInterface> obj;
- out >>= obj;
-
- obj.clear();
- }
-}
-
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
-{
- uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).enter();
-
- s_env = uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")));
-
- s_test__shield();
- s_test__shieldAny();
- s_test__unshield();
- s_test__unshieldAny();
-
- s_env.clear();
-
-
- uno_Environment_enter(NULL);
-
-
- int ret;
- if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
-
- std::cerr
- << argv[0]
- << std::endl
- << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
diff --git a/cppu/test/Shield/makefile.mk b/cppu/test/Shield/makefile.mk
deleted file mode 100644
index 119516ced695..000000000000
--- a/cppu/test/Shield/makefile.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := Shield.test
-
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
-
-
-.INCLUDE : settings.mk
-
-
-.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
-ObjectFactory_LIB := -lObjectFactory.$(COMID)
-
-.ELSE
-ObjectFactory_LIB := $(LIBPRE) iObjectFactory.$(COMID).lib
-
-.ENDIF
-
-
-APP1TARGET := $(TARGET)
-APP1OBJS := $(OBJ)$/Shield.test.obj
-APP1STDLIBS := $(ObjectFactory_LIB) $(CPPULIB) $(SALLIB)
-
-
-.INCLUDE : target.mk
diff --git a/cppu/test/UnsafeBridge/UnsafeBridge.test.pl b/cppu/test/UnsafeBridge/UnsafeBridge.test.pl
deleted file mode 100755
index b61b92013387..000000000000
--- a/cppu/test/UnsafeBridge/UnsafeBridge.test.pl
+++ /dev/null
@@ -1,72 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-my $rc = 0;
-my $comment = "";
-
-
-@tests = (
- "EnvStack.tester :A:unsafe :A:unsafe \"-enter:A[0,not entered]-leave:A[0,not entered]\" :A:unsafe", # initially not entered&leave
- "EnvStack.tester :unsafe:A :unsafe:A \"-enter:unsafe:A[1,OK]-leave:unsafe:A[1,OK]\" :unsafe", # enter
- "EnvStack.tester \"\" :unsafe:A \"-into:unsafe:A[1,OK]\" :unsafe", # call into
- "EnvStack.tester :unsafe :A \"-into:A[0,not entered]\" :unsafe", # call out
- "EnvStack.tester \"\" :unsafe:affine:A \"-into:unsafe:affine:A[0,wrong thread]\" :unsafe", # wrong thread
- "env.tester.bin CPP:unsafe"
-);
-
-foreach $test (@tests) {
- $output = "";
-
- $cmd = $test;
- open TESTER, $cmd . "|";
- while (<TESTER>) {
- chomp;
-
- $output = $output . "\t" . $_ . "\n";
- }
- close TESTER ;
-
- if ($? != 0) {
- $comment = $comment . "TEST FAILED: " . $cmd . "\n";
- $comment = $comment . $output;
- }
- $rc = $rc + $?;
-}
-
-
-print $comment;
-
-if ($rc == 0) {
- print "*********** SUCCESS\n";
-}
-else {
- print "*********** FAILURE\n";
-}
diff --git a/cppu/test/alignment.idl b/cppu/test/alignment.idl
deleted file mode 100644
index 424c232fb14f..000000000000
--- a/cppu/test/alignment.idl
+++ /dev/null
@@ -1,205 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _TEST_ALIGNMENT_IDL_
-#define _TEST_ALIGNMENT_IDL_
-
-#include <com/sun/star/uno/XInterface.idl>
-
-module test
-{
-module alignment
-{
-
-struct C1
-{
- short n1;
-};
-struct C2 : C1
-{
- long n2;
-};
-struct C3 : C2
-{
- double d3;
- long n3;
-};
-struct C4 : C3
-{
- long n4;
- double d4;
-};
-struct C5 : C4
-{
- hyper n5;
- boolean b5;
-};
-
-struct C6 : C1
-{
- C5 c;
- boolean b6;
-};
-struct C7 : C1
-{
- C1 c;
- boolean b6;
-};
-struct C8 : C1
-{
- any a;
- boolean b6;
-};
-struct C9 : C1
-{
- string s;
- boolean b6;
-};
-struct C10 : C1
-{
- float f;
- boolean b6;
-};
-struct C11 : C1
-{
- double d;
- boolean b6;
-};
-struct C12 : C1
-{
- hyper n;
- boolean b6;
-};
-struct C13 : C1
-{
- unsigned hyper n;
- boolean b6;
-};
-struct C14 : C1
-{
- ::com::sun::star::uno::XInterface x;
- boolean b6;
-};
-
-struct C1x
-{
- short sx;
- double dx;
-};
-
-struct C6x : C1x
-{
- C5 c;
- boolean b6;
-};
-struct C7x : C1x
-{
- C1 c;
- boolean b6;
-};
-struct C8x : C1x
-{
- any a;
- boolean b6;
-};
-struct C9x : C1x
-{
- string s;
- boolean b6;
-};
-struct C10x : C1x
-{
- float f;
- boolean b6;
-};
-struct C11x : C1x
-{
- double d;
- boolean b6;
-};
-struct C12x : C1x
-{
- hyper n;
- boolean b6;
-};
-struct C13x : C1x
-{
- unsigned hyper n;
- boolean b6;
-};
-struct C14x : C1x
-{
- ::com::sun::star::uno::XInterface x;
- boolean b6;
-};
-
-
-struct D
-{
- short d;
- long e;
-};
-struct E
-{
- boolean a;
- boolean b;
- boolean c;
- short d;
- long e;
-};
-
-struct M
-{
- long n;
- short o;
-};
-
-struct N : M
-{
- short p;
-};
-struct N2
-{
- M m;
- short p;
-};
-struct O : M
-{
- double p;
-};
-struct O2 : O
-{
- double p2;
-};
-struct P : N
-{
- double p2;
-};
-
-}; // alignment
-}; // test
-
-#endif
diff --git a/cppu/test/alignment/diagnose.h b/cppu/test/alignment/diagnose.h
deleted file mode 100644
index 1568f70adf47..000000000000
--- a/cppu/test/alignment/diagnose.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef DIAGNOSE_H
-#define DIAGNOSE_H
-
-#include <sal/types.h>
-#include <stdio.h>
-
-#if defined(__GNUC__) && (defined(LINUX) || defined(FREEBSD)) && defined(INTEL)
-#define ALIGNMENT(s, n) __alignof__ (s)
-#else
-#define ALIGNMENT(s, n) n
-#endif
-
-#define OFFSET_OF( s, m ) ((sal_Size)((char *)&((s *)16)->m -16))
-
-#define BINTEST_VERIFY( c ) \
- if (! (c)) { fprintf( stderr, "### binary compatibility test failed: " #c " [line %d]!!!\n", __LINE__ ); abort(); }
-
-#if OSL_DEBUG_LEVEL > 1
-
-#define BINTEST_VERIFYOFFSET( s, m, n ) \
- fprintf( stderr, "> OFFSET_OF(" #s ", " #m ") = %lu\n", static_cast< unsigned long >(OFFSET_OF(s, m)) ); \
- if (OFFSET_OF(s, m) != n) { fprintf( stderr, "### OFFSET_OF(" #s ", " #m ") = %d instead of expected %d!!!\n", OFFSET_OF(s, m), n ); abort(); }
-#define BINTEST_VERIFYSIZE( s, n ) \
- fprintf( stderr, "> sizeof (" #s ") = %lu\n", static_cast< unsigned long >(sizeof(s)) ); \
- if (sizeof(s) != n) { fprintf( stderr, "### sizeof(" #s ") = %d instead of expected %d!!!\n", sizeof(s), n ); abort(); }
-#define BINTEST_VERIFYALIGNMENT( s, n ) \
- fprintf( stderr, "> alignment of " #s " = %d\n", ALIGNMENT(s, n) ); \
- if (ALIGNMENT(s, n) != n) { fprintf( stderr, "### alignment of " #s " = %d instead of expected %d!!!\n", ALIGNMENT(s, n), n ); abort(); }
-
-#else
-
-#define BINTEST_VERIFYOFFSET( s, m, n ) \
- if (OFFSET_OF(s, m) != n) { fprintf( stderr, "### OFFSET_OF(" #s ", " #m ") = %lu instead of expected %lu!!!\n", static_cast< unsigned long >(OFFSET_OF(s, m)), static_cast< unsigned long >(n) ); abort(); }
-#define BINTEST_VERIFYSIZE( s, n ) \
- if (sizeof(s) != n) { fprintf( stderr, "### sizeof(" #s ") = %lu instead of expected %lu!!!\n", static_cast< unsigned long >(sizeof(s)), static_cast< unsigned long >(n) ); abort(); }
-#define BINTEST_VERIFYALIGNMENT( s, n ) \
- if (ALIGNMENT(s, n) != n) { fprintf( stderr, "### alignment of " #s " = %d instead of expected %d!!!\n", ALIGNMENT(s, n), n ); abort(); }
-
-#endif
-
-#endif
diff --git a/cppu/test/alignment/makefile.mk b/cppu/test/alignment/makefile.mk
deleted file mode 100644
index 03e4d2de23a8..000000000000
--- a/cppu/test/alignment/makefile.mk
+++ /dev/null
@@ -1,84 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-#
-# build /test first, then /test/alignment
-#
-
-PRJ=..$/..
-PRJNAME=cppu
-TARGET=alignment
-LIBTARGET=NO
-ENABLE_EXCEPTIONS=TRUE
-NO_BSYMBOLIC=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-UNOUCRDEP=$(BIN)$/testcppu.rdb
-UNOUCRRDB=$(BIN)$/testcppu.rdb
-UNOUCROUT=$(INCCOM)$/test$/alignment
-INCPRE+=$(INCCOM)$/test -I$(INCCOM)$/test$/alignment -I$(PRJ)$/test$/alignment
-
-.IF "$(src_env)" == ""
-merge_rdb=$(SOLARBINDIR)$/udkapi.rdb
-.ELSE
-merge_rdb=$(SOLARBINDIR)$/applicat.rdb
-.ENDIF
-
-DEPOBJFILES= \
- $(OBJ)$/pass1.obj \
- $(OBJ)$/pass2.obj
-
-APP1OBJS = $(OBJ)$/pass1.obj
-APP1STDLIBS += $(CPPUHELPERLIB) $(CPPULIB) $(REGLIB) $(SALHELPERLIB) $(SALLIB)
-APP1TARGET = pass1
-
-APP2OBJS = $(OBJ)$/pass2.obj
-APP2STDLIBS = $(SALLIB)
-APP2TARGET = pass2
-
-# --- Targets ------------------------------------------------------
-
-.IF "$(depend)" == ""
-ALLTAR: execute_pass2
-.ELSE
-ALL: ALLDEP
-.ENDIF
-
-.INCLUDE : target.mk
-
-$(MISC)$/pass2.cxx: $(APP1TARGETN)
- regmerge $(UNOUCRRDB) / $(merge_rdb)
- cppumaker @$(mktmp $(CPPUMAKERFLAGS) -BUCR -O$(UNOUCROUT) $(foreach,c,$(shell @$(APP1TARGETN) -env:UNO_TYPES={$(subst,\,\\ $(UNOUCRRDB))} $(subst,\,\\ $(MISC)$/pass2.cxx) dump_types) -T$c) $(UNOUCRRDB))
-
-execute_pass2: $(APP2TARGETN)
- $(APP2TARGETN)
-
diff --git a/cppu/test/alignment/pass1.cxx b/cppu/test/alignment/pass1.cxx
deleted file mode 100644
index f60446c82639..000000000000
--- a/cppu/test/alignment/pass1.cxx
+++ /dev/null
@@ -1,240 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-
-#include "sal/main.h"
-
-#include <stdio.h>
-#include <vector>
-
-#include <rtl/string.hxx>
-#include <rtl/strbuf.hxx>
-#include <rtl/bootstrap.hxx>
-#include <rtl/process.h>
-
-#include <registry/reflread.hxx>
-
-// starting the executable:
-// -env:UNO_CFG_URL=local;<absolute_path>..\\..\\test\\cfg_data;<absolute_path>\\cfg_update
-// -env:UNO_TYPES=cpputest.rdb
-
-#include <cppuhelper/bootstrap.hxx>
-
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#include <com/sun/star/registry/XSimpleRegistry.hpp>
-
-#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) )
-#define OSTR(x) ::rtl::OUStringToOString( x, RTL_TEXTENCODING_ASCII_US )
-
-
-using namespace ::cppu;
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-
-
-static void find_all_structs(
- Reference< registry::XRegistryKey > const & xKey,
- ::std::vector< OUString > * pNames )
-{
- if (xKey.is() && xKey->isValid())
- {
- if (xKey->getValueType() == registry::RegistryValueType_BINARY)
- {
- Sequence< sal_Int8 > aBytes( xKey->getBinaryValue() );
- RegistryTypeReader aReader(
- (const sal_uInt8 *)aBytes.getConstArray(),
- aBytes.getLength(), sal_False );
-
- switch (aReader.getTypeClass())
- {
- case RT_TYPE_EXCEPTION:
- case RT_TYPE_STRUCT:
- pNames->push_back( aReader.getTypeName().replace( '/', '.' ) );
- break;
- default:
- break;
- }
- }
-
- Sequence< Reference< registry::XRegistryKey > > keys( xKey->openKeys() );
- Reference< registry::XRegistryKey > const * pKeys = keys.getConstArray();
- for ( sal_Int32 nPos = keys.getLength(); nPos--; )
- {
- find_all_structs( pKeys[ nPos ], pNames );
- }
- }
-}
-
-static OString makeIncludeName( OUString const & name ) SAL_THROW( () )
-{
- return OSTR(name.replace( '.', '/' ));
-}
-static OString makeCppName( OUString const & name ) SAL_THROW( () )
-{
- OStringBuffer buf( 64 );
- OString str( OSTR(name) );
- sal_Int32 n = 0;
- do
- {
- buf.append( str.getToken( 0, '.', n ) );
- if (n >= 0)
- buf.append( "::" );
- }
- while (n >= 0);
- return buf.makeStringAndClear();
-}
-
-//==================================================================================================
-SAL_IMPLEMENT_MAIN()
-{
- sal_Int32 argc = rtl_getAppCommandArgCount();
- if (argc < 1)
- {
- fprintf( stderr, "usage: pass1 pass2_source [typelist_to_stdout]\n" );
- return 1;
- }
-
- try
- {
- // determine types rdb
- OUString rdb_name;
- Bootstrap bootstrap;
- if (!bootstrap.getFrom( OUSTR("UNO_TYPES"), rdb_name ) || !rdb_name.getLength())
- {
- fprintf(
- stderr,
- "### no UNO_TYPES registry found!!!\n\n"
- "usage: pass1 pass2_source [typelist_to_stdout]\n" );
- return 1;
- }
-
- Reference< XComponentContext > xContext( defaultBootstrap_InitialComponentContext() );
-
- // read out all struct names from given registry
- Reference< registry::XSimpleRegistry > xSimReg( createSimpleRegistry() );
- OSL_ASSERT( xSimReg.is() );
- xSimReg->open( rdb_name, sal_True, sal_False );
- OSL_ASSERT( xSimReg->isValid() );
- Reference< registry::XRegistryKey > xKey( xSimReg->getRootKey() );
- OSL_ASSERT( xKey.is() && xKey->isValid() );
-
- ::std::vector< OUString > names;
- names.reserve( 128 );
- find_all_structs( xKey->openKey( OUSTR("UCR") ), &names );
-
- OUString fileName;
- OSL_VERIFY( osl_Process_E_None == rtl_getAppCommandArg( 0, &fileName.pData ) );
- bool bDumpStdOut = (argc > 1);
-
- // generate pass2 output file [and type list]
- OString str( OSTR(fileName) );
- FILE * hPass2 = fopen( str.getStr(), "w" );
- OSL_ASSERT( hPass2 );
-
- size_t nPos;
- for ( nPos = names.size(); nPos--; )
- {
- OUString const & name = names[ nPos ];
- if (bDumpStdOut)
- {
- // type name on stdout
- OString str2( OSTR(name) );
- fprintf( stdout, "%s\n", str2.getStr() );
- }
- // all includes
- OString includeName( makeIncludeName( name ) );
- fprintf( hPass2, "#include <%s.hdl>\n", includeName.getStr() );
- }
- // include diagnose.h
- fprintf(
- hPass2,
- "\n#include <diagnose.h>\n"
- "#include \"sal/main.h\"\n\n"
- "SAL_IMPLEMENT_MAIN()\n{\n" );
- // generate all type checks
- for ( nPos = names.size(); nPos--; )
- {
- OUString const & name = names[ nPos ];
- typelib_TypeDescription * pTD = 0;
- typelib_typedescription_getByName( &pTD, name.pData );
- if (pTD)
- {
- if (! pTD->bComplete)
- {
- typelib_typedescription_complete( &pTD );
- }
- typelib_CompoundTypeDescription * pCTD = (typelib_CompoundTypeDescription *)pTD;
-
- OString cppName( makeCppName( name ) );
- fprintf(
- hPass2, "\tBINTEST_VERIFYSIZE( %s, %ld );\n",
- cppName.getStr(), static_cast< long >(pTD->nSize) );
- fprintf(
- hPass2, "\tBINTEST_VERIFYALIGNMENT( %s, %ld );\n",
- cppName.getStr(), static_cast< long >(pTD->nAlignment) );
- // offset checks
- for ( sal_Int32 nPos2 = pCTD->nMembers; nPos2--; )
- {
- OString memberName( OSTR(pCTD->ppMemberNames[ nPos2 ]) );
- fprintf(
- hPass2, "\tBINTEST_VERIFYOFFSET( %s, %s, %ld );\n",
- cppName.getStr(), memberName.getStr(),
- static_cast< long >(pCTD->pMemberOffsets[ nPos2 ]) );
- }
- typelib_typedescription_release( pTD );
- }
- else
- {
- OString str2( OSTR(name) );
- fprintf( stderr, "### cannot dump type %s!!!\n", str2.getStr() );
- }
- }
- fprintf(
- hPass2,
- "\n\tfprintf( stdout, \"> alignment test succeeded.\\n\" );\n"
- "\treturn 0;\n}\n\n" );
- fclose( hPass2 );
-
- Reference< lang::XComponent > xComp( xContext, UNO_QUERY );
- if (xComp.is())
- {
- xComp->dispose();
- }
- return 0;
- }
- catch (Exception & exc)
- {
- OString str( OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ) );
- ::fprintf( stderr, "# caught exception: %s\n", str.getStr() );
- return 1;
- }
-}
diff --git a/cppu/test/cascade_mapping/TestMapping.cxx b/cppu/test/cascade_mapping/TestMapping.cxx
deleted file mode 100644
index 724946c5b8c0..000000000000
--- a/cppu/test/cascade_mapping/TestMapping.cxx
+++ /dev/null
@@ -1,194 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "osl/interlck.h"
-#include "uno/dispatcher.h"
-#include "uno/mapping.hxx"
-
-#include "TestProxy.hxx"
-
-
-#ifdef LOG_LIFECYCLE
-#define LOG_LIFECYCLE_TestMapping
-#endif
-
-#define LOG_LIFECYCLE_TestMapping
-#ifdef LOG_LIFECYCLE_TestMapping
-# include <iostream>
-# define LOG_LIFECYCLE_TestMapping_emit(x) x
-
-#else
-# define LOG_LIFECYCLE_TestMapping_emit(x)
-
-#endif
-
-
-class SAL_DLLPRIVATE TestMapping : public uno_Mapping
-{
-private:
- oslInterlockedCount m_nCount;
- uno_ExtEnvironment * m_pFrom;
- uno_ExtEnvironment * m_pTo;
-
-public:
- explicit TestMapping(uno_Environment * pFrom, uno_Environment * pTo);
- ~TestMapping(void);
-
- void acquire() SAL_THROW(());
- void release() SAL_THROW(());
-
- void SAL_CALL mapInterface(uno_Interface ** ppOut,
- uno_Interface * pUnoI,
- typelib_InterfaceTypeDescription * pTypeDescr
- )
- SAL_THROW_EXTERN_C();
-};
-
-
-extern "C" {
-static void SAL_CALL s_mapInterface(
- uno_Mapping * pMapping,
- void ** ppOut,
- void * pUnoI,
- typelib_InterfaceTypeDescription * pTypeDescr )
- SAL_THROW_EXTERN_C()
-{
- TestMapping * pTestMapping = static_cast<TestMapping *>(pMapping);
- pTestMapping->mapInterface((uno_Interface **)ppOut, (uno_Interface *)pUnoI, pTypeDescr);
-}
-
-
-static void SAL_CALL s_acquire(uno_Mapping * pMapping) SAL_THROW_EXTERN_C()
-{
- TestMapping * pTestMapping = static_cast<TestMapping *>(pMapping);
- pTestMapping->acquire();
-}
-
-
-static void SAL_CALL s_release(uno_Mapping * pMapping) SAL_THROW_EXTERN_C()
-{
- TestMapping * pTestMapping = static_cast<TestMapping * >(pMapping);
- pTestMapping->release();
-}
-
-static void SAL_CALL s_free(uno_Mapping * pMapping) SAL_THROW_EXTERN_C()
-{
- TestMapping * pTestMapping = static_cast<TestMapping * >(pMapping);
- delete pTestMapping;
-}
-}
-
-TestMapping::TestMapping(uno_Environment * pFrom, uno_Environment * pTo)
- SAL_THROW( () )
- : m_nCount(1),
- m_pFrom(reinterpret_cast<uno_ExtEnvironment *>(pFrom)),
- m_pTo (reinterpret_cast<uno_ExtEnvironment *>(pTo))
-{
- LOG_LIFECYCLE_TestMapping_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestMapping::TestMapping", this));
-
- m_pFrom->aBase.acquire(&m_pFrom->aBase);
- m_pTo ->aBase.acquire(&m_pTo ->aBase);
-
- uno_Mapping::acquire = s_acquire;
- uno_Mapping::release = s_release;
- uno_Mapping::mapInterface = s_mapInterface;
-}
-
-TestMapping::~TestMapping(void)
-{
- LOG_LIFECYCLE_TestMapping_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestMapping::~TestMapping", this));
-
- m_pFrom->aBase.release(&m_pFrom->aBase);
- m_pTo ->aBase.release(&m_pTo ->aBase);
-}
-
-
-void TestMapping::acquire() SAL_THROW(())
-{
- if (osl_incrementInterlockedCount(&m_nCount) == 1)
- {
- uno_Mapping * pMapping = this;
-
- ::uno_registerMapping(&pMapping, s_free, &m_pFrom->aBase, &m_pTo->aBase, NULL);
- }
-}
-
-void TestMapping::release() SAL_THROW(())
-{
- if (osl_decrementInterlockedCount(&m_nCount) == 0)
- ::uno_revokeMapping(this);
-}
-
-
-void SAL_CALL TestMapping::mapInterface(
- uno_Interface ** ppOut,
- uno_Interface * pUnoI,
- typelib_InterfaceTypeDescription * pTypeDescr )
- SAL_THROW_EXTERN_C()
-{
- // get object id of uno interface to be wrapped
- rtl_uString * pOId = 0;
- m_pFrom->getObjectIdentifier(m_pFrom, &pOId, pUnoI);
-
- OSL_ASSERT(pOId);
-
- if (*ppOut)
- {
- (*ppOut)->release(*ppOut);
- *ppOut = 0;
- }
-
- // try to get any known interface from target environment
- m_pTo->getRegisteredInterface(m_pTo, (void **)ppOut, pOId, pTypeDescr);
- if (!*ppOut) // not yet there, register new proxy interface
- {
- // try to publish a new proxy (ref count initially 1)
- TestProxy * pTestProxy = new TestProxy(pUnoI, pOId, pTypeDescr, m_pTo, m_pFrom);
-
- // proxy may be exchanged during registration
- m_pTo->registerProxyInterface(m_pTo,(void **)&pTestProxy, TestProxy_free, pOId, pTypeDescr);
-
- *ppOut = pTestProxy;
- }
-
- rtl_uString_release(pOId);
-}
-
-
-extern "C" void SAL_DLLPUBLIC_EXPORT SAL_CALL uno_initEnvironment(uno_Environment * /*pEnv*/)
- SAL_THROW_EXTERN_C()
-{
-}
-
-extern "C" void uno_ext_getMapping(uno_Mapping ** ppMapping,
- uno_Environment * pFrom,
- uno_Environment * pTo )
-{
- *ppMapping = new TestMapping(pFrom, pTo);
-
- ::uno_registerMapping(ppMapping, s_free, pFrom, pTo, NULL);
-}
diff --git a/cppu/test/cascade_mapping/TestMapping.def b/cppu/test/cascade_mapping/TestMapping.def
deleted file mode 100644
index e8b4824657f9..000000000000
--- a/cppu/test/cascade_mapping/TestMapping.def
+++ /dev/null
@@ -1,11 +0,0 @@
-LIBRARY cppu3
-DESCRIPTION 'StarView 3.00 680 m124'
-DATA READ WRITE SHARED
-HEAPSIZE 0
-EXPORTS
- uno_initEnvironment
- uno_ext_getMapping
-
-
-
-
diff --git a/cppu/test/cascade_mapping/TestProxy.cxx b/cppu/test/cascade_mapping/TestProxy.cxx
deleted file mode 100644
index d72e11c2ecab..000000000000
--- a/cppu/test/cascade_mapping/TestProxy.cxx
+++ /dev/null
@@ -1,179 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "uno/mapping.hxx"
-#include "cppu/EnvDcp.hxx"
-
-#include "../mapping_tester/Mapping.tester.hxx"
-
-#include "TestProxy.hxx"
-
-
-#ifdef LOG_LIFECYCLE
-#define LOG_LIFECYCLE_TestProxy
-#endif
-
-#define LOG_LIFECYCLE_TestProxy
-#ifdef LOG_LIFECYCLE_TestProxy
-# include <iostream>
-# define LOG_LIFECYCLE_TestProxy_emit(x) x
-
-#else
-# define LOG_LIFECYCLE_TestProxy_emit(x)
-
-#endif
-
-
-using namespace com::sun::star;
-
-extern "C" void SAL_CALL TestProxy_free(uno_ExtEnvironment * /*pEnv*/, void * pObject)
- SAL_THROW_EXTERN_C()
-{
- TestProxy * pTestProxy = reinterpret_cast<TestProxy *>(pObject);
- delete pTestProxy;
-}
-
-
-extern "C" {
-static void SAL_CALL s_acquire(uno_Interface * pUnoI) SAL_THROW_EXTERN_C()
-{
- TestProxy * pTestProxy = static_cast<TestProxy *>(pUnoI);
- pTestProxy->acquire();
-}
-
-static void SAL_CALL s_release(uno_Interface * pUnoI) SAL_THROW_EXTERN_C()
-{
- TestProxy * pTestProxy = static_cast<TestProxy *>(pUnoI);
- pTestProxy->release();
-}
-
-static void SAL_CALL s_dispatch(uno_Interface * pUnoI,
- typelib_TypeDescription const * pMemberType,
- void * pReturn,
- void * pArgs[],
- uno_Any ** ppException)
- SAL_THROW_EXTERN_C()
-{
- TestProxy * pThis = static_cast<TestProxy *>(pUnoI);
- pThis->dispatch(pMemberType, pReturn, pArgs, ppException);
-}
-}
-
-TestProxy::TestProxy(uno_Interface * pObject,
- rtl::OUString const & oid,
- typelib_InterfaceTypeDescription * pTypeDescr,
- uno_ExtEnvironment * pFrom_extEnv,
- uno_ExtEnvironment * pTo_extEnv)
- : m_nCount (1),
- m_from_envDcp(pFrom_extEnv->aBase.pTypeName),
- m_to_envDcp (pTo_extEnv ->aBase.pTypeName),
- m_oid (oid),
- m_pTypeDescr (pTypeDescr)
-{
- LOG_LIFECYCLE_TestProxy_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestProxy::TestProxy", this));
-
- // uno_Interface
- uno_Interface::acquire = s_acquire;
- uno_Interface::release = s_release;
- uno_Interface::pDispatcher = s_dispatch;
-
- m_theObject = pObject;
- m_theObject->acquire(m_theObject);
-
- typelib_typedescription_acquire(&pTypeDescr->aBase);
-
- m_pFrom_extEnv = pFrom_extEnv;
- m_pFrom_extEnv->aBase.acquire(&m_pFrom_extEnv->aBase);
-
- m_pTo_extEnv = pTo_extEnv;
- m_pTo_extEnv->aBase.acquire(&m_pTo_extEnv->aBase);
-
- m_pTo_extEnv->registerInterface(m_pTo_extEnv, reinterpret_cast<void **>(&pObject), oid.pData, pTypeDescr);
-}
-
-TestProxy::~TestProxy(void)
-{
- LOG_LIFECYCLE_TestProxy_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestProxy::~TestProxy", this));
-
- m_pTo_extEnv->revokeInterface(m_pTo_extEnv, reinterpret_cast<void *>(m_theObject));
-
- typelib_typedescription_release(&m_pTypeDescr->aBase);
- m_theObject->release(m_theObject);
- m_pFrom_extEnv->aBase.release(&m_pFrom_extEnv->aBase);
- m_pTo_extEnv ->aBase.release(&m_pTo_extEnv->aBase);
-}
-
-void TestProxy::acquire() SAL_THROW(())
-{
- if (osl_incrementInterlockedCount(&m_nCount) == 1)
- {
- uno_Interface * pThis = this;
- m_pTo_extEnv->registerProxyInterface(m_pTo_extEnv,
- (void **)&pThis,
- TestProxy_free,
- m_oid.pData,
- m_pTypeDescr);
- OSL_ASSERT(pThis == this);
- }
-}
-
-void TestProxy::release() SAL_THROW(())
-{
- if (osl_decrementInterlockedCount(&m_nCount) == 0)
- {
- m_pFrom_extEnv->revokeInterface(m_pFrom_extEnv, this);
- }
-}
-
-void TestProxy::dispatch(typelib_TypeDescription const * pMemberType,
- void * pReturn,
- void * pArgs[],
- uno_Any ** ppException)
-{
- {
- rtl::OUString arrow(RTL_CONSTASCII_USTRINGPARAM("-->"));
-
- if (!g_custom.getLength())
- g_custom += m_from_envDcp;
-
- g_custom += arrow;
- g_custom += m_to_envDcp;
-
- m_theObject->pDispatcher(m_theObject, pMemberType, pReturn, pArgs, ppException);
-
- uno_Any * any = (uno_Any *)pReturn;
-
- void * pout = NULL;
-
- uno::Mapping mapping(m_to_envDcp, m_from_envDcp);
- mapping.mapInterface(&pout, any->pReserved, any->pType);
-
- ((uno_Interface *)any->pReserved)->release((uno_Interface*)any->pReserved);
- any->pReserved = pout;
- }
-}
-
diff --git a/cppu/test/cascade_mapping/TestProxy.hxx b/cppu/test/cascade_mapping/TestProxy.hxx
deleted file mode 100644
index 3dae15ee8620..000000000000
--- a/cppu/test/cascade_mapping/TestProxy.hxx
+++ /dev/null
@@ -1,70 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_TestProxy_hxx
-#define INCLUDED_TestProxy_hxx
-
-#include "osl/interlck.h"
-#include "uno/dispatcher.h"
-#include "uno/environment.hxx"
-
-
-extern "C" void SAL_CALL TestProxy_free(uno_ExtEnvironment * pEnv, void * pObject) SAL_THROW_EXTERN_C();
-
-
-class SAL_DLLPRIVATE TestProxy : public uno_Interface
-{
-private:
- uno_Interface * m_theObject;
- uno_ExtEnvironment * m_pFrom_extEnv;
- uno_ExtEnvironment * m_pTo_extEnv;
- oslInterlockedCount m_nCount;
- rtl::OUString m_from_envDcp;
- rtl::OUString m_to_envDcp;
- rtl::OUString m_oid;
- typelib_InterfaceTypeDescription * m_pTypeDescr;
-
-public:
- explicit TestProxy(uno_Interface * pObject,
- rtl::OUString const & oid,
- typelib_InterfaceTypeDescription * pTypeDescr,
- uno_ExtEnvironment * pFrom_env,
- uno_ExtEnvironment * pExtEnvironment);
- ~TestProxy(void);
-
-
- void acquire() SAL_THROW(());
- void release() SAL_THROW(());
-
- void dispatch(typelib_TypeDescription const * pMemberType,
- void * pReturn,
- void * pArgs[],
- uno_Any ** ppException);
-};
-
-
-#endif
diff --git a/cppu/test/cascade_mapping/cascade_mapping.test.pl b/cppu/test/cascade_mapping/cascade_mapping.test.pl
deleted file mode 100755
index 265010a56abb..000000000000
--- a/cppu/test/cascade_mapping/cascade_mapping.test.pl
+++ /dev/null
@@ -1,91 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-my $rc = 0;
-my $comment = "";
-
-
-@tests=(
-"mapping.tester uno:test uno -s path.test \"uno:test-->uno\"",
-"mapping.tester uno uno:test -s path.test \"uno-->uno:test\"",
-"mapping.tester uno:test:bla uno -s path.test \"uno:test:bla-->uno:test-->uno\"",
-"mapping.tester uno uno:test:bla -s path.test \"uno-->uno:test-->uno:test:bla\"",
-"mapping.tester uno:test:bla:blubb uno -s path.test \"uno:test:bla:blubb-->uno:test:bla-->uno:test-->uno\"",
-"mapping.tester uno uno:test:bla:blubb -s path.test \"uno-->uno:test-->uno:test:bla-->uno:test:bla:blubb\"",
-"mapping.tester uno:bla uno:test -s path.test \"uno:bla-->uno-->uno:test\"",
-"mapping.tester uno:test uno:bla -s path.test \"uno:test-->uno-->uno:bla\"",
-"mapping.tester uno:test:blubb uno:bla -s path.test \"uno:test:blubb-->uno:test-->uno-->uno:bla\"",
-"mapping.tester uno:test uno:bla:blubb -s path.test \"uno:test-->uno-->uno:bla-->uno:bla:blubb\"",
-"mapping.tester uno:test:bla uno:test:blubb -s path.test \"uno:test:bla-->uno:test-->uno:test:blubb\"",
-"mapping.tester CPP:bla uno -s path.test \"CPP:bla-->uno:bla-->uno\"",
-"mapping.tester uno CPP:bla -s path.test \"uno-->uno:bla-->CPP:bla\"",
-"mapping.tester CPP uno:bla -s path.test \"CPP-->uno-->uno:bla\"",
-"mapping.tester CPP:bla uno:blubb -s path.test \"CPP:bla-->uno:bla-->uno-->uno:blubb\"",
-"mapping.tester CPP:test:bla uno:test:blubb -s path.test \"CPP:test:bla-->uno:test:bla-->uno:test-->uno:test:blubb\"",
-"mapping.tester CPP:bla CPP -s path.test \"CPP:bla-->uno:bla-->uno-->CPP\"",
-"mapping.tester CPP CPP:bla -s path.test \"CPP-->uno-->uno:bla-->CPP:bla\"",
-"mapping.tester CPP:bla:test CPP -s path.test \"CPP:bla:test-->uno:bla:test-->uno:bla-->uno-->CPP\"",
-"mapping.tester CPP CPP:bla:test -s path.test \"CPP-->uno-->uno:bla-->uno:bla:test-->CPP:bla:test\"",
-"mapping.tester CPP:bla CPP:blubb -s path.test \"CPP:bla-->uno:bla-->uno-->uno:blubb-->CPP:blubb\"",
-"mapping.tester CPP:test:bla CPP:blubb -s path.test \"CPP:test:bla-->uno:test:bla-->uno:test-->uno-->uno:blubb-->CPP:blubb\"",
-"mapping.tester CPP:bla CPP:test:blubb -s path.test \"CPP:bla-->uno:bla-->uno-->uno:test-->uno:test:blubb-->CPP:test:blubb\"",
-"mapping.tester CPP:bae:bla CPP:test:blubb -s path.test \"CPP:bae:bla-->uno:bae:bla-->uno:bae-->uno-->uno:test-->uno:test:blubb-->CPP:test:blubb\"",
-"mapping.tester CPP:test:bla CPP:test:blubb -s path.test \"CPP:test:bla-->uno:test:bla-->uno:test-->uno:test:blubb-->CPP:test:blubb\""
-);
-
-foreach $test (@tests) {
- $output = "";
-
- $cmd = $test;
- open TESTER, $cmd . "|";
- while (<TESTER>) {
- chomp;
-
- $output = $output . "\t" . $_ . "\n";
- }
- close TESTER ;
-
- if ($? != 0) {
- $comment = $comment . "TEST FAILED: " . $cmd . "\n";
- $comment = $comment . $output;
- }
- $rc = $rc + $?;
-}
-
-
-print $comment;
-
-if ($rc == 0) {
- print "*********** SUCCESS\n";
-}
-else {
- print "*********** FAILURE\n";
-}
diff --git a/cppu/test/cascade_mapping/makefile.mk b/cppu/test/cascade_mapping/makefile.mk
deleted file mode 100644
index 1d5434a6b940..000000000000
--- a/cppu/test/cascade_mapping/makefile.mk
+++ /dev/null
@@ -1,90 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := cascade_mappping.test.pl
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-
-
-.INCLUDE : settings.mk
-
-CFLAGS += -fPIC
-
-VERSIONOBJ := # NO GetVersionInfo symbols :-)
-ENVINCPRE := -I$(OUT)$/inc$/$(TARGET)
-
-HLD_DLLPRE := $(DLLPRE)
-DLLPRE :=
-
-
-SHL1TARGET := path.test
-SHL1IMPLIB := i$(SHL1TARGET)
-SHL1OBJS := $(OBJ)$/path.test.obj
-SHL1DEF := path.test.def
-SHL1STDLIBS := $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB)
-.IF "$(GUI)"=="WNT"
-SHL1STDLIBS += $(BIN)$/mapping.tester.lib
-.ENDIF
-
-SHL2TARGET := $(HLD_DLLPRE)bla_uno_uno
-SHL2IMPLIB := i$(SHL2TARGET)
-SHL2OBJS := $(SLO)$/TestMapping.obj $(SLO)$/TestProxy.obj
-SHL2STDLIBS := $(CPPULIB) $(SALHELPERLIB) $(SALLIB)
-SHL2DEF := TestMapping.def
-.IF "$(GUI)"=="WNT"
-SHL2STDLIBS += $(BIN)$/mapping.tester.lib
-.ENDIF
-
-SHL3TARGET := $(HLD_DLLPRE)blubb_uno_uno
-SHL3IMPLIB := i$(SHL3TARGET)
-SHL3OBJS := $(SHL2OBJS)
-SHL3STDLIBS := $(SHL2STDLIBS)
-SHL3DEF := $(SHL2DEF)
-
-SHL4TARGET := $(HLD_DLLPRE)bae_uno_uno
-SHL4IMPLIB := i$(SHL4TARGET)
-SHL4OBJS := $(SHL2OBJS)
-SHL4STDLIBS := $(SHL2STDLIBS)
-SHL4DEF := $(SHL2DEF)
-
-SHL5TARGET := $(HLD_DLLPRE)test_uno_uno
-SHL5IMPLIB := i$(SHL5TARGET)
-SHL5OBJS := $(SHL2OBJS)
-SHL5STDLIBS := $(SHL2STDLIBS)
-SHL5DEF := $(SHL2DEF)
-
-
-.INCLUDE : target.mk
-
-
-ALLTAR: $(BIN)$/$(TARGET)
-
-$(BIN)$/$(TARGET): cascade_mapping.test.pl
- @+$(COPY) $^ $@
diff --git a/cppu/test/cascade_mapping/path.test.cxx b/cppu/test/cascade_mapping/path.test.cxx
deleted file mode 100644
index 1b2ddb1ebdfe..000000000000
--- a/cppu/test/cascade_mapping/path.test.cxx
+++ /dev/null
@@ -1,60 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "rtl/ustring.hxx"
-
-#include "../mapping_tester/Mapping.tester.hxx"
-
-
-D_CALLEE
-{
- rtl::OUString const method_name(pMethod_name);
-
- if (g_check)
- {
- g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tmethod: "));
- g_result += method_name;
- g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - mapping purpose path test --> "));
-
- if (g_ref.compareTo(g_custom) == 0)
- {
- g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n"));
- }
- else
- {
- g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n"));
- g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\t\texpected: "));
- g_result += g_ref;
- g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\t\t got: "));
- g_result += g_custom;
- g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
- }
- }
-}
-
diff --git a/cppu/test/cascade_mapping/path.test.def b/cppu/test/cascade_mapping/path.test.def
deleted file mode 100644
index ab7d8b00c62c..000000000000
--- a/cppu/test/cascade_mapping/path.test.def
+++ /dev/null
@@ -1,8 +0,0 @@
-LIBRARY cppu3
-DESCRIPTION 'StarView 3.00 680 m124'
-DATA READ WRITE SHARED
-HEAPSIZE 0
-EXPORTS
- CALLEE
-
-
diff --git a/cppu/test/cpputest.idl b/cppu/test/cpputest.idl
deleted file mode 100644
index 89302cb02585..000000000000
--- a/cppu/test/cpputest.idl
+++ /dev/null
@@ -1,94 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _TEST_CPPUTEST_IDL_
-#define _TEST_CPPUTEST_IDL_
-
-#include <com/sun/star/uno/XInterface.idl>
-#include <com/sun/star/uno/TypeClass.idl>
-
-module test
-{
-
-struct Test1
-{
- short nInt16;
- double dDouble;
- boolean bBool;
-};
-
-struct Test2
-{
- short nInt16;
- Test1 aTest1;
-};
-
-typedef Test1 TdTest1;
-
-struct Test3
-{
- byte nInt8;
- float nFloat;
- double nDouble;
- short nInt16;
- string aString;
- unsigned short nuInt16;
- hyper nInt64;
- long nInt32;
- unsigned hyper nuInt64;
- unsigned long nuInt32;
- com::sun::star::uno::TypeClass eType;
- char wChar;
- TdTest1 td;
- boolean bBool;
- any aAny;
-};
-
-
-struct Base
-{
- long n;
- short o;
-};
-
-struct Base1 : Base
-{
- short p;
-};
-
-struct Base2 : Base1
-{
- double p2;
-};
-
-interface XSimpleInterface : com::sun::star::uno::XInterface
-{
- void method();
-};
-
-}; //module test
-
-#endif
diff --git a/cppu/test/env_substs/env_subst.test.cxx b/cppu/test/env_substs/env_subst.test.cxx
deleted file mode 100644
index 585fcbf02d8a..000000000000
--- a/cppu/test/env_substs/env_subst.test.cxx
+++ /dev/null
@@ -1,95 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "sal/main.h"
-
-#include "uno/environment.hxx"
-
-#include <iostream>
-
-
-using namespace com::sun::star;
-
-static rtl::OUString s_comment;
-
-static void s_test_substituting(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_substituting\n"));
-
- putenv(strdup("UNO_ENV_SUBST:uno:unsafe=uno:affine"));
-
- uno::Environment env(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")));
- if (!env.getTypeName().equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:affine"))))
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE - expected \"uno:affine\" instead of \""));
- s_comment += env.getTypeName();
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- }
-}
-
-static void s_test_not_substituting(void)
-{
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_not_substituting\n"));
-
- putenv(strdup("UNO_ENV_SUBST:uno:unsafe=uno:affine"));
-
- uno::Environment env(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:affine")));
- if (!env.getTypeName().equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:affine"))))
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE - expected \"uno:affine\" instead of \""));
- s_comment += env.getTypeName();
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n"));
- }
-}
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv)
-{
- s_test_substituting();
- s_test_not_substituting();
-
-
- int ret;
- if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
-
- std::cerr
- << argv[0]
- << std::endl
- << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
-
diff --git a/cppu/test/env_substs/makefile.mk b/cppu/test/env_substs/makefile.mk
deleted file mode 100644
index 58564ba8cce2..000000000000
--- a/cppu/test/env_substs/makefile.mk
+++ /dev/null
@@ -1,46 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := env_subst.test
-
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
-
-
-.INCLUDE : settings.mk
-
-
-APP1TARGET := $(TARGET)
-APP1OBJS := $(OBJ)$/env_subst.test.obj
-APP1STDLIBS := $(CPPULIB) $(SALLIB)
-
-
-.INCLUDE : target.mk
diff --git a/cppu/test/env_tester/TestEnvironment.cxx b/cppu/test/env_tester/TestEnvironment.cxx
deleted file mode 100644
index f91f78659316..000000000000
--- a/cppu/test/env_tester/TestEnvironment.cxx
+++ /dev/null
@@ -1,37 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-
-#include "uno/environment.h"
-
-
-extern "C" void SAL_CALL uno_initEnvironment(uno_Environment * /*pEnv*/)
- SAL_THROW_EXTERN_C()
-{
-}
diff --git a/cppu/test/env_tester/TestEnvironment.def b/cppu/test/env_tester/TestEnvironment.def
deleted file mode 100644
index f59a32c4a174..000000000000
--- a/cppu/test/env_tester/TestEnvironment.def
+++ /dev/null
@@ -1,7 +0,0 @@
-LIBRARY cppu3
-DESCRIPTION 'StarView 3.00 680 m124'
-DATA READ WRITE SHARED
-HEAPSIZE 0
-EXPORTS
- uno_initEnvironment
-
diff --git a/cppu/test/env_tester/env.tester.cxx b/cppu/test/env_tester/env.tester.cxx
deleted file mode 100644
index fcc4cbfcd845..000000000000
--- a/cppu/test/env_tester/env.tester.cxx
+++ /dev/null
@@ -1,104 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <iostream>
-
-#include "sal/main.h"
-#include "rtl/ustring.hxx"
-#include "rtl/string.hxx"
-#include "rtl/alloc.h"
-#include "uno/environment.hxx"
-#include "uno/lbnames.h"
-
-using namespace com::sun::star;
-
-
-static rtl::OUString s_replaceCPP(rtl::OUString const & str)
-{
- rtl::OUString cpp(RTL_CONSTASCII_USTRINGPARAM("CPP"));
-
- rtl::OUString result;
-
- sal_Int32 index_old = 0;
- sal_Int32 index = str.indexOf(cpp, index_old);
- while (index != -1)
- {
- result += str.copy(index_old, index - index_old);
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV)));
-
- index_old = index + 3;
- index = str.indexOf(cpp, index_old);
- }
- result += str.copy(index_old);
-
- return result;
-}
-
-
-rtl::OUString register_test(rtl::OUString const & envDcp);
-rtl::OUString purpenv_test(rtl::OUString const & envDcp);
-
-
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
-{
- int ret = 0;
- rtl::OUString message;
-
- if (argc == 2)
- {
- message = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- rtl::OUString envDcp(argv[1], rtl_str_getLength(argv[1]), RTL_TEXTENCODING_ASCII_US);
- envDcp = s_replaceCPP(envDcp);
-
-
- message += register_test(envDcp);
- message += purpenv_test(envDcp);
-
- if (message.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1)
- {
- message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n"));
- ret = 0;
- }
- else
- {
- message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n"));
- ret = -1;
- }
- }
- else
- message = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("<env. descriptor>"));
-
- std::cerr
- << argv[0]
- << " "
- << rtl::OUStringToOString(message, RTL_TEXTENCODING_ASCII_US).getStr()
- << std::endl;
-
- return ret;
-}
diff --git a/cppu/test/env_tester/makefile.mk b/cppu/test/env_tester/makefile.mk
deleted file mode 100644
index c418749e66bf..000000000000
--- a/cppu/test/env_tester/makefile.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := env.tester.bin
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-
-
-.INCLUDE : settings.mk
-.INCLUDE : ../../source/helper/purpenv/export.mk
-
-
-.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
-ObjectFactory_LIB := -lObjectFactory.$(COMID)
-
-.ELSE
-ObjectFactory_LIB := $(LIBPRE) iObjectFactory.$(COMID).lib
-
-.ENDIF
-
-
-APP1TARGET := $(TARGET)
-APP1OBJS := $(OBJ)$/env.tester.obj $(OBJ)$/purpenv.test.obj $(OBJ)$/register.test.obj
-APP1STDLIBS := $(ObjectFactory_LIB) $(CPPULIB) $(SALLIB)
-
-
-SHL1TARGET := purpA_uno_uno
-SHL1IMPLIB := i$(SHL1TARGET)
-SHL1OBJS := $(SLO)$/TestEnvironment.obj
-SHL1STDLIBS := $(CPPULIB) $(SALHELPERLIB) $(SALLIB)
-SHL1DEF := TestEnvironment.def
-
-SHL2TARGET := purpB_uno_uno
-SHL2IMPLIB := i$(SHL2TARGET)
-SHL2OBJS := $(SHL1OBJS)
-SHL2STDLIBS := $(SHL1STDLIBS)
-SHL2DEF := $(SHL1DEF)
-
-
-.INCLUDE : target.mk
diff --git a/cppu/test/env_tester/purpenv.test.cxx b/cppu/test/env_tester/purpenv.test.cxx
deleted file mode 100644
index 42da4d300189..000000000000
--- a/cppu/test/env_tester/purpenv.test.cxx
+++ /dev/null
@@ -1,401 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <iostream>
-
-#include "sal/main.h"
-
-#include "uno/environment.hxx"
-#include "uno/dispatcher.h"
-
-#include "typelib/typedescription.h"
-
-#include "com/sun/star/uno/Any.h"
-
-#include "../ObjectFactory/ObjectFactory.hxx"
-
-
-using namespace com::sun::star;
-
-
-static rtl::OUString g_usret(RTL_CONSTASCII_USTRINGPARAM("\n"));
-static rtl::OUString g_ustab(RTL_CONSTASCII_USTRINGPARAM("\t"));
-static rtl::OUString g_comment;
-static uno::Environment g_env;
-static bool g_check = 0;
-
-extern "C" { static void s_callee(rtl_uString * pMethod_name)
-{
- if (g_check)
- {
- g_comment += g_ustab;
- g_comment += g_ustab;
- g_comment += rtl::OUString(pMethod_name);
-
- rtl::OUString reason;
- int valid = g_env.isValid(&reason);
-
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("["));
- g_comment += rtl::OUString::valueOf((sal_Int32)valid);
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(","));
- g_comment += reason;
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("]"));
-
- if (!valid)
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE"));
-
- g_comment += g_usret;
- }
-}}
-
-
-static rtl::OUString s_test_registerInterface(rtl::OUString const & envDcp)
-{
- g_env = uno::Environment(envDcp);
-
- g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_registerInterface"));
- g_comment += g_usret;
-
- rtl::OUString id(RTL_CONSTASCII_USTRINGPARAM("blabla"));
-
- typelib_TypeDescriptionReference * type_XInterface =
- * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE );
-
- typelib_TypeDescription * pRet = NULL;
- typelib_typedescriptionreference_getDescription(&pRet, type_XInterface);
-
- void * pObject = createObject(envDcp, s_callee);
- g_check = 1;
- g_env.get()->pExtEnv->registerInterface(g_env.get()->pExtEnv,
- &pObject,
- id.pData,
- (struct _typelib_InterfaceTypeDescription *)pRet);
- g_check = 0;
-
- g_env.get()->pExtEnv->revokeInterface(g_env.get()->pExtEnv, pObject);
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject);
-
- g_env.clear();
-
- return g_comment;
-}
-
-extern "C" { static void s_freeFunc(struct _uno_ExtEnvironment * /*pEnv*/, void * /*pProxy*/ )
-{
- if (g_check)
- {
- g_comment += g_ustab;
- g_comment += g_ustab;
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("s_freeFunc"));
-
- rtl::OUString reason;
- int valid = g_env.isValid(&reason);
-
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("["));
- g_comment += rtl::OUString::valueOf((sal_Int32)valid);
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(","));
- g_comment += reason;
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("]"));
-
- if (!valid)
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE"));
-
- g_comment += g_usret;
- }
-}}
-
-static rtl::OUString s_test_registerProxyInterface(rtl::OUString const & envDcp)
-{
- g_env = uno::Environment(envDcp);
-
- g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_registerProxyInterface"));
- g_comment += g_usret;
-
- rtl::OUString id(RTL_CONSTASCII_USTRINGPARAM("blabla"));
-
- typelib_TypeDescriptionReference * type_XInterface =
- * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE );
-
- typelib_TypeDescription * pRet = NULL;
- typelib_typedescriptionreference_getDescription(&pRet, type_XInterface);
-
- void * pObject = createObject(envDcp, s_callee);
- g_check = 1;
- g_env.get()->pExtEnv->registerProxyInterface(g_env.get()->pExtEnv,
- &pObject,
- s_freeFunc,
- id.pData,
- (typelib_InterfaceTypeDescription *)pRet);
- g_check = 0;
-
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject);
- g_check = 1;
- g_env.get()->pExtEnv->revokeInterface(g_env.get()->pExtEnv, pObject);
- g_check = 0;
-
- g_env.clear();
-
-
- return g_comment;
-}
-
-static rtl::OUString s_test_revokeInterface(rtl::OUString const & envDcp)
-{
- g_env = uno::Environment(envDcp);
-
- g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_revokeInterface"));
- g_comment += g_usret;
-
- rtl::OUString id(RTL_CONSTASCII_USTRINGPARAM("blabla"));
-
- typelib_TypeDescriptionReference * type_XInterface =
- * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE );
-
- typelib_TypeDescription * pRet = NULL;
- typelib_typedescriptionreference_getDescription(&pRet, type_XInterface);
-
- void * pObject = createObject(envDcp, s_callee);
- g_env.get()->pExtEnv->registerInterface(g_env.get()->pExtEnv,
- &pObject,
- id.pData,
- (struct _typelib_InterfaceTypeDescription *)pRet);
-
- g_check = 1;
- g_env.get()->pExtEnv->revokeInterface(g_env.get()->pExtEnv, pObject);
- g_check = 0;
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject);
-
- g_env.clear();
-
- return g_comment;
-}
-
-static rtl::OUString s_test_getObjectIdentifier(rtl::OUString const & envDcp)
-{
- g_env = uno::Environment(envDcp);
-
- g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_getObjectIdentifier"));
- g_comment += g_usret;
-
- rtl::OUString oId;
- void * pObject = createObject(envDcp, s_callee);
- g_check = 1;
- g_env.get()->pExtEnv->getObjectIdentifier(g_env.get()->pExtEnv, &oId.pData, pObject);
- g_check = 0;
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject);
-
- g_env.clear();
-
- return g_comment;
-}
-
-static rtl::OUString s_test_getRegisteredInterface(rtl::OUString const & envDcp)
-{
- g_env = uno::Environment(envDcp);
-
- g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_getRegisteredInterface"));
- g_comment += g_usret;
-
- rtl::OUString id(RTL_CONSTASCII_USTRINGPARAM("blabla"));
-
-
- typelib_TypeDescriptionReference * type_XInterface =
- * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE );
-
- typelib_TypeDescription * pRet = NULL;
- typelib_typedescriptionreference_getDescription(&pRet, type_XInterface);
-
- void * pObject = createObject(envDcp, s_callee);
- g_env.get()->pExtEnv->registerInterface(g_env.get()->pExtEnv,
- &pObject,
- id.pData,
- (typelib_InterfaceTypeDescription *)pRet);
-
-
- g_check = 1;
- g_env.get()->pExtEnv->getRegisteredInterface(g_env.get()->pExtEnv, &pObject, id.pData,
- (typelib_InterfaceTypeDescription *)pRet);
- g_check = 0;
-
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject);
- g_env.get()->pExtEnv->revokeInterface(g_env.get()->pExtEnv, pObject);
-
- g_env.clear();
-
- return g_comment;
-}
-
-static rtl::OUString s_test_getRegisteredInterfaces(rtl::OUString const & envDcp)
-{
- g_env = uno::Environment(envDcp);
-
- g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_getRegisteredInterfaces"));
- g_comment += g_usret;
-
- rtl::OUString id(RTL_CONSTASCII_USTRINGPARAM("blabla"));
-
-
- typelib_TypeDescriptionReference * type_XInterface =
- * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE );
-
- typelib_TypeDescription * pRet = NULL;
- typelib_typedescriptionreference_getDescription(&pRet, type_XInterface);
-
- void * pObject = createObject(envDcp, s_callee);
- g_env.get()->pExtEnv->registerInterface(g_env.get()->pExtEnv,
- &pObject,
- id.pData,
- (typelib_InterfaceTypeDescription *)pRet);
-
- g_check = 1;
- void ** ppObject;
- sal_Int32 nCount;
- g_env.get()->pExtEnv->getRegisteredInterfaces(g_env.get()->pExtEnv, &ppObject, &nCount, rtl_allocateMemory);
- g_check = 0;
-
-
- if (nCount != 1)
- {
- g_comment += g_ustab;
- g_comment += g_ustab;
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("more than one object registered -> FAILURE"));
- g_comment += g_usret;
- }
-
- if (*ppObject != pObject)
- {
- g_comment += g_ustab;
- g_comment += g_ustab;
- g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("returned object is not the registerd one -> FAILURE"));
- g_comment += g_usret;
- }
-
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, *ppObject);
-
- g_env.get()->pExtEnv->revokeInterface(g_env.get()->pExtEnv, pObject);
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject);
-
- rtl_freeMemory(ppObject);
-
- g_env.clear();
-
- return g_comment;
-}
-
-static rtl::OUString s_test_computeObjectIdentifier(rtl::OUString const & envDcp)
-{
- g_env = uno::Environment(envDcp);
-
- g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_computeObjectIdentifier"));
- g_comment += g_usret;
-
- rtl::OUString oId;
- void * pObject = createObject(envDcp, s_callee);
- g_check = 1;
- g_env.get()->pExtEnv->computeObjectIdentifier(g_env.get()->pExtEnv, &oId.pData, pObject);
- g_check = 0;
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject);
-
- g_env.clear();
-
- return g_comment;
-}
-
-static rtl::OUString s_test_acquire(rtl::OUString const & envDcp)
-{
- g_env = uno::Environment(envDcp);
-
- g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_acquire"));
- g_comment += g_usret;
- void * pObject = createObject(envDcp, s_callee);
-
- g_check = 1;
- g_env.get()->pExtEnv->acquireInterface(g_env.get()->pExtEnv, pObject);
- g_check = 0;
-
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject);
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject);
- g_env.clear();
-
- return g_comment;
-}
-
-static rtl::OUString s_test_release(rtl::OUString const & envDcp)
-{
- g_env = uno::Environment(envDcp);
-
- g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_release"));
- g_comment += g_usret;
- void * pObject = createObject(envDcp, s_callee);
-
- g_check = 1;
- g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject);
- g_check = 0;
-
- g_env.clear();
-
- return g_comment;
-}
-
-
-rtl::OUString purpenv_test(rtl::OUString const & envDcp)
-{
- g_env = uno::Environment(envDcp);
-
- rtl::OUString result;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("purpenv_test"));
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- result += s_test_registerInterface(envDcp);
- result += g_usret;
-
- result += s_test_registerProxyInterface(envDcp);
- result += g_usret;
-
- result += s_test_revokeInterface(envDcp);
- result += g_usret;
-
- result += s_test_getObjectIdentifier(envDcp);
- result += g_usret;
-
- result += s_test_getRegisteredInterface(envDcp);
- result += g_usret;
-
- result += s_test_getRegisteredInterfaces(envDcp);
- result += g_usret;
-
- result += s_test_computeObjectIdentifier(envDcp);
- result += g_usret;
-
- result += s_test_acquire(envDcp);
- result += g_usret;
-
- result += s_test_release(envDcp);
- result += g_usret;
-
- return result;
-}
diff --git a/cppu/test/env_tester/register.test.cxx b/cppu/test/env_tester/register.test.cxx
deleted file mode 100644
index a98a14cac69b..000000000000
--- a/cppu/test/env_tester/register.test.cxx
+++ /dev/null
@@ -1,234 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <iostream>
-
-#include "sal/main.h"
-#include "rtl/ustring.hxx"
-#include "rtl/string.hxx"
-#include "rtl/alloc.h"
-#include "uno/environment.hxx"
-#include "uno/lbnames.h"
-
-using namespace com::sun::star;
-
-
-static rtl::OUString s_test_getEnvironment(rtl::OUString const & envDcp, void * pContext)
-{
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_getEnvironment("));
- result += envDcp;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", "));
- result += rtl::OUString::valueOf((long)pContext);
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n"));
-
- uno::Environment env(envDcp, pContext);
-
- if (!env.is())
- {
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE: couldn't get env.\n"));
- return result;
- }
-
- if (rtl::OUString(env.getTypeName()).compareTo(envDcp))
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE: got environment has wrong descriptor.\n"));
-
- if (env.getContext() != pContext)
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE: got environment has wrong context.\n"));
-
-
- return result;
-}
-
-static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp1,
- rtl::OUString const & envDcp2 ,
- void * pContext1, void * pContext2)
-{
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_regetEnvironment("));
- result += envDcp1;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", "));
- result += envDcp2;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", "));
- result += rtl::OUString::valueOf((long)pContext1);
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", " ));
- result += rtl::OUString::valueOf((long)pContext2);
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n"));
-
- uno::Environment env1(envDcp1, pContext1);
- uno::Environment env2(envDcp2, pContext2);
-
- if (! ((pContext1 == pContext2 && envDcp1 == envDcp2) ? env1.get() == env2.get() : env1.get() != env2.get())
- && env1.is() && env2.is())
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n"));
-
- return result;
-}
-
-static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp, void * pContext)
-{
- return s_test_regetEnvironment(envDcp, envDcp, pContext, pContext);
-}
-
-// static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp, void * pContext1, void * pContext2)
-// {
-// return s_test_regetEnvironment(envDcp, envDcp, pContext1, pContext2);
-// }
-
-static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp1, rtl::OUString const & envDcp2, void * pContext)
-{
- return s_test_regetEnvironment(envDcp1, envDcp2, pContext, pContext);
-}
-
-
-static int s_is_registered(rtl::OUString const & envDcp, void * pContext)
-{
- int result = 0;
-
- uno_Environment ** ppEnvs = NULL;
- sal_Int32 nLen = 0;
-
- uno_getRegisteredEnvironments(&ppEnvs, &nLen, rtl_allocateMemory, envDcp.pData);
- for (sal_Int32 i = 0; !result && i < nLen; ++ i)
- {
- result = result || (ppEnvs[i]->pContext == pContext && !rtl::OUString(ppEnvs[i]->pTypeName).compareTo(envDcp));
-
- ppEnvs[i]->release(ppEnvs[i]);
- }
- rtl_freeMemory(ppEnvs);
-
- return result;
-}
-
-static rtl::OUString s_test_uno_getRegisteredEnvironments_registered(rtl::OUString const & envDcp, void * pContext)
-{
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_uno_getRegisteredEnvironments_registered("));
- result += envDcp;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", "));
- result += rtl::OUString::valueOf((long)pContext);
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n"));
-
- uno::Environment env(envDcp, pContext);
-
- if (!env.is() || !s_is_registered(envDcp, pContext))
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n"));
-
- return result;
-}
-
-static rtl::OUString s_test_uno_getRegisteredEnvironments_notRegistered(rtl::OUString const & envDcp, void * pContext)
-{
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_uno_getRegisteredEnvironments_notRegistered("));
- result += envDcp;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", "));
- result += rtl::OUString::valueOf((long)pContext);
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n"));
-
- uno::Environment env(envDcp, pContext);
-
- if (!env.is() && !s_is_registered(envDcp, pContext))
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n"));
-
- return result;
-}
-
-
-static rtl::OUString s_test_uno_createEnvironment(rtl::OUString const & envDcp, void * pContext)
-{
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_uno_createEnvironment("));
- result += envDcp;
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", "));
- result += rtl::OUString::valueOf((long)pContext);
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n"));
-
- uno_Environment * pEnv = NULL;
- uno_createEnvironment(&pEnv, envDcp.pData, pContext);
-
- if (!pEnv && !s_is_registered(envDcp, pContext))
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n"));
-
- if (pEnv)
- pEnv->release(pEnv);
-
- return result;
-}
-
-
-rtl::OUString register_test(rtl::OUString const & envDcp)
-{
- rtl::OUString env_A(envDcp);
- env_A += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(":purpA"));
-
- rtl::OUString env_B(envDcp);
- env_B += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(":purpB"));
-
- rtl::OUString result;
-
- result = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("registration_test"));
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n"));
-
- result += s_test_getEnvironment(envDcp, NULL);
- result += s_test_getEnvironment(env_A, NULL);
- result += s_test_getEnvironment(env_B, NULL);
-
- result += s_test_regetEnvironment(envDcp, NULL);
- result += s_test_regetEnvironment(envDcp, (void *)0x1);
- result += s_test_regetEnvironment(env_A, NULL) ;
- result += s_test_regetEnvironment(env_A, (void *)0x1);
- result += s_test_regetEnvironment(env_B, NULL) ;
- result += s_test_regetEnvironment(env_B, (void *)0x1);
-
- result += s_test_regetEnvironment(envDcp, env_A, (void *)NULL);
- result += s_test_regetEnvironment(envDcp, env_A, (void *)0x1) ;
- result += s_test_regetEnvironment(envDcp, env_B, (void *)NULL);
- result += s_test_regetEnvironment(envDcp, env_B, (void *)0x1) ;
- result += s_test_regetEnvironment(env_A, env_B, (void *)NULL);
- result += s_test_regetEnvironment(env_A, env_B, (void *)0x1) ;
-
- result += s_test_regetEnvironment(env_A, env_B, (void *)NULL, (void *)0x1);
-
- result += s_test_uno_getRegisteredEnvironments_registered(envDcp, (void *)NULL);
- result += s_test_uno_getRegisteredEnvironments_registered(envDcp, (void *)0x1) ;
- result += s_test_uno_getRegisteredEnvironments_registered(env_A, (void *)NULL);
- result += s_test_uno_getRegisteredEnvironments_registered(env_A, (void *)0x1) ;
- result += s_test_uno_getRegisteredEnvironments_registered(env_B, (void *)NULL);
- result += s_test_uno_getRegisteredEnvironments_registered(env_B, (void *)0x1) ;
-
- result += s_test_uno_getRegisteredEnvironments_notRegistered(envDcp, NULL) ;
- result += s_test_uno_getRegisteredEnvironments_notRegistered(envDcp, (void *)0x1);
- result += s_test_uno_getRegisteredEnvironments_notRegistered(env_A, NULL) ;
- result += s_test_uno_getRegisteredEnvironments_notRegistered(env_A, (void *)0x1);
- result += s_test_uno_getRegisteredEnvironments_notRegistered(env_B, NULL) ;
- result += s_test_uno_getRegisteredEnvironments_notRegistered(env_B, (void *)0x1);
-
- result += s_test_uno_createEnvironment(envDcp, NULL) ;
- result += s_test_uno_createEnvironment(envDcp, (void *)0x1);
- result += s_test_uno_createEnvironment(env_A, NULL) ;
- result += s_test_uno_createEnvironment(env_A, (void *)0x1);
- result += s_test_uno_createEnvironment(env_B, NULL) ;
- result += s_test_uno_createEnvironment(env_B, (void *)0x1);
-
- return result;
-}
diff --git a/cppu/test/language_binding.idl b/cppu/test/language_binding.idl
deleted file mode 100644
index 2a708ad56ee6..000000000000
--- a/cppu/test/language_binding.idl
+++ /dev/null
@@ -1,239 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _TEST_LANGUAGE_BINDING_IDL_
-#define _TEST_LANGUAGE_BINDING_IDL_
-
-#include <com/sun/star/uno/XInterface.idl>
-#include <com/sun/star/lang/IllegalArgumentException.idl>
-
-module test
-{
-
-enum TestEnum
-{
- TEST,
- ONE,
- TWO,
- CHECK,
- LOLA,
- PALOO,
- ZA
-};
-
-/**
- * simple c++ types
- */
-struct TestSimple
-{
- boolean Bool;
- char Char;
- byte Byte;
- short Short;
- unsigned short UShort;
- long Long;
- unsigned long ULong;
- hyper Hyper;
- unsigned hyper UHyper;
- float Float;
- double Double;
- test::TestEnum Enum;
-};
-/**
- * equal to max size returned in registers on x86_64
- */
-struct SmallStruct
-{
- hyper a;
- hyper b;
-};
-/**
- * equal to max size returned in registers on ia64
- */
-struct MediumStruct
-{
- hyper a;
- hyper b;
- hyper c;
- hyper d;
-};
-/**
- * bigger than max size returned in registers on ia64
- */
-struct BigStruct
-{
- hyper a;
- hyper b;
- hyper c;
- hyper d;
- hyper e;
- hyper f;
- hyper g;
- hyper h;
-};
-/**
- * all floats, ia64 claims to handle them specially
- */
-struct AllFloats
-{
- float a;
- float b;
- float c;
- float d;
-};
-
-/**
- * complex c++ types
- */
-struct TestElement : test::TestSimple
-{
- string String;
- com::sun::star::uno::XInterface Interface;
- any Any;
-};
-struct TestDataElements : test::TestElement
-{
- sequence<test::TestElement > Sequence;
-};
-
-typedef TestDataElements TestData;
-
-/**
- * Monster test interface to test language binding calls.
- *
- * @author Daniel Boelzle
- */
-interface XLBTestBase : com::sun::star::uno::XInterface
-{
- /**
- * in parameter test, tests by calls reference also (complex types)
- */
- [oneway] void setValues( [in] boolean bBool, [in] char cChar, [in] byte nByte,
- [in] short nShort, [in] unsigned short nUShort,
- [in] long nLong, [in] unsigned long nULong,
- [in] hyper nHyper, [in] unsigned hyper nUHyper,
- [in] float fFloat, [in] double fDouble,
- [in] test::TestEnum eEnum, [in] string aString,
- [in] com::sun::star::uno::XInterface xInterface, [in] any aAny,
- [in] sequence<test::TestElement > aSequence,
- [in] test::TestData aStruct );
- /**
- * inout parameter test
- */
- test::TestData setValues2( [inout] boolean bBool, [inout] char cChar, [inout] byte nByte,
- [inout] short nShort, [inout] unsigned short nUShort,
- [inout] long nLong, [inout] unsigned long nULong,
- [inout] hyper nHyper, [inout] unsigned hyper nUHyper,
- [inout] float fFloat, [inout] double fDouble,
- [inout] test::TestEnum eEnum, [inout] string aString,
- [inout] com::sun::star::uno::XInterface xInterface, [inout] any aAny,
- [inout] sequence<test::TestElement > aSequence,
- [inout] test::TestData aStruct );
-
- /**
- * out parameter test
- */
- test::TestData getValues( [out] boolean bBool, [out] char cChar, [out] byte nByte,
- [out] short nShort, [out] unsigned short nUShort,
- [out] long nLong, [out] unsigned long nULong,
- [out] hyper nHyper, [out] unsigned hyper nUHyper,
- [out] float fFloat, [out] double fDouble,
- [out] test::TestEnum eEnum, [out] string aString,
- [out] com::sun::star::uno::XInterface xInterface, [out] any aAny,
- [out] sequence<test::TestElement > aSequence,
- [out] test::TestData aStruct );
-
- /**
- * register return test 1
- */
- test::SmallStruct echoSmallStruct( [in] test::SmallStruct aStruct );
-
- /**
- * register return test 2
- */
- test::MediumStruct echoMediumStruct( [in] test::MediumStruct aStruct );
-
- /**
- * register return test 3
- */
- test::BigStruct echoBigStruct( [in] test::BigStruct aStruct );
-
- /**
- * register return test 4
- */
- test::AllFloats echoAllFloats( [in] test::AllFloats aStruct );
-
- [attribute] boolean Bool;
- [attribute] byte Byte;
- [attribute] char Char;
- [attribute] short Short;
- [attribute] unsigned short UShort;
- [attribute] long Long;
- [attribute] unsigned long ULong;
- [attribute] hyper Hyper;
- [attribute] unsigned hyper UHyper;
- [attribute] float Float;
- [attribute] double Double;
- [attribute] test::TestEnum Enum;
- [attribute] string String;
- [attribute] com::sun::star::uno::XInterface Interface;
- [attribute] any Any;
- [attribute] sequence<test::TestElement > Sequence;
- [attribute] test::TestData Struct;
-};
-
-
-/**
- * Inherting from monster; adds raiseException().
- *
- * @author Daniel Boelzle
- */
-interface XLanguageBindingTest : test::XLBTestBase
-{
- /**
- * params are there only for dummy, to test if all temp out params will be released.
- */
- test::TestData raiseException( [out] boolean bBool, [out] char cChar, [out] byte nByte,
- [out] short nShort, [out] unsigned short nUShort,
- [out] long nLong, [out] unsigned long nULong,
- [out] hyper nHyper, [out] unsigned hyper nUHyper,
- [out] float fFloat, [out] double fDouble,
- [out] test::TestEnum eEnum, [out] string aString,
- [out] com::sun::star::uno::XInterface xInterface, [out] any aAny,
- [out] sequence<test::TestElement > aSequence,
- [out] test::TestData aStruct )
- raises( com::sun::star::lang::IllegalArgumentException );
-
- /**
- * raises runtime exception
- */
- [attribute] long RuntimeException;
-};
-
-}; // test
-
-
-#endif
diff --git a/cppu/test/makefile.mk b/cppu/test/makefile.mk
deleted file mode 100644
index 8eecf6bbf452..000000000000
--- a/cppu/test/makefile.mk
+++ /dev/null
@@ -1,156 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME=testcppu
-TARGET= testcppu
-LIBTARGET=NO
-ENABLE_EXCEPTIONS=TRUE
-NO_BSYMBOLIC=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-UNOUCRDEP=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCRRDB=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCROUT=$(OUT)$/inc$/test
-INCPRE+=$(OUT)$/inc$/test
-
-OBJFILES= \
- $(OBJ)$/testcppu.obj \
- $(OBJ)$/test_di.obj \
- $(OBJ)$/test_Cincludes.obj
-# $(OBJ)$/test_cuno.obj \
-# $(OBJ)$/test_sec.obj \
-
-APP1TARGET= testcppu
-APP1OBJS= \
- $(OBJ)$/testcppu.obj \
- $(OBJ)$/test_di.obj
-# $(OBJ)$/test_cuno.obj
-# $(OBJ)$/test_sec.obj
-
-APP1STDLIBS+= \
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(SALHELPERLIB) \
- $(SALLIB)
-
-APP1DEF=$(MISC)$/$(APP1TARGET).def
-
-ALLIDLFILES:= \
- cpputest.idl \
- language_binding.idl \
- alignment.idl
-
-
-APP2TARGET := Mapping.test
-APP2OBJS := $(OBJ)$/Mapping.test.obj
-APP2STDLIBS := $(CPPULIB) $(SALLIB)
-
-APP3TARGET := Environment.test
-APP3OBJS := $(OBJ)$/Environment.test.obj
-APP3STDLIBS := $(CPPULIB) $(SALLIB)
-
-APP4TARGET := IdentityMapping.test
-APP4OBJS := $(OBJ)$/IdentityMapping.test.obj
-APP4STDLIBS := $(CPPULIB) $(SALLIB)
-
-
-
-# --- Targets ------------------------------------------------------
-
-.IF "$(depend)" == ""
-ALL : $(BIN)$/testcppu.rdb unoheader ALLTAR
-.ELSE
-ALL: ALLDEP
-.ENDIF
-
-.IF "$(COM)" == "MSC"
-.IF "$(debug)" != ""
-CFLAGS += /Ob0
-.ENDIF
-.ENDIF
-
-.IF "$(extra_mapping)" != ""
-CFLAGS += -DEXTRA_MAPPING
-.ENDIF
-
-.INCLUDE : target.mk
-
-CPPUMAKERFLAGS = -L
-
-TYPES:= -Ttest.XLanguageBindingTest \
- -Ttest.XSimpleInterface \
- -Ttest.Test1 \
- -Ttest.Test2 \
- -Ttest.TdTest1 \
- -Ttest.Test3 \
- -Ttest.Base \
- -Ttest.Base1 \
- -Ttest.Base2 \
- -Tcom.sun.star.lang.XMultiServiceFactory \
- -Tcom.sun.star.lang.XSingleServiceFactory \
- -Tcom.sun.star.lang.XInitialization \
- -Tcom.sun.star.lang.XServiceInfo \
- -Tcom.sun.star.lang.XEventListener \
- -Tcom.sun.star.lang.XTypeProvider \
- -Tcom.sun.star.lang.DisposedException \
- -Tcom.sun.star.registry.XSimpleRegistry \
- -Tcom.sun.star.registry.XRegistryKey \
- -Tcom.sun.star.loader.XImplementationLoader \
- -Tcom.sun.star.registry.XImplementationRegistration \
- -Tcom.sun.star.lang.XComponent \
- -Tcom.sun.star.uno.XComponentContext \
- -Tcom.sun.star.container.XSet \
- -Tcom.sun.star.container.XNameContainer \
- -Tcom.sun.star.uno.TypeClass \
- -Tcom.sun.star.uno.XReference \
- -Tcom.sun.star.uno.XAdapter \
- -Tcom.sun.star.uno.XAggregation \
- -Tcom.sun.star.uno.XWeak \
- -Tcom.sun.star.beans.XPropertySet \
- -Tcom.sun.star.reflection.XIdlClassProvider \
- -Tcom.sun.star.container.XHierarchicalNameAccess \
- -Tcom.sun.star.uno.XCurrentContext
-
-$(BIN)$/testcppu.rdb: $(ALLIDLFILES)
- idlc -I$(PRJ) -I$(SOLARIDLDIR) -O$(BIN) $?
- regmerge $@ /UCR $(BIN)$/{$(?:f:s/.idl/.urd/)}
- regmerge $@ / $(UNOUCRRDB)
- touch $@
-
-# regcomp -register -r $@ -c javaloader.dll
-# regcomp -register -r $@ -c jen.dll
-
-unoheader: $(BIN)$/testcppu.rdb
- cppumaker $(CPPUMAKERFLAGS) -BUCR -O$(UNOUCROUT) $(TYPES) $(BIN)$/testcppu.rdb
-# cunomaker -BUCR -O$(UNOUCROUT) $(TYPES) $(BIN)$/testcppu.rdb
-
diff --git a/cppu/test/mapping_tester/Mapping.tester.hxx b/cppu/test/mapping_tester/Mapping.tester.hxx
deleted file mode 100644
index 6a2573a105f8..000000000000
--- a/cppu/test/mapping_tester/Mapping.tester.hxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_Mapping_tester_hxx
-#define INCLUDED_Mapping_tester_hxx
-
-
-#include "../ObjectFactory/callee.hxx"
-
-
-#ifdef CPPU_TEST_MAPPING_TESTER_TESTS_IMPL
-# define CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT SAL_DLLPUBLIC_EXPORT
-
-#elif defined(CPPU_TEST_MAPPING_TESTER_TESTS_LIB)
-# define CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT extern
-
-#elif defined(__GNUC__) && defined(HAVE_GCC_VISIBILITY_FEATURE)
-# define CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT extern __attribute__ ((weak))
-
-#elif defined(__SUNPRO_CC)
-# define CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT extern
- extern rtl::OUString g_from_envDcp;
- extern rtl::OUString g_to_envDcp;
- extern rtl::OUString g_ref;
- extern rtl::OUString g_custom;
- extern rtl::OUString g_result;
- extern int g_check;
-# pragma weak g_from_envDcp
-# pragma weak g_to_envDcp
-# pragma weak g_ref
-# pragma weak g_custom
-# pragma weak g_result
-# pragma weak g_check
-
-#else
-# define CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT SAL_DLLPUBLIC_IMPORT
-
-#endif
-
-CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT rtl::OUString g_from_envDcp;
-CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT rtl::OUString g_to_envDcp;
-CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT rtl::OUString g_ref;
-CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT rtl::OUString g_custom;
-CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT rtl::OUString g_result;
-CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT int g_check;
-
-
-#define D_CALLEE extern "C" void CALLEE(rtl_uString * pMethod_name)
-
-
-#endif
diff --git a/cppu/test/mapping_tester/mapping.tester.cxx b/cppu/test/mapping_tester/mapping.tester.cxx
deleted file mode 100644
index bed213daefba..000000000000
--- a/cppu/test/mapping_tester/mapping.tester.cxx
+++ /dev/null
@@ -1,456 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define CPPU_TEST_MAPPING_TESTER_TESTS_IMPL
-
-
-#include <iostream>
-
-#include "sal/main.h"
-#include "osl/module.hxx"
-#include "rtl/ustring.hxx"
-#include "uno/environment.hxx"
-#include "uno/mapping.hxx"
-
-#include "../ObjectFactory/ObjectFactory.hxx"
-#include "Mapping.tester.hxx"
-
-using namespace ::com::sun::star;
-
-
-
-static uno::Mapping s_getMapping(rtl::OUString const & from_envDcp,
- rtl::OUString const & to_envDcp,
- uno::Environment * pSourceEnv,
- uno::Environment * pTargetEnv)
-{
- uno::Environment sourceEnv(from_envDcp);
- uno::Environment targetEnv(to_envDcp);
-
- uno::Mapping mapping(sourceEnv, targetEnv);
-
- if (pSourceEnv)
- *pSourceEnv = sourceEnv;
-
- if (pTargetEnv)
- *pTargetEnv = targetEnv;
-
- return mapping;
-}
-
-static void * s_mapObject(rtl::OUString const & from_envDcp,
- rtl::OUString const & to_envDcp,
- void * object,
- uno::Environment * pSourceEnv,
- uno::Environment * pTargetEnv)
-{
- uno::Mapping mapping(s_getMapping(from_envDcp, to_envDcp, pSourceEnv, pTargetEnv));
-
- void * mapped_object = NULL;
-
- typelib_TypeDescriptionReference * type_XInterface =
- * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE );
-
- typelib_InterfaceTypeDescription * pTXInterfaceDescr = 0;
-
- TYPELIB_DANGER_GET( (typelib_TypeDescription **) &pTXInterfaceDescr, type_XInterface );
- mapping.mapInterface(&mapped_object, object, pTXInterfaceDescr);
- TYPELIB_DANGER_RELEASE( (typelib_TypeDescription *) pTXInterfaceDescr );
-
- return mapped_object;
-}
-
-
-static rtl::OUString s_test_regetMapping(void)
-{
- g_result = rtl::OUString();
- g_custom = rtl::OUString();
-
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tmapping reget test --> "));
-
- uno::Mapping mapping1(g_from_envDcp, g_to_envDcp);
- uno::Mapping mapping2(g_from_envDcp, g_to_envDcp);
-
- if (mapping2.get() == mapping1.get())
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n"));
-
- else
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n"));
-
- result += g_result;
-
- return result;
-}
-
-static rtl::OUString s_test_mapObject(Callee * pCallee)
-{
- g_result = rtl::OUString();
- g_custom = rtl::OUString();
-
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject map test --> "));
-
- void * pObject = createObject(g_to_envDcp, pCallee);
-
- uno::Environment sourceEnv;
- uno::Environment targetEnv;
- void * mapped_object = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, &sourceEnv, &targetEnv);
- sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject);
- sourceEnv.clear();
-
- if (mapped_object)
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n"));
-
- else
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n"));
-
- targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object);
-
- result += g_result;
-
- return result;
-}
-
-static rtl::OUString s_test_remapObject(Callee * pCallee)
-{
- g_result = rtl::OUString();
- g_custom = rtl::OUString();
-
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject remap test --> "));
-
- void * pObject = createObject(g_to_envDcp, pCallee);
-
- uno::Environment sourceEnv;
- uno::Environment targetEnv;
- void * mapped_object1 = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, &sourceEnv, &targetEnv);
- void * mapped_object2 = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, NULL, NULL);
- sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject);
- sourceEnv.clear();
-
- if (mapped_object2 == mapped_object1)
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n"));
-
- else
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n"));
-
- targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object1);
- targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object2);
-
- result += g_result;
-
- return result;
-}
-
-static rtl::OUString s_test_mapBackObject(Callee * pCallee)
-{
- g_result = rtl::OUString();
- g_custom = rtl::OUString();
-
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject map back test --> "));
-
- void * pObject = createObject(g_to_envDcp, pCallee);
-
- uno::Environment to_sourceEnv;
- uno::Environment to_targetEnv;
- void * mapped_object = s_mapObject(g_to_envDcp,
- g_from_envDcp,
- pObject,
- &to_sourceEnv,
- &to_targetEnv);
-
- uno::Environment back_sourceEnv;
- uno::Environment back_targetEnv;
- void * mapped_back_object = s_mapObject(g_from_envDcp,
- g_to_envDcp,
- mapped_object,
- &back_sourceEnv,
- &back_targetEnv);
-
- if (back_targetEnv.get() != to_sourceEnv.get())
- abort();
-
- if (back_sourceEnv.get() != to_targetEnv.get())
- abort();
-
- if (pObject == mapped_back_object)
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n"));
-
- else
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n"));
-
- to_sourceEnv .get()->pExtEnv->releaseInterface(to_sourceEnv .get()->pExtEnv, pObject);
- to_targetEnv .get()->pExtEnv->releaseInterface(to_targetEnv .get()->pExtEnv, mapped_object);
- back_targetEnv.get()->pExtEnv->releaseInterface(back_targetEnv.get()->pExtEnv, mapped_back_object);
-
- result += g_result;
-
- return result;
-}
-
-static rtl::OUString s_test_objectRegistered(Callee * pCallee)
-{
- g_result = rtl::OUString();
- g_custom = rtl::OUString();
-
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject registered test --> "));
-
- void * pObject = createObject(g_to_envDcp, pCallee);
-
- uno::Environment sourceEnv;
- uno::Environment targetEnv;
- void * mapped_object = s_mapObject(g_to_envDcp,
- g_from_envDcp,
- pObject,
- &sourceEnv,
- &targetEnv);
-
- if (sourceEnv.get() == targetEnv.get())
- {
- if (mapped_object != pObject)
- abort();
- }
- else
- {
- typelib_TypeDescriptionReference * type_XInterface =
- * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE );
-
- typelib_InterfaceTypeDescription * pTXInterfaceDescr = 0;
- TYPELIB_DANGER_GET( (typelib_TypeDescription **) &pTXInterfaceDescr, type_XInterface );
-
- rtl_uString * pOId = 0;
- targetEnv.get()->pExtEnv->getObjectIdentifier(targetEnv.get()->pExtEnv, &pOId, mapped_object);
-
- void * pOut = NULL;
-
- targetEnv.get()->pExtEnv->getRegisteredInterface(targetEnv.get()->pExtEnv,
- &pOut,
- pOId,
- pTXInterfaceDescr);
-
- TYPELIB_DANGER_RELEASE( (typelib_TypeDescription *) pTXInterfaceDescr );
-
- if (mapped_object == pOut)
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n"));
-
- else
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n"));
-
-
- targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, pOut);
- }
-
- sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject);
- targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object);
-
- result += g_result;
-
- return result;
-}
-
-
-// static void s_test_mappingNotEqual(char const * source1Name, char const * dest1Name,
-// char const * source2Name, char const * dest2Name)
-// {
-// rtl::OUString source1EnvName(source1Name, rtl_str_getLength(source1Name), RTL_TEXTENCODING_ASCII_US);
-// rtl::OUString dest1EnvName (dest1Name, rtl_str_getLength(dest1Name), RTL_TEXTENCODING_ASCII_US);
-
-// rtl::OUString source2EnvName(source2Name, rtl_str_getLength(source2Name), RTL_TEXTENCODING_ASCII_US);
-// rtl::OUString dest2EnvName (dest2Name, rtl_str_getLength(dest2Name), RTL_TEXTENCODING_ASCII_US);
-
-// uno::Mapping mapping1(s_getMapping(source1EnvName, dest1EnvName, NULL, NULL));
-// uno::Mapping mapping2(s_getMapping(source2EnvName, dest2EnvName, NULL, NULL));
-
-// if (mapping2.get() == mapping1.get())
-// {
-// // fprintf(stderr, "***************** can not reget mapping\n");
-// abort();
-// }
-// }
-
-static rtl::OUString s_test_call(Callee * pCallee)
-{
- g_result = rtl::OUString();
- g_custom = rtl::OUString();
-
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject call test --> "));
-
- void * pObject = createObject(g_to_envDcp, pCallee);
-
- uno::Environment sourceEnv;
- uno::Environment targetEnv;
- void * mapped_object = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, &sourceEnv, &targetEnv);
- sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject);
- sourceEnv.clear();
-
- g_check = 1;
- callObject(g_from_envDcp, mapped_object);
- g_check = 0;
-
- targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object);
-
- result += g_result;
-
- return result;
-}
-
-
-static rtl::OString test_mapping_a(char const * pfrom_envDcp,
- char const * pto_envDcp,
- Callee * pCallee,
- char const * pRef)
-{
- g_from_envDcp = rtl::OUString(pfrom_envDcp, rtl_str_getLength(pfrom_envDcp), RTL_TEXTENCODING_ASCII_US);
- g_to_envDcp = rtl::OUString(pto_envDcp, rtl_str_getLength(pto_envDcp), RTL_TEXTENCODING_ASCII_US);
- g_ref = rtl::OUString(pRef, rtl_str_getLength(pRef), RTL_TEXTENCODING_ASCII_US);
-
- rtl::OUString result;
-
- g_check = 0;
-
- result += s_test_regetMapping ();
- result += s_test_objectRegistered(pCallee);
- result += s_test_remapObject (pCallee);
- result += s_test_mapBackObject (pCallee);
- result += s_test_mapObject (pCallee);
- result += s_test_call (pCallee);
-
- return rtl::OUStringToOString(result, RTL_TEXTENCODING_ASCII_US);
-}
-
-
-static rtl::OString s_replaceCPP(rtl::OString const & str)
-{
- rtl::OString result;
-
- sal_Int32 index_old = 0;
- sal_Int32 index = str.indexOf("CPP", index_old);
- while (index != -1)
- {
- result += str.copy(index_old, index - index_old);
- result += rtl::OString(CPPU_STRINGIFY(CPPU_ENV));
-
- index_old = index + 3;
- index = str.indexOf("CPP", index_old);
- }
- result += str.copy(index_old);
-
- return result;
-}
-
-
-extern "C" { static void s_dummy(rtl_uString * pMethod_name)
-{
- rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\t\tmethod: "));
- result += rtl::OUString(pMethod_name);
- result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" -dummy-\n"));
-
- g_result = result;
-}}
-
-static Callee * s_pCustomCallee = s_dummy;
-
-extern "C" { static void s_callee(rtl_uString * pMethod_name)
-{
- if (rtl::OUString(pMethod_name).equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::queryInterface"))))
- {
- rtl::OUString tmp;
-
- if (!g_from_envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))))
- {
- tmp += g_from_envDcp;
- tmp += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-->"));
- }
-
- tmp += g_custom;
-
- if (!g_to_envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))))
- {
- tmp += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-->"));
- tmp += g_to_envDcp;
- }
-
- g_custom = tmp;
- s_pCustomCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::queryInterface")).pData);
- }
- else
- s_pCustomCallee(pMethod_name);
-}}
-
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
-{
- int ret = 0;
- rtl::OString message;
-
- if (argc == 3 || argc == 6)
- {
- rtl::OString from_envDcp(argv[1]);
- from_envDcp = s_replaceCPP(from_envDcp);
-
- rtl::OString to_envDcp(argv[2]);
- to_envDcp = s_replaceCPP(to_envDcp);
-
- osl::Module module;
-
- rtl::OString ref;
- if (argc == 6 && rtl::OString(argv[3]).equals(rtl::OString("-s")))
- {
- rtl::OUString libName(argv[4], rtl_str_getLength(argv[4]), RTL_TEXTENCODING_ASCII_US);
- libName += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SAL_DLLEXTENSION));
- module.load(libName);
-
- s_pCustomCallee = (Callee *)module.getFunctionSymbol(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CALLEE")));
- if (!s_pCustomCallee)
- abort();
-
- ref = s_replaceCPP(rtl::OString(argv[5]));
- }
-
- message += rtl::OString("TESTING: ");
- message += from_envDcp;
- message += rtl::OString("-->");
- message += to_envDcp;
- message += rtl::OString("\n");
-
- message += test_mapping_a(from_envDcp.getStr(), to_envDcp.getStr(), s_callee, ref);
-
- if (message.indexOf(rtl::OString("FAILED")) == -1)
- message += rtl::OString("TESTS PASSED\n");
-
- else
- {
- message += rtl::OString("TESTS _NOT_ PASSED\n");
- ret = -1;
- }
- }
- else
- message = "Usage: <source env. dcp> <destination env. dcp> [-s testfun <ref. string>]\n";
-
-
- std::cout << message.getStr();
-
- return ret;
-}
diff --git a/cppu/test/purpenvhelper/TestEnv.cxx b/cppu/test/purpenvhelper/TestEnv.cxx
deleted file mode 100644
index 65a91230dd03..000000000000
--- a/cppu/test/purpenvhelper/TestEnv.cxx
+++ /dev/null
@@ -1,129 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-
-
-#include "cppu/EnvDcp.hxx"
-
-#include "cppu/helper/purpenv/Environment.hxx"
-#include "cppu/helper/purpenv/Mapping.hxx"
-
-
-
-#define LOG_LIFECYCLE_TestEnv
-#ifdef LOG_LIFECYCLE_TestEnv
-# include <iostream>
-# define LOG_LIFECYCLE_TestEnv_emit(x) x
-
-#else
-# define LOG_LIFECYCLE_TestEnv_emit(x)
-
-#endif
-
-
-class SAL_DLLPRIVATE TestEnv : public cppu::Enterable
-{
- int m_inCount;
-
- virtual ~TestEnv(void);
-
-public:
- explicit TestEnv(void);
-
-protected:
- virtual void v_enter(void);
- virtual void v_leave(void);
-
- virtual void v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam);
- virtual void v_callOut_v (uno_EnvCallee * pCallee, va_list * pParam);
-
- virtual int v_isValid (rtl::OUString * pReason);
-};
-
-TestEnv::TestEnv(void)
- : m_inCount(0)
-{
- LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::TestEnv(...)", this));
-}
-
-TestEnv::~TestEnv(void)
-{
- LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::~TestEnv(void)", this));
-}
-
-
-void TestEnv::v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam)
-{
- ++ m_inCount;
- pCallee(pParam);
- -- m_inCount;
-}
-
-void TestEnv::v_callOut_v(uno_EnvCallee * pCallee, va_list * pParam)
-{
- -- m_inCount;
- pCallee(pParam);
- ++ m_inCount;
-}
-
-void TestEnv::v_enter(void)
-{
- ++ m_inCount;
-}
-
-void TestEnv::v_leave(void)
-{
- -- m_inCount;
-}
-
-int TestEnv::v_isValid(rtl::OUString * pReason)
-{
- int result = m_inCount & 1;
-
- if (result)
- *pReason = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OK"));
-
- else
- *pReason = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("not entered/invoked"));
-
- return result;
-}
-
-extern "C" void SAL_CALL uno_initEnvironment(uno_Environment * pEnv) SAL_THROW_EXTERN_C()
-{
- cppu::helper::purpenv::Environment_initWithEnterable(pEnv, new TestEnv());
-}
-
-extern "C" void uno_ext_getMapping(uno_Mapping ** ppMapping,
- uno_Environment * pFrom,
- uno_Environment * pTo )
-{
- cppu::helper::purpenv::createMapping(ppMapping, pFrom, pTo);
-}
-
diff --git a/cppu/test/purpenvhelper/TestEnv.def b/cppu/test/purpenvhelper/TestEnv.def
deleted file mode 100644
index 1444d92c13fa..000000000000
--- a/cppu/test/purpenvhelper/TestEnv.def
+++ /dev/null
@@ -1,8 +0,0 @@
-HEAPSIZE 0
-EXPORTS
- uno_initEnvironment
- uno_ext_getMapping
-
-
-
-
diff --git a/cppu/test/purpenvhelper/makefile.mk b/cppu/test/purpenvhelper/makefile.mk
deleted file mode 100644
index 3d9b9eaedcbf..000000000000
--- a/cppu/test/purpenvhelper/makefile.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := purpenvhelper.test.pl
-
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
-
-
-.INCLUDE : settings.mk
-.INCLUDE : ../../source/helper/purpenv/export.mk
-
-
-SHL1TARGET := TestEnv_uno_uno
-SHL1IMPLIB := i$(SHL1TARGET)
-SHL1OBJS := $(SLO)$/TestEnv.obj
-SHL1STDLIBS := $(purpenv_helper_LIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB)
-SHL1DEF := TestEnv.def
-
-
-.INCLUDE : target.mk
-
-ALLTAR: $(BIN)$/$(TARGET)
-
-$(BIN)$/$(TARGET): purpenvhelper.test.pl
- @+$(COPY) $^ $@
diff --git a/cppu/test/purpose_envs/makefile.mk b/cppu/test/purpose_envs/makefile.mk
deleted file mode 100644
index 6e9fe8ebb067..000000000000
--- a/cppu/test/purpose_envs/makefile.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := purpose_envs.test.pl
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-
-
-.INCLUDE : settings.mk
-
-
-.INCLUDE : target.mk
-
-ALLTAR: $(BIN)$/$(TARGET)
-
-$(BIN)$/$(TARGET): purpose_envs.test.pl
- @+$(COPY) $^ $@
diff --git a/cppu/test/surrogate.hxx b/cppu/test/surrogate.hxx
deleted file mode 100644
index 3f479d3e5009..000000000000
--- a/cppu/test/surrogate.hxx
+++ /dev/null
@@ -1,155 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <uno/dispatcher.h>
-#include <uno/mapping.hxx>
-#include <uno/environment.h>
-#include <uno/data.h>
-#include <osl/diagnose.h>
-#include <osl/interlck.h>
-
-#include <com/sun/star/uno/Reference.hxx>
-
-/*
-//==================================================================================================
-struct UnoMediator : public uno_Interface
-{
- oslInterlockedCount nRef;
- uno_Interface * pDest;
-
- UnoMediator( uno_Interface * pDest );
- ~UnoMediator();
-};
-
-//--------------------------------------------------------------------------------------------------
-inline static void SAL_CALL UnoMediator_acquire( uno_Interface * pUnoI )
-{
- osl_incrementInterlockedCount( &((UnoMediator *)pUnoI)->nRef );
-}
-//--------------------------------------------------------------------------------------------------
-inline static void SAL_CALL UnoMediator_release( uno_Interface * pUnoI )
-{
- if (! osl_decrementInterlockedCount( &((UnoMediator *)pUnoI)->nRef ))
- delete (UnoMediator *)pUnoI;
-}
-//--------------------------------------------------------------------------------------------------
-inline static void SAL_CALL UnoMediator_dispatch(
- uno_Interface * pUnoI, const typelib_TypeDescription * pMemberType,
- void * pReturn, void * pArgs[], uno_Any ** ppException )
-{
- (*((UnoMediator *)pUnoI)->pDest->pDispatcher)(
- ((UnoMediator *)pUnoI)->pDest, pMemberType, pReturn, pArgs, ppException );
-}
-
-//__________________________________________________________________________________________________
-UnoMediator::UnoMediator( uno_Interface * pDest_ )
- : nRef( 0 )
- , pDest( pDest_ )
-{
- (*pDest->acquire)( pDest );
- uno_Interface::acquire = UnoMediator_acquire;
- uno_Interface::release = UnoMediator_release;
- uno_Interface::pDispatcher = UnoMediator_dispatch;
-}
-//__________________________________________________________________________________________________
-UnoMediator::~UnoMediator()
-{
- (*pDest->release)( pDest );
-}
-*/
-
-//##################################################################################################
-
-template< class T >
-inline sal_Bool makeSurrogate( com::sun::star::uno::Reference< T > & rOut,
- const com::sun::star::uno::Reference< T > & rOriginal )
-{
- rOut.clear();
-
- typelib_TypeDescription * pTD = 0;
- const com::sun::star::uno::Type & rType = ::getCppuType( &rOriginal );
- TYPELIB_DANGER_GET( &pTD, rType.getTypeLibType() );
- OSL_ENSURE( pTD, "### cannot get typedescription!" );
- if (pTD)
- {
- uno_Environment * pCppEnv1 = 0;
- uno_Environment * pCppEnv2 = 0;
-
- ::rtl::OUString aCppEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
- uno_getEnvironment( &pCppEnv1, aCppEnvTypeName.pData, 0 );
- uno_createEnvironment( &pCppEnv2, aCppEnvTypeName.pData, 0 ); // anonymous
-
- ::com::sun::star::uno::Mapping aMapping( pCppEnv1, pCppEnv2, ::rtl::OUString::createFromAscii("prot") );
- T * p = (T *)aMapping.mapInterface( rOriginal.get(), (typelib_InterfaceTypeDescription *)pTD );
- if (p)
- {
- rOut = p;
- p->release();
- }
-
- (*pCppEnv2->release)( pCppEnv2 );
- (*pCppEnv1->release)( pCppEnv1 );
-
- TYPELIB_DANGER_RELEASE( pTD );
- }
-/*
- ::com::sun::star::uno::Mapping aCpp2Uno( CPPU_CURRENT_LANGUAGE_BINDING_NAME, UNO_LB_UNO );
- ::com::sun::star::uno::Mapping aUno2Cpp( UNO_LB_UNO, CPPU_CURRENT_LANGUAGE_BINDING_NAME );
- OSL_ENSURE( aCpp2Uno.is() && aUno2Cpp.is(), "### cannot get mappings!" );
- if (aCpp2Uno.is() && aUno2Cpp.is())
- {
- typelib_TypeDescription * pTD = 0;
- const com::sun::star::uno::Type & rType = ::getCppuType( &rOriginal );
- TYPELIB_DANGER_GET( &pTD, rType.getTypeLibType() );
- OSL_ENSURE( pTD, "### cannot get typedescription!" );
- if (pTD)
- {
- uno_Interface * pUno = (uno_Interface *)aCpp2Uno.mapInterface(
- rOriginal.get(), (typelib_InterfaceTypeDescription *)pTD );
- if (pUno)
- {
- UnoMediator * pPseudo = new UnoMediator( pUno );
- (*pPseudo->acquire)( pPseudo );
- OSL_ENSURE( uno_equals( &pUno, &pPseudo, pTD, 0 ), "### interfaces don't belong to same object, but they do!?" );
- (*pUno->release)( pUno );
-
- T * pCpp = (T *)aUno2Cpp.mapInterface(
- pPseudo, (typelib_InterfaceTypeDescription *)pTD );
- (*pPseudo->release)( pPseudo );
-
- if (pCpp)
- {
- rOut = pCpp;
- pCpp->release();
- }
- }
- TYPELIB_DANGER_RELEASE( pTD );
- }
- }
-*/
- return rOut.is();
-}
diff --git a/cppu/test/test_Cincludes.c b/cppu/test/test_Cincludes.c
deleted file mode 100644
index bacdbc67209e..000000000000
--- a/cppu/test/test_Cincludes.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <uno/any2.h>
-#include <uno/data.h>
-#include <uno/dispatcher.h>
-#include <uno/environment.h>
-#include <uno/mapping.h>
-#include <uno/sequence2.h>
-#include <uno/threadpool.h>
-#include <typelib/typedescription.h>
-
diff --git a/cppu/test/test_cuno.c b/cppu/test/test_cuno.c
deleted file mode 100644
index 5757e0c229bb..000000000000
--- a/cppu/test/test_cuno.c
+++ /dev/null
@@ -1,784 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <stdio.h>
-#include <osl/diagnose.h>
-#include <osl/time.h>
-#include <osl/interlck.h>
-#include <rtl/alloc.h>
-//
-/*
-#include <uno/dispatcher.h>
-#include <uno/environment.h>
-#include <uno/mapping.hxx>
-*/
-#include <uno/data.h>
-#include <uno/any2.h>
-#include <uno/sequence2.h>
-
-#include <test/XLanguageBindingTest.h>
-
-
-typedef struct _InstanceData
-{
- void const * m_XInterface[2];
- void const * m_XLBTestBase[2];
- void const * m_XLanguageBindingTest[2];
-
- sal_Int32 m_refCount;
- typelib_TypeDescription* m_pTDXInterface;
- typelib_TypeDescription* m_pTDSeqTestElement;
- typelib_TypeDescription* m_pTDTestDataElements;
- test_TestDataElements m_data, m_structData;
-} InstanceData;
-
-#define GET_THIS( p ) (InstanceData *)((void **)p)[1]
-
-//==================================================================================================
-static void SAL_CALL c_acquire( void * p )
- SAL_THROW_EXTERN_C( )
-{
- CUNO_CALL( ((com_sun_star_uno_XInterface *)p) )->acquire( (com_sun_star_uno_XInterface *)p );
-}
-//==================================================================================================
-static void SAL_CALL c_release( void * p )
- SAL_THROW_EXTERN_C( )
-{
- CUNO_CALL( ((com_sun_star_uno_XInterface *)p) )->release( (com_sun_star_uno_XInterface *)p );
-}
-//==================================================================================================
-static void * SAL_CALL c_queryInterface( void * p, typelib_TypeDescriptionReference * pType )
- SAL_THROW_EXTERN_C( )
-{
- uno_Any aExc;
- com_sun_star_uno_XInterface * pRet = NULL;
-
- if (CUNO_EXCEPTION_OCCURED( CUNO_CALL( ((com_sun_star_uno_XInterface *)p) )->queryInterface( (com_sun_star_uno_XInterface *)p, &aExc, &pRet, pType ) ))
- {
- uno_any_destruct( &aExc, c_release );
- return NULL;
- }
- else
- {
- return pRet;
- }
-}
-
-void defaultConstructData(test_TestDataElements* pData, typelib_TypeDescriptionReference * pElemType)
-{
- pData->_Base._Base.Bool = sal_False;
- pData->_Base._Base.Char = 0;
- pData->_Base._Base.Byte = 0;
- pData->_Base._Base.Short = 0;
- pData->_Base._Base.UShort = 0;
- pData->_Base._Base.Long = 0;
- pData->_Base._Base.ULong = 0;
- pData->_Base._Base.Hyper = 0;
- pData->_Base._Base.UHyper = 0;
- pData->_Base._Base.Float = 0;
- pData->_Base._Base.Double = 0;
- pData->_Base._Base.Enum = test_TestEnum_TEST;
- pData->_Base.String = 0;
- rtl_uString_new(&pData->_Base.String);
- pData->_Base.Interface = 0;
- uno_any_construct(&pData->_Base.Any, 0, 0, 0);
-/* pData->Sequence = 0; */
- uno_type_sequence_construct(
- &pData->Sequence, pElemType, 0, 0, c_acquire );
-}
-
-void assign1( test_TestSimple* rData,
- sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
- sal_Int16 nShort, sal_uInt16 nUShort,
- sal_Int32 nLong, sal_uInt32 nULong,
- sal_Int64 nHyper, sal_uInt64 nUHyper,
- float fFloat, double fDouble,
- test_TestEnum eEnum)
-{
- rData->Bool = bBool;
- rData->Char = cChar;
- rData->Byte = nByte;
- rData->Short = nShort;
- rData->UShort = nUShort;
- rData->Long = nLong;
- rData->ULong = nULong;
- rData->Hyper = nHyper;
- rData->UHyper = nUHyper;
- rData->Float = fFloat;
- rData->Double = fDouble;
- rData->Enum = eEnum;
-}
-
-void assign2( test_TestElement* rData,
- sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
- sal_Int16 nShort, sal_uInt16 nUShort,
- sal_Int32 nLong, sal_uInt32 nULong,
- sal_Int64 nHyper, sal_uInt64 nUHyper,
- float fFloat, double fDouble,
- test_TestEnum eEnum, rtl_uString* rStr,
- com_sun_star_uno_XInterface* xTest,
- uno_Any* rAny,
- typelib_TypeDescription* pTDIface)
-{
- assign1( (test_TestSimple *)rData,
- bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
- eEnum );
- rtl_uString_assign(&rData->String, rStr);
-/* uno_assignData(&rData->Interface, pTDIface, &xTest, pTDIface, c_queryInterface, c_acquire, c_release); */
- if ( rData->Interface )
- CUNO_CALL(rData->Interface)->release(rData->Interface);
-
- if ( xTest )
- {
- CUNO_CALL(xTest)->acquire(xTest);
- rData->Interface = xTest;
- } else
- {
- rData->Interface = 0;
- }
-
- uno_type_any_assign(&rData->Any, rAny->pData, rAny->pType, c_acquire, c_release);
-}
-
-void assign3( test_TestDataElements* rData,
- sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
- sal_Int16 nShort, sal_uInt16 nUShort,
- sal_Int32 nLong, sal_uInt32 nULong,
- sal_Int64 nHyper, sal_uInt64 nUHyper,
- float fFloat, double fDouble,
- test_TestEnum eEnum, rtl_uString* rStr,
- com_sun_star_uno_XInterface* xTest,
- uno_Any* rAny,
- /* sequence< test_TestElement >*/uno_Sequence* rSequence,
- typelib_TypeDescription* pTDIface,
- typelib_TypeDescription* pTDSeqElem)
-{
- assign2( (test_TestElement *)rData,
- bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
- eEnum,rStr, xTest, rAny, pTDIface );
- uno_sequence_assign(&rData->Sequence, rSequence, pTDSeqElem, c_release);
-}
-
-/* XInterface =============================================================================== */
-
-/* XInterface::acquire */
-cuno_ErrorCode SAL_CALL XInterface_acquire( com_sun_star_uno_XInterface* pIFace)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- osl_incrementInterlockedCount( &pImpl->m_refCount );
- return CUNO_ERROR_NONE;
-}
-
-/* XInterface::release */
-cuno_ErrorCode SAL_CALL XInterface_release( com_sun_star_uno_XInterface * pIFace )
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- if( osl_decrementInterlockedCount( &pImpl->m_refCount ) == 0)
- {
- uno_destructData(&pImpl->m_data, pImpl->m_pTDTestDataElements, c_release);
- uno_destructData(&pImpl->m_structData, pImpl->m_pTDTestDataElements, c_release);
- typelib_typedescription_release(pImpl->m_pTDXInterface);
- typelib_typedescription_release(pImpl->m_pTDSeqTestElement);
- typelib_typedescription_release(pImpl->m_pTDTestDataElements);
- rtl_freeMemory( pImpl );
- }
- return CUNO_ERROR_NONE;
-}
-
-/* XInterface::queryInterface */
-cuno_ErrorCode SAL_CALL XInterface_queryInterface( com_sun_star_uno_XInterface * pIFace, uno_Any * pExc, com_sun_star_uno_XInterface ** pRet, typelib_TypeDescriptionReference * pTypeRef)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- com_sun_star_uno_XInterface * pIFaceRet = 0;
- if ( pTypeRef )
- {
- if( ! rtl_ustr_ascii_compare_WithLength( pTypeRef->pTypeName->buffer, pTypeRef->pTypeName->length,
- "com.sun.star.uno.XInterface" ) )
- pIFaceRet = (com_sun_star_uno_XInterface *)&pImpl->m_XInterface;
- else if( !rtl_ustr_ascii_compare_WithLength( pTypeRef->pTypeName->buffer, pTypeRef->pTypeName->length,
- "test.XLBTestBase" ) )
- pIFaceRet = (com_sun_star_uno_XInterface *)&pImpl->m_XLBTestBase;
- else if( !rtl_ustr_ascii_compare_WithLength( pTypeRef->pTypeName->buffer, pTypeRef->pTypeName->length,
- "test.XLanguageBindingTest" ) )
- pIFaceRet = (com_sun_star_uno_XInterface *)&pImpl->m_XLanguageBindingTest;
-
- if( pIFaceRet )
- {
- CUNO_CALL(pIFaceRet)->acquire( pIFaceRet );
- *pRet = pIFaceRet;
- } else
- {
- *pRet = 0;
- }
- }
- return CUNO_ERROR_NONE;
-}
-
-/* XLBTestBase =============================================================================== */
-
-/* XLBTestBase::getBool */
-cuno_ErrorCode SAL_CALL XLBTestBase_getBool( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Bool *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.Bool;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setBool */
-cuno_ErrorCode SAL_CALL XLBTestBase_setBool( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Bool value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.Bool = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getByte */
-cuno_ErrorCode SAL_CALL XLBTestBase_getByte( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int8 *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.Byte;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setByte */
-cuno_ErrorCode SAL_CALL XLBTestBase_setByte( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int8 value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.Byte = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getChar */
-cuno_ErrorCode SAL_CALL XLBTestBase_getChar( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Unicode *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.Char;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setChar */
-cuno_ErrorCode SAL_CALL XLBTestBase_setChar( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Unicode value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.Char = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getShort */
-cuno_ErrorCode SAL_CALL XLBTestBase_getShort( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int16 *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.Short;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setShort */
-cuno_ErrorCode SAL_CALL XLBTestBase_setShort( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int16 value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.Short = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getUShort */
-cuno_ErrorCode SAL_CALL XLBTestBase_getUShort( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt16 *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.UShort;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setUShort */
-cuno_ErrorCode SAL_CALL XLBTestBase_setUShort( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt16 value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.UShort = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getLong */
-cuno_ErrorCode SAL_CALL XLBTestBase_getLong( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int32 *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.Long;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setLong */
-cuno_ErrorCode SAL_CALL XLBTestBase_setLong( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int32 value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.Long = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getULong */
-cuno_ErrorCode SAL_CALL XLBTestBase_getULong( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt32 *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.ULong;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setULong */
-cuno_ErrorCode SAL_CALL XLBTestBase_setULong( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt32 value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.ULong = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getHyper */
-cuno_ErrorCode SAL_CALL XLBTestBase_getHyper( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int64 *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.Hyper;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setHyper */
-cuno_ErrorCode SAL_CALL XLBTestBase_setHyper( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int64 value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.Hyper = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getUHyper */
-cuno_ErrorCode SAL_CALL XLBTestBase_getUHyper( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt64 *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.UHyper;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setUHyper */
-cuno_ErrorCode SAL_CALL XLBTestBase_setUHyper( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt64 value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.UHyper = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getFloat */
-cuno_ErrorCode SAL_CALL XLBTestBase_getFloat( test_XLBTestBase * pIFace, uno_Any * pExc, float *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.Float;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setFloat */
-cuno_ErrorCode SAL_CALL XLBTestBase_setFloat( test_XLBTestBase * pIFace, uno_Any * pExc, float value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.Float = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getDouble */
-cuno_ErrorCode SAL_CALL XLBTestBase_getDouble( test_XLBTestBase * pIFace, uno_Any * pExc, double *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.Double;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setDouble */
-cuno_ErrorCode SAL_CALL XLBTestBase_setDouble( test_XLBTestBase * pIFace, uno_Any * pExc, double value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.Double = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getEnum */
-cuno_ErrorCode SAL_CALL XLBTestBase_getEnum( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestEnum *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = pImpl->m_data._Base._Base.Enum;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setEnum */
-cuno_ErrorCode SAL_CALL XLBTestBase_setEnum( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestEnum value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- pImpl->m_data._Base._Base.Enum = value;
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getString */
-cuno_ErrorCode SAL_CALL XLBTestBase_getString( test_XLBTestBase * pIFace, uno_Any * pExc, rtl_uString **pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- *pRet = 0;
- rtl_uString_newFromString(pRet, pImpl->m_data._Base.String);
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setString */
-cuno_ErrorCode SAL_CALL XLBTestBase_setString( test_XLBTestBase * pIFace, uno_Any * pExc, rtl_uString *value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- rtl_uString_assign(&pImpl->m_data._Base.String, value);
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getInterface */
-cuno_ErrorCode SAL_CALL XLBTestBase_getInterface( test_XLBTestBase * pIFace, uno_Any * pExc, com_sun_star_uno_XInterface **pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
-/* uno_copyData(pRet, &pImpl->m_data._Base.Interface, pImpl->m_pTDXInterface, c_acquire); */
- if ( pImpl->m_data._Base.Interface )
- {
- CUNO_CALL(pImpl->m_data._Base.Interface)->acquire(pImpl->m_data._Base.Interface);
- *pRet = pImpl->m_data._Base.Interface;
- } else
- {
- *pRet = 0;
- }
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setInterface */
-cuno_ErrorCode SAL_CALL XLBTestBase_setInterface( test_XLBTestBase * pIFace, uno_Any * pExc, com_sun_star_uno_XInterface *value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
-/* uno_assignData(&pImpl->m_data._Base.Interface, pImpl->m_pTDXInterface, &value, pImpl->m_pTDXInterface, c_queryInterface, c_acquire, c_release); */
- if ( pImpl->m_data._Base.Interface )
- CUNO_CALL(pImpl->m_data._Base.Interface)->release(pImpl->m_data._Base.Interface);
-
- if ( value )
- {
- CUNO_CALL(value)->acquire(value);
- pImpl->m_data._Base.Interface = value;
- } else
- {
- pImpl->m_data._Base.Interface = 0;
- }
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getAny */
-cuno_ErrorCode SAL_CALL XLBTestBase_getAny( test_XLBTestBase * pIFace, uno_Any * pExc, uno_Any *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- typelib_TypeDescription* pTD = 0;
- typelib_typedescriptionreference_getDescription(&pTD, pImpl->m_data._Base.Any.pType);
- uno_any_construct(pRet, pImpl->m_data._Base.Any.pData, pTD, c_acquire);
- typelib_typedescription_release(pTD);
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setAny */
-cuno_ErrorCode SAL_CALL XLBTestBase_setAny( test_XLBTestBase * pIFace, uno_Any * pExc, uno_Any *value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- typelib_TypeDescription* pTD = 0;
- typelib_typedescriptionreference_getDescription(&pTD, value->pType);
- uno_any_assign(&pImpl->m_data._Base.Any, value->pData, pTD, c_acquire, c_release);
- typelib_typedescription_release(pTD);
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getSequence */
-cuno_ErrorCode SAL_CALL XLBTestBase_getSequence( test_XLBTestBase * pIFace, uno_Any * pExc, /*sequence< test.TestElement >*/uno_Sequence **pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- uno_sequence_construct(pRet, pImpl->m_pTDSeqTestElement, pImpl->m_data.Sequence->elements, pImpl->m_data.Sequence->nElements, c_acquire);
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setSequence */
-cuno_ErrorCode SAL_CALL XLBTestBase_setSequence( test_XLBTestBase * pIFace, uno_Any * pExc, /*sequence< test.TestElement >*/uno_Sequence *value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- uno_sequence_assign(&pImpl->m_data.Sequence, value, pImpl->m_pTDSeqTestElement, c_release);
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getStruct */
-cuno_ErrorCode SAL_CALL XLBTestBase_getStruct( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestDataElements *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- uno_copyData(pRet, &pImpl->m_structData, pImpl->m_pTDTestDataElements, c_acquire);
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setStruct */
-cuno_ErrorCode SAL_CALL XLBTestBase_setStruct( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestDataElements *value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- uno_assignData(&pImpl->m_structData, pImpl->m_pTDTestDataElements, value, pImpl->m_pTDTestDataElements, c_queryInterface, c_acquire, c_release);
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setValues */
-cuno_ErrorCode SAL_CALL XLBTestBase_setValues( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Bool aBool, sal_Unicode aChar, sal_Int8 aByte, sal_Int16 aShort, sal_uInt16 aUShort, sal_Int32 aLong, sal_uInt32 aULong, sal_Int64 aHyper, sal_uInt64 aUHyper, float aFloat, double aDouble, test_TestEnum aEnum, rtl_uString* aString, com_sun_star_uno_XInterface *aInterface, uno_Any * aAny, /*sequence< test.TestElement >*/ uno_Sequence * aSequence, test_TestDataElements *aStruct)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- assign3(&pImpl->m_data, aBool, aChar, aByte, aShort, aUShort, aLong, aULong, aHyper, aUHyper, aFloat, aDouble,
- aEnum, aString, aInterface, aAny,aSequence, pImpl->m_pTDXInterface, pImpl->m_pTDSeqTestElement);
- uno_assignData(&pImpl->m_structData, pImpl->m_pTDTestDataElements, aStruct, pImpl->m_pTDTestDataElements, c_queryInterface, c_acquire, c_release);
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::setValues2 */
-cuno_ErrorCode SAL_CALL XLBTestBase_setValues2( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestDataElements* pRet, sal_Bool* aBool, sal_Unicode* aChar, sal_Int8* aByte, sal_Int16* aShort, sal_uInt16* aUShort, sal_Int32* aLong, sal_uInt32* aULong, sal_Int64* aHyper, sal_uInt64* aUHyper, float* aFloat, double* aDouble, test_TestEnum* aEnum, rtl_uString** aString, com_sun_star_uno_XInterface **aInterface, uno_Any * aAny, /*sequence< test.TestElement >*/ uno_Sequence ** aSequence, test_TestDataElements * aStruct)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- assign3(&pImpl->m_data, *aBool, *aChar, *aByte, *aShort, *aUShort, *aLong, *aULong, *aHyper, *aUHyper, *aFloat, *aDouble,
- *aEnum, *aString, *aInterface, aAny, *aSequence, pImpl->m_pTDXInterface, pImpl->m_pTDSeqTestElement);
- uno_assignData(&pImpl->m_structData, pImpl->m_pTDTestDataElements, aStruct, pImpl->m_pTDTestDataElements, c_queryInterface, c_acquire, c_release);
- uno_copyData(pRet, &pImpl->m_structData, pImpl->m_pTDTestDataElements, c_acquire);
- return CUNO_ERROR_NONE;
-}
-/* XLBTestBase::getValues */
-cuno_ErrorCode SAL_CALL XLBTestBase_getValues( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestDataElements* pRet, sal_Bool* aBool, sal_Unicode* aChar, sal_Int8* aByte, sal_Int16* aShort, sal_uInt16* aUShort, sal_Int32* aLong, sal_uInt32* aULong, sal_Int64* aHyper, sal_uInt64* aUHyper, float* aFloat, double* aDouble, test_TestEnum* aEnum, rtl_uString** aString, com_sun_star_uno_XInterface **aInterface, uno_Any * aAny, /*sequence< test.TestElement >*/ uno_Sequence ** aSequence, test_TestDataElements * aStruct)
-{
- typelib_TypeDescription* pTD = 0;
- InstanceData * pImpl = GET_THIS( pIFace );
- *aBool = pImpl->m_data._Base._Base.Bool;
- *aChar = pImpl->m_data._Base._Base.Char;
- *aByte = pImpl->m_data._Base._Base.Byte;
- *aShort = pImpl->m_data._Base._Base.Short;
- *aUShort = pImpl->m_data._Base._Base.UShort;
- *aLong = pImpl->m_data._Base._Base.Long;
- *aULong = pImpl->m_data._Base._Base.ULong;
- *aHyper = pImpl->m_data._Base._Base.Hyper;
- *aUHyper = pImpl->m_data._Base._Base.UHyper;
- *aFloat = pImpl->m_data._Base._Base.Float;
- *aDouble = pImpl->m_data._Base._Base.Double;
- *aEnum = pImpl->m_data._Base._Base.Enum;
- *aString = 0;
- rtl_uString_newFromString(aString, pImpl->m_data._Base.String);
-/* uno_copyData(aInterface, &pImpl->m_data._Base.Interface, pImpl->m_pTDXInterface, c_acquire); */
- if ( pImpl->m_data._Base.Interface )
- {
- CUNO_CALL(pImpl->m_data._Base.Interface)->acquire(pImpl->m_data._Base.Interface);
- *aInterface = pImpl->m_data._Base.Interface;
- } else
- {
- *aInterface = 0;
- }
- typelib_typedescriptionreference_getDescription(&pTD, pImpl->m_data._Base.Any.pType);
- uno_any_construct(aAny, pImpl->m_data._Base.Any.pData, pTD, c_acquire);
- typelib_typedescription_release(pTD);
- uno_sequence_construct(aSequence, pImpl->m_pTDSeqTestElement, pImpl->m_data.Sequence->elements, pImpl->m_data.Sequence->nElements, c_acquire);
- uno_copyData(aStruct, &pImpl->m_structData, pImpl->m_pTDTestDataElements, c_acquire);
- uno_copyData(pRet, &pImpl->m_structData, pImpl->m_pTDTestDataElements, c_acquire);
- return CUNO_ERROR_NONE;
-}
-
-/* XLanguageBindingTest =============================================================================== */
-
-/* XLanguageBindingTest::getRuntimeException */
-cuno_ErrorCode SAL_CALL XLanguageBindingTest_getRuntimeException( test_XLanguageBindingTest * pIFace, uno_Any * pExc, sal_Int32 *pRet)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- com_sun_star_uno_RuntimeException aExc;
- typelib_TypeDescription * pTD = 0;
- rtl_uString * pTypeName = 0;
- uno_Any excp;
-
- rtl_uString_newFromAscii( &pTypeName, "com.sun.star.uno.RuntimeException");
- typelib_typedescription_getByName(&pTD, pTypeName);
-
- aExc._Base.Message = 0;
- rtl_uString_newFromAscii(&aExc._Base.Message, "dum dum dum ich tanz im kreis herum...");
- aExc._Base.Context = 0;
- if (CUNO_EXCEPTION_OCCURED( CUNO_CALL(pIFace)->getInterface( (test_XLBTestBase *)pIFace, &excp, &aExc._Base.Context) ))
- {
- /* ... */
- uno_any_destruct( &excp, 0 );
- }
-
- uno_any_construct(pExc, &aExc, pTD, c_acquire);
- uno_destructData(&aExc, pTD, c_release);
- typelib_typedescription_release(pTD);
- rtl_uString_release(pTypeName);
-
- return CUNO_ERROR_EXCEPTION;
-}
-/* XLanguageBindingTest::setRuntimeException */
-cuno_ErrorCode SAL_CALL XLanguageBindingTest_setRuntimeException( test_XLanguageBindingTest * pIFace, uno_Any * pExc, sal_Int32 value)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- com_sun_star_uno_RuntimeException aExc;
- typelib_TypeDescription * pTD = 0;
- rtl_uString * pTypeName = 0;
- uno_Any excp;
-
- rtl_uString_newFromAscii( &pTypeName, "com.sun.star.uno.RuntimeException");
- typelib_typedescription_getByName(&pTD, pTypeName);
-
- aExc._Base.Message = 0;
- rtl_uString_newFromAscii(&aExc._Base.Message, "dum dum dum ich tanz im kreis herum...");
- aExc._Base.Context = 0;
- if (CUNO_EXCEPTION_OCCURED( CUNO_CALL(pIFace)->getInterface( (test_XLBTestBase *)pIFace, &excp, &aExc._Base.Context) ))
- {
- /* ... */
- uno_any_destruct( &excp, 0 );
- }
-
- uno_any_construct(pExc, &aExc, pTD, c_acquire);
- uno_destructData(&aExc, pTD, c_release);
- typelib_typedescription_release(pTD);
- rtl_uString_release(pTypeName);
-
- return CUNO_ERROR_EXCEPTION;
-}
-/* XLanguageBindingTest::raiseException */
-cuno_ErrorCode SAL_CALL XLanguageBindingTest_raiseException( test_XLanguageBindingTest * pIFace, uno_Any * pExc, test_TestDataElements* pRet, sal_Bool* aBool, sal_Unicode* aChar, sal_Int8* aByte, sal_Int16* aShort, sal_uInt16* aUShort, sal_Int32* aLong, sal_uInt32* aULong, sal_Int64* aHyper, sal_uInt64* aUHyper, float* aFloat, double* aDouble, test_TestEnum* aEnum, rtl_uString ** aString, com_sun_star_uno_XInterface ** aInterface, uno_Any* aAny, /*sequence< test.TestElement >*/ uno_Sequence ** aSequence, test_TestDataElements* AStruct)
-{
- InstanceData * pImpl = GET_THIS( pIFace );
- com_sun_star_lang_IllegalArgumentException aExc;
- typelib_TypeDescription * pTD = 0;
- rtl_uString * pTypeName = 0;
- uno_Any excp;
-
- rtl_uString_newFromAscii( &pTypeName, "com.sun.star.lang.IllegalArgumentException");
- typelib_typedescription_getByName(&pTD, pTypeName);
-
- aExc.ArgumentPosition = 5;
- aExc._Base.Message = 0;
- rtl_uString_newFromAscii(&aExc._Base.Message, "dum dum dum ich tanz im kreis herum...");
- aExc._Base.Context = 0;
- if (CUNO_EXCEPTION_OCCURED( CUNO_CALL(pIFace)->getInterface( (test_XLBTestBase *)pIFace, &excp, &aExc._Base.Context) ))
- {
- /* ... */
- uno_any_destruct( &excp, 0 );
- }
-
- uno_any_construct(pExc, &aExc, pTD, c_acquire);
- uno_destructData(&aExc, pTD, c_release);
- typelib_typedescription_release(pTD);
- rtl_uString_release(pTypeName);
-
- return CUNO_ERROR_EXCEPTION;
-}
-
-
-static const com_sun_star_uno_XInterface_ftab s_XInterface_ftab={
- XInterface_queryInterface,
- XInterface_acquire,
- XInterface_release,
- };
-static const test_XLBTestBase_ftab s_XLBTestBase_ftab={
- XInterface_queryInterface,
- XInterface_acquire,
- XInterface_release,
- XLBTestBase_getBool,
- XLBTestBase_setBool,
- XLBTestBase_getByte,
- XLBTestBase_setByte,
- XLBTestBase_getChar,
- XLBTestBase_setChar,
- XLBTestBase_getShort,
- XLBTestBase_setShort,
- XLBTestBase_getUShort,
- XLBTestBase_setUShort,
- XLBTestBase_getLong,
- XLBTestBase_setLong,
- XLBTestBase_getULong,
- XLBTestBase_setULong,
- XLBTestBase_getHyper,
- XLBTestBase_setHyper,
- XLBTestBase_getUHyper,
- XLBTestBase_setUHyper,
- XLBTestBase_getFloat,
- XLBTestBase_setFloat,
- XLBTestBase_getDouble,
- XLBTestBase_setDouble,
- XLBTestBase_getEnum,
- XLBTestBase_setEnum,
- XLBTestBase_getString,
- XLBTestBase_setString,
- XLBTestBase_getInterface,
- XLBTestBase_setInterface,
- XLBTestBase_getAny,
- XLBTestBase_setAny,
- XLBTestBase_getSequence,
- XLBTestBase_setSequence,
- XLBTestBase_getStruct,
- XLBTestBase_setStruct,
- XLBTestBase_setValues,
- XLBTestBase_setValues2,
- XLBTestBase_getValues
- };
-static const test_XLanguageBindingTest_ftab s_XLanguageBindingTest_ftab={
- XInterface_queryInterface,
- XInterface_acquire,
- XInterface_release,
- XLBTestBase_getBool,
- XLBTestBase_setBool,
- XLBTestBase_getByte,
- XLBTestBase_setByte,
- XLBTestBase_getChar,
- XLBTestBase_setChar,
- XLBTestBase_getShort,
- XLBTestBase_setShort,
- XLBTestBase_getUShort,
- XLBTestBase_setUShort,
- XLBTestBase_getLong,
- XLBTestBase_setLong,
- XLBTestBase_getULong,
- XLBTestBase_setULong,
- XLBTestBase_getHyper,
- XLBTestBase_setHyper,
- XLBTestBase_getUHyper,
- XLBTestBase_setUHyper,
- XLBTestBase_getFloat,
- XLBTestBase_setFloat,
- XLBTestBase_getDouble,
- XLBTestBase_setDouble,
- XLBTestBase_getEnum,
- XLBTestBase_setEnum,
- XLBTestBase_getString,
- XLBTestBase_setString,
- XLBTestBase_getInterface,
- XLBTestBase_setInterface,
- XLBTestBase_getAny,
- XLBTestBase_setAny,
- XLBTestBase_getSequence,
- XLBTestBase_setSequence,
- XLBTestBase_getStruct,
- XLBTestBase_setStruct,
- XLBTestBase_setValues,
- XLBTestBase_setValues2,
- XLBTestBase_getValues,
- XLanguageBindingTest_getRuntimeException,
- XLanguageBindingTest_setRuntimeException,
- XLanguageBindingTest_raiseException
- };
-
-com_sun_star_uno_XInterface* SAL_CALL createTestObject()
-{
- InstanceData *pObj;
- rtl_uString* usXInterface = 0;
- rtl_uString* usSeqTestElement = 0;
- rtl_uString* usTestDataElements = 0;
-
- /* Create a data instance of the component */
- pObj= (InstanceData*)rtl_allocateMemory( sizeof( InstanceData) );
- pObj->m_XInterface[0] = &s_XInterface_ftab;
- pObj->m_XInterface[1] = pObj;
- pObj->m_XLBTestBase[0] = &s_XLBTestBase_ftab;
- pObj->m_XLBTestBase[1] = pObj;
- pObj->m_XLanguageBindingTest[0] = &s_XLanguageBindingTest_ftab;
- pObj->m_XLanguageBindingTest[1] = pObj;
-
- /* Initalize the reference counter member and other component data */
- pObj->m_refCount= 1;
-
- pObj->m_pTDXInterface = 0;
- rtl_uString_newFromAscii( &usXInterface, "com.sun.star.uno.XInterface");
- typelib_typedescription_getByName(&pObj->m_pTDXInterface, usXInterface);
-
- pObj->m_pTDSeqTestElement = 0;
- rtl_uString_newFromAscii( &usSeqTestElement, "[]test.TestElement");
- typelib_typedescription_getByName(&pObj->m_pTDSeqTestElement, usSeqTestElement);
-
- pObj->m_pTDTestDataElements = 0;
- rtl_uString_newFromAscii( &usTestDataElements, "test.TestDataElements");
- typelib_typedescription_getByName(&pObj->m_pTDTestDataElements, usTestDataElements);
-
- defaultConstructData(&pObj->m_data, pObj->m_pTDSeqTestElement->pWeakRef);
- defaultConstructData(&pObj->m_structData, pObj->m_pTDSeqTestElement->pWeakRef);
-
- rtl_uString_release(usXInterface);
- rtl_uString_release(usSeqTestElement);
- rtl_uString_release(usTestDataElements);
- return (com_sun_star_uno_XInterface *)&pObj->m_XInterface;
-}
-
diff --git a/cppu/test/test_di.cxx b/cppu/test/test_di.cxx
deleted file mode 100644
index 88e8f9ac639d..000000000000
--- a/cppu/test/test_di.cxx
+++ /dev/null
@@ -1,888 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if !defined(OSL_DEBUG_LEVEL) || OSL_DEBUG_LEVEL == 0
-# undef OSL_DEBUG_LEVEL
-# define OSL_DEBUG_LEVEL 2
-#endif
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-
-#include <stdio.h>
-#include <string.h>
-#include <rtl/ustring.hxx>
-#include <osl/diagnose.h>
-#include <osl/time.h>
-#include <sal/types.h>
-//
-#include <uno/dispatcher.h>
-#include <uno/environment.h>
-#include <uno/mapping.hxx>
-#include <uno/data.h>
-
-// #include <uno/cuno.h>
-// #include <test/XLanguageBindingTest.h>
-
-#include <cppuhelper/weak.hxx>
-#include <cppuhelper/queryinterface.hxx>
-#include <cppu/macros.hxx>
-#include <test/XLanguageBindingTest.hpp>
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/lang/DisposedException.hpp>
-
-
-using namespace test;
-using namespace cppu;
-using namespace osl;
-using namespace rtl;
-using namespace com::sun::star;
-using namespace com::sun::star::uno;
-
-
-//==================================================================================================
-sal_Bool equals( const test::TestElement & rData1, const test::TestElement & rData2 )
-{
- OSL_ENSURE( rData1.Bool == rData2.Bool, "### bool does not match!" );
- OSL_ENSURE( rData1.Char == rData2.Char, "### char does not match!" );
- OSL_ENSURE( rData1.Byte == rData2.Byte, "### byte does not match!" );
- OSL_ENSURE( rData1.Short == rData2.Short, "### short does not match!" );
- OSL_ENSURE( rData1.UShort == rData2.UShort, "### unsigned short does not match!" );
- OSL_ENSURE( rData1.Long == rData2.Long, "### long does not match!" );
- OSL_ENSURE( rData1.ULong == rData2.ULong, "### unsigned long does not match!" );
- OSL_ENSURE( rData1.Hyper == rData2.Hyper, "### hyper does not match!" );
- OSL_ENSURE( rData1.UHyper == rData2.UHyper, "### unsigned hyper does not match!" );
- OSL_ENSURE( rData1.Float == rData2.Float, "### float does not match!" );
- OSL_ENSURE( rData1.Double == rData2.Double, "### double does not match!" );
- OSL_ENSURE( rData1.Enum == rData2.Enum, "### enum does not match!" );
- OSL_ENSURE( rData1.String == rData2.String, "### string does not match!" );
- OSL_ENSURE( rData1.Interface == rData2.Interface, "### interface does not match!" );
- OSL_ENSURE( rData1.Any == rData2.Any, "### any does not match!" );
-
- return (rData1.Bool == rData2.Bool &&
- rData1.Char == rData2.Char &&
- rData1.Byte == rData2.Byte &&
- rData1.Short == rData2.Short &&
- rData1.UShort == rData2.UShort &&
- rData1.Long == rData2.Long &&
- rData1.ULong == rData2.ULong &&
- rData1.Hyper == rData2.Hyper &&
- rData1.UHyper == rData2.UHyper &&
- rData1.Float == rData2.Float &&
- rData1.Double == rData2.Double &&
- rData1.Enum == rData2.Enum &&
- rData1.String == rData2.String &&
- rData1.Interface == rData2.Interface &&
- rData1.Any == rData2.Any);
-}
-//==================================================================================================
-sal_Bool equals( const test::TestData & rData1, const test::TestData & rData2 )
-{
- sal_Int32 nLen;
-
- if ((rData1.Sequence == rData2.Sequence) &&
- equals( (const test::TestElement &)rData1, (const test::TestElement &)rData2 ) &&
- (nLen = rData1.Sequence.getLength()) == rData2.Sequence.getLength())
- {
- // once again by hand sequence ==
- const test::TestElement * pElements1 = rData1.Sequence.getConstArray();
- const test::TestElement * pElements2 = rData2.Sequence.getConstArray();
- for ( ; nLen--; )
- {
- if (! equals( pElements1[nLen], pElements2[nLen] ))
- {
- OSL_ENSURE( sal_False, "### sequence element did not match!" );
- return sal_False;
- }
- }
- return sal_True;
- }
- return sal_False;
-}
-//==================================================================================================
-void assign( test::TestElement & rData,
- sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
- sal_Int16 nShort, sal_uInt16 nUShort,
- sal_Int32 nLong, sal_uInt32 nULong,
- sal_Int64 nHyper, sal_uInt64 nUHyper,
- float fFloat, double fDouble,
- test::TestEnum eEnum, const ::rtl::OUString& rStr,
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
- const ::com::sun::star::uno::Any& rAny )
-{
- rData.Bool = bBool;
- rData.Char = cChar;
- rData.Byte = nByte;
- rData.Short = nShort;
- rData.UShort = nUShort;
- rData.Long = nLong;
- rData.ULong = nULong;
- rData.Hyper = nHyper;
- rData.UHyper = nUHyper;
- rData.Float = fFloat;
- rData.Double = fDouble;
- rData.Enum = eEnum;
- rData.String = rStr;
- rData.Interface = xTest;
- rData.Any = rAny;
-}
-//==================================================================================================
-void assign( test::TestData & rData,
- sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
- sal_Int16 nShort, sal_uInt16 nUShort,
- sal_Int32 nLong, sal_uInt32 nULong,
- sal_Int64 nHyper, sal_uInt64 nUHyper,
- float fFloat, double fDouble,
- test::TestEnum eEnum, const ::rtl::OUString& rStr,
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
- const ::com::sun::star::uno::Any& rAny,
- const com::sun::star::uno::Sequence< test::TestElement >& rSequence )
-{
- assign( (test::TestElement &)rData,
- bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
- eEnum, rStr, xTest, rAny );
- rData.Sequence = rSequence;
-}
-
-//==================================================================================================
-class TestDummy : public OWeakObject
-{
-public:
- sal_Int32 getRefCount() const
- { return m_refCount; }
-
- virtual ~TestDummy()
- { OSL_TRACE( "> scalar TestDummy dtor <\n" ); }
-};
-//==================================================================================================
-class Test_Impl : public cppu::WeakImplHelper1< XLanguageBindingTest >
-{
- test::TestData _aData, _aStructData;
-
-public:
- sal_Int32 getRefCount() const
- { return m_refCount; }
-
- virtual ~Test_Impl()
- { OSL_TRACE( "> scalar Test_Impl dtor <\n" ); }
-
- // XLBTestBase
- virtual void SAL_CALL setValues( sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
- sal_Int16 nShort, sal_uInt16 nUShort,
- sal_Int32 nLong, sal_uInt32 nULong,
- sal_Int64 nHyper, sal_uInt64 nUHyper,
- float fFloat, double fDouble,
- test::TestEnum eEnum, const ::rtl::OUString& rStr,
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
- const ::com::sun::star::uno::Any& rAny,
- const ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
- const test::TestData& rStruct )
- throw(com::sun::star::uno::RuntimeException);
-
- virtual test::TestData SAL_CALL setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
- sal_Int16& nShort, sal_uInt16& nUShort,
- sal_Int32& nLong, sal_uInt32& nULong,
- sal_Int64& nHyper, sal_uInt64& nUHyper,
- float& fFloat, double& fDouble,
- test::TestEnum& eEnum, rtl::OUString& rStr,
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
- ::com::sun::star::uno::Any& rAny,
- ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
- test::TestData& rStruct )
- throw(com::sun::star::uno::RuntimeException);
-
- virtual test::TestData SAL_CALL getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
- sal_Int16& nShort, sal_uInt16& nUShort,
- sal_Int32& nLong, sal_uInt32& nULong,
- sal_Int64& nHyper, sal_uInt64& nUHyper,
- float& fFloat, double& fDouble,
- test::TestEnum& eEnum, rtl::OUString& rStr,
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
- ::com::sun::star::uno::Any& rAny,
- ::com::sun::star::uno::Sequence< test::TestElement >& rSequence,
- test::TestData& rStruct )
- throw(com::sun::star::uno::RuntimeException);
-
- virtual test::SmallStruct echoSmallStruct(const test::SmallStruct& rStruct) throw(com::sun::star::uno::RuntimeException)
- { return rStruct; }
- virtual test::MediumStruct echoMediumStruct(const test::MediumStruct& rStruct) throw(com::sun::star::uno::RuntimeException)
- { return rStruct; }
- virtual test::BigStruct echoBigStruct(const test::BigStruct& rStruct) throw(com::sun::star::uno::RuntimeException)
- { return rStruct; }
- virtual test::AllFloats echoAllFloats(const test::AllFloats& rStruct) throw(com::sun::star::uno::RuntimeException)
- { return rStruct; }
-
- virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Bool; }
- virtual sal_Int8 SAL_CALL getByte() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Byte; }
- virtual sal_Unicode SAL_CALL getChar() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Char; }
- virtual sal_Int16 SAL_CALL getShort() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Short; }
- virtual sal_uInt16 SAL_CALL getUShort() throw(com::sun::star::uno::RuntimeException)
- { return _aData.UShort; }
- virtual sal_Int32 SAL_CALL getLong() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Long; }
- virtual sal_uInt32 SAL_CALL getULong() throw(com::sun::star::uno::RuntimeException)
- { return _aData.ULong; }
- virtual sal_Int64 SAL_CALL getHyper() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Hyper; }
- virtual sal_uInt64 SAL_CALL getUHyper() throw(com::sun::star::uno::RuntimeException)
- { return _aData.UHyper; }
- virtual float SAL_CALL getFloat() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Float; }
- virtual double SAL_CALL getDouble() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Double; }
- virtual test::TestEnum SAL_CALL getEnum() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Enum; }
- virtual rtl::OUString SAL_CALL getString() throw(com::sun::star::uno::RuntimeException)
- { return _aData.String; }
- virtual com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getInterface( ) throw(com::sun::star::uno::RuntimeException)
- { return _aData.Interface; }
- virtual com::sun::star::uno::Any SAL_CALL getAny() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Any; }
- virtual com::sun::star::uno::Sequence< test::TestElement > SAL_CALL getSequence() throw(com::sun::star::uno::RuntimeException)
- { return _aData.Sequence; }
- virtual test::TestData SAL_CALL getStruct() throw(com::sun::star::uno::RuntimeException)
- { return _aStructData; }
-
- virtual void SAL_CALL setBool( sal_Bool _bool ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Bool = _bool; }
- virtual void SAL_CALL setByte( sal_Int8 _byte ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Byte = _byte; }
- virtual void SAL_CALL setChar( sal_Unicode _char ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Char = _char; }
- virtual void SAL_CALL setShort( sal_Int16 _short ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Short = _short; }
- virtual void SAL_CALL setUShort( sal_uInt16 _ushort ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.UShort = _ushort; }
- virtual void SAL_CALL setLong( sal_Int32 _long ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Long = _long; }
- virtual void SAL_CALL setULong( sal_uInt32 _ulong ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.ULong = _ulong; }
- virtual void SAL_CALL setHyper( sal_Int64 _hyper ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Hyper = _hyper; }
- virtual void SAL_CALL setUHyper( sal_uInt64 _uhyper ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.UHyper = _uhyper; }
- virtual void SAL_CALL setFloat( float _float ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Float = _float; }
- virtual void SAL_CALL setDouble( double _double ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Double = _double; }
- virtual void SAL_CALL setEnum( test::TestEnum _enum ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Enum = _enum; }
- virtual void SAL_CALL setString( const ::rtl::OUString& _string ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.String = _string; }
- virtual void SAL_CALL setInterface( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _interface ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Interface = _interface; }
- virtual void SAL_CALL setAny( const ::com::sun::star::uno::Any& _any ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Any = _any; }
- virtual void SAL_CALL setSequence( const ::com::sun::star::uno::Sequence<test::TestElement >& _sequence ) throw(::com::sun::star::uno::RuntimeException)
- { _aData.Sequence = _sequence; }
- virtual void SAL_CALL setStruct( const test::TestData& _struct ) throw(::com::sun::star::uno::RuntimeException)
- { _aStructData = _struct; }
-
- // XLanguageBindingTest
- virtual test::TestData SAL_CALL raiseException( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte, sal_Int16& nShort, sal_uInt16& nUShort, sal_Int32& nLong, sal_uInt32& nULong, sal_Int64& nHyper, sal_uInt64& nUHyper, float& fFloat, double& fDouble, test::TestEnum& eEnum, ::rtl::OUString& aString, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xInterface, ::com::sun::star::uno::Any& aAny, ::com::sun::star::uno::Sequence<test::TestElement >& aSequence,test::TestData& aStruct )
- throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-
- virtual sal_Int32 SAL_CALL getRuntimeException() throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setRuntimeException( sal_Int32 _runtimeexception ) throw(::com::sun::star::uno::RuntimeException);
-};
-//__________________________________________________________________________________________________
-void Test_Impl::setValues( sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte,
- sal_Int16 nShort, sal_uInt16 nUShort,
- sal_Int32 nLong, sal_uInt32 nULong,
- sal_Int64 nHyper, sal_uInt64 nUHyper,
- float fFloat, double fDouble,
- test::TestEnum eEnum, const ::rtl::OUString& rStr,
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
- const ::com::sun::star::uno::Any& rAny,
- const ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
- const test::TestData& rStruct )
- throw(com::sun::star::uno::RuntimeException)
-{
- assign( _aData,
- bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
- eEnum, rStr, xTest, rAny, rSequence );
- _aStructData = rStruct;
-}
-//__________________________________________________________________________________________________
-test::TestData Test_Impl::setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
- sal_Int16& nShort, sal_uInt16& nUShort,
- sal_Int32& nLong, sal_uInt32& nULong,
- sal_Int64& nHyper, sal_uInt64& nUHyper,
- float& fFloat, double& fDouble,
- test::TestEnum& eEnum, rtl::OUString& rStr,
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
- ::com::sun::star::uno::Any& rAny,
- ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
- test::TestData& rStruct )
- throw(com::sun::star::uno::RuntimeException)
-{
- assign( _aData,
- bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
- eEnum, rStr, xTest, rAny, rSequence );
- _aStructData = rStruct;
- return _aStructData;
-}
-//__________________________________________________________________________________________________
-test::TestData Test_Impl::getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte,
- sal_Int16& nShort, sal_uInt16& nUShort,
- sal_Int32& nLong, sal_uInt32& nULong,
- sal_Int64& nHyper, sal_uInt64& nUHyper,
- float& fFloat, double& fDouble,
- test::TestEnum& eEnum, rtl::OUString& rStr,
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest,
- ::com::sun::star::uno::Any& rAny,
- ::com::sun::star::uno::Sequence<test::TestElement >& rSequence,
- test::TestData& rStruct )
- throw(com::sun::star::uno::RuntimeException)
-{
- bBool = _aData.Bool;
- cChar = _aData.Char;
- nByte = _aData.Byte;
- nShort = _aData.Short;
- nUShort = _aData.UShort;
- nLong = _aData.Long;
- nULong = _aData.ULong;
- nHyper = _aData.Hyper;
- nUHyper = _aData.UHyper;
- fFloat = _aData.Float;
- fDouble = _aData.Double;
- eEnum = _aData.Enum;
- rStr = _aData.String;
- xTest = _aData.Interface;
- rAny = _aData.Any;
- rSequence = _aData.Sequence;
- rStruct = _aStructData;
- return _aStructData;
-}
-
-//==================================================================================================
-static sal_Bool performTest(
- const Reference< XLanguageBindingTest > & xLBT,
- const Reference< XInterface > & xDummyInterface )
-{
- OSL_ENSURE( xLBT.is() && xDummyInterface.is(), "### no test interfaces!" );
- if (xLBT.is() && xDummyInterface.is())
- {
- // this data is never ever granted access to by calls other than equals(), assign()!
- test::TestData aData; // test against this data
-
- assign( (test::TestElement &)aData,
- sal_True, '@', 17, 0x1234, 0xfedc, 0x12345678, 0xfedcba98,
- SAL_CONST_INT64(0x123456789abcdef0),
- SAL_CONST_UINT64(0xfedcba9876543210),
- (float)17.0815, 3.1415926359, TestEnum_LOLA,
- OUString::createFromAscii("dumdidum"), xDummyInterface,
- makeAny( xDummyInterface ) );
- aData.Sequence = Sequence<test::TestElement >( (const test::TestElement *)&aData, 1 );
- OSL_ENSURE( aData.Any == xDummyInterface, "### unexpected any!" );
- OSL_ENSURE( !(aData.Any != xDummyInterface), "### unexpected any!" );
-
- // aData complete ==> never touched again
- //================================================================================
-
- // this is a manually copy of aData for first setting...
- test::TestData aSetData0( aData ); // copy ctor
- // assignment
- test::TestData aSetData1 = aSetData0;
-
- test::TestData aSetData;
- assign( (test::TestElement &)aSetData,
- aSetData1.Bool, aSetData1.Char, aSetData1.Byte, aSetData1.Short, aSetData1.UShort,
- aSetData1.Long, aSetData1.ULong, aSetData1.Hyper, aSetData1.UHyper,
- aSetData1.Float, aSetData1.Double,
- aSetData1.Enum, aSetData1.String, aSetData1.Interface, aSetData1.Any );
- // switch over to new sequence allocation
- aSetData.Sequence = Sequence<test::TestElement >( (const test::TestElement *)&aSetData, 1 );
-
- xLBT->setValues(
- aSetData.Bool, aSetData.Char, aSetData.Byte, aSetData.Short, aSetData.UShort,
- aSetData.Long, aSetData.ULong, aSetData.Hyper, aSetData.UHyper, aSetData.Float, aSetData.Double,
- aSetData.Enum, aSetData.String, aSetData.Interface, aSetData.Any, aSetData.Sequence, aSetData );
-
- {
- test::TestData aRet, aRet2;
- xLBT->getValues(
- aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort,
- aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double,
- aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 );
-
- OSL_ASSERT( equals( aData, aRet ) && equals( aData, aRet2 ) );
-
- // set last retrieved values
- test::TestData aSV2ret = xLBT->setValues2(
- aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort,
- aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double,
- aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 );
-
- OSL_ASSERT( equals( aData, aSV2ret ) && equals( aData, aRet2 ) );
- }
- {
- test::TestData aRet, aRet2;
- test::TestData aGVret = xLBT->getValues(
- aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort,
- aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double,
- aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 );
-
- OSL_ASSERT( equals( aData, aRet ) && equals( aData, aRet2 ) && equals( aData, aGVret ) );
-
- // set last retrieved values
- xLBT->setBool( aRet.Bool );
- xLBT->setChar( aRet.Char );
- xLBT->setByte( aRet.Byte );
- xLBT->setShort( aRet.Short );
- xLBT->setUShort( aRet.UShort );
- xLBT->setLong( aRet.Long );
- xLBT->setULong( aRet.ULong );
- xLBT->setHyper( aRet.Hyper );
- xLBT->setUHyper( aRet.UHyper );
- xLBT->setFloat( aRet.Float );
- xLBT->setDouble( aRet.Double );
- xLBT->setEnum( aRet.Enum );
- xLBT->setString( aRet.String );
- xLBT->setInterface( aRet.Interface );
- xLBT->setAny( aRet.Any );
- xLBT->setSequence( aRet.Sequence );
- xLBT->setStruct( aRet2 );
- }
- {
- test::TestData aRet, aRet2;
- aRet.Hyper = xLBT->getHyper();
- aRet.UHyper = xLBT->getUHyper();
- aRet.Float = xLBT->getFloat();
- aRet.Double = xLBT->getDouble();
- aRet.Byte = xLBT->getByte();
- aRet.Char = xLBT->getChar();
- aRet.Bool = xLBT->getBool();
- aRet.Short = xLBT->getShort();
- aRet.UShort = xLBT->getUShort();
- aRet.Long = xLBT->getLong();
- aRet.ULong = xLBT->getULong();
- aRet.Enum = xLBT->getEnum();
- aRet.String = xLBT->getString();
- aRet.Interface = xLBT->getInterface();
- aRet.Any = xLBT->getAny();
- aRet.Sequence = xLBT->getSequence();
- aRet2 = xLBT->getStruct();
-
- OSL_ASSERT( equals( aData, aRet ) && equals( aData, aRet2 ) );
- }
- {
- test::SmallStruct aIn(1, 2);
- test::SmallStruct aOut = xLBT->echoSmallStruct(aIn);
- OSL_ASSERT( memcmp(&aIn, &aOut, sizeof(test::SmallStruct)) == 0 );
- }
- {
- test::MediumStruct aIn(1, 2, 3, 4);
- test::MediumStruct aOut = xLBT->echoMediumStruct(aIn);
- OSL_ASSERT( memcmp(&aIn, &aOut, sizeof(test::MediumStruct)) == 0 );
- }
- {
- test::BigStruct aIn(1, 2, 3, 4, 5, 6, 7, 8);
- test::BigStruct aOut = xLBT->echoBigStruct(aIn);
- OSL_ASSERT( memcmp(&aIn, &aOut, sizeof(test::BigStruct)) == 0 );
- }
- {
- test::AllFloats aIn(1.1, 2.2, 3.3, 4.4);
- test::AllFloats aOut = xLBT->echoAllFloats(aIn);
- return( memcmp(&aIn, &aOut, sizeof(test::AllFloats)) == 0 );
- }
- }
- return sal_False;
-}
-
-//__________________________________________________________________________________________________
-test::TestData Test_Impl::raiseException( sal_Bool& /*bBool*/, sal_Unicode& /*cChar*/, sal_Int8& /*nByte*/, sal_Int16& /*nShort*/, sal_uInt16& /*nUShort*/, sal_Int32& /*nLong*/, sal_uInt32& /*nULong*/, sal_Int64& /*nHyper*/, sal_uInt64& /*nUHyper*/, float& /*fFloat*/, double& /*fDouble*/, test::TestEnum& /*eEnum*/, ::rtl::OUString& /*aString*/, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& /*xInterface*/, ::com::sun::star::uno::Any& /*aAny*/, ::com::sun::star::uno::Sequence< test::TestElement >& /*aSequence*/, test::TestData& /*aStruct*/ )
- throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
-{
- lang::IllegalArgumentException aExc;
- aExc.ArgumentPosition = 5;
- aExc.Message = OUString::createFromAscii( "dum dum dum ich tanz im kreis herum..." );
- aExc.Context = getInterface();
- throw aExc;
-}
-//__________________________________________________________________________________________________
-sal_Int32 Test_Impl::getRuntimeException() throw(::com::sun::star::uno::RuntimeException)
-{
- lang::DisposedException aExc;
- aExc.Message = OUString::createFromAscii( "dum dum dum ich tanz im kreis herum..." );
- aExc.Context = getInterface();
- throw aExc;
-}
-//__________________________________________________________________________________________________
-void Test_Impl::setRuntimeException( sal_Int32 /*_runtimeexception*/ ) throw(::com::sun::star::uno::RuntimeException)
-{
- lang::DisposedException aExc;
- aExc.Message = OUString::createFromAscii( "dum dum dum ich tanz im kreis herum..." );
- aExc.Context = getInterface();
- throw aExc;
-}
-
-static void raising1( const Reference< XLanguageBindingTest > & xLBT )
-{
- test::TestData aRet, aRet2;
- xLBT->raiseException(
- aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort,
- aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double,
- aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 );
-}
-static void raising2( const Reference< XLanguageBindingTest > & xLBT )
-{
- try
- {
- raising1( xLBT );
- }
- catch (RuntimeException &)
- {
- }
- catch (...)
- {
- throw;
- }
-}
-//==================================================================================================
-sal_Bool raiseException( const Reference< XLanguageBindingTest > & xLBT )
-{
- try
- {
- xLBT->getRuntimeException();
- }
- catch (lang::DisposedException & exc)
- {
- OSL_ENSURE( exc.Context == xLBT->getInterface() &&
- exc.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("dum dum dum ich tanz im kreis herum...") ),
- "### unexpected exception content!" );
- }
- catch (RuntimeException &)
- {
- }
- catch (Exception &)
- {
- return sal_False;
- }
- catch (...)
- {
- return sal_False;
- }
-
- sal_Int32 nCount = 0;
- try
- {
- try
- {
- try
- {
- raising2( xLBT );
- }
- catch (RuntimeException &)
- {
- }
- catch (lang::IllegalArgumentException aExc)
- {
- ++nCount;
- OSL_ENSURE( aExc.ArgumentPosition == 5 &&
- aExc.Context == xLBT->getInterface() &&
- aExc.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("dum dum dum ich tanz im kreis herum...") ),
- "### unexpected exception content!" );
-
- /** it is certain, that the RuntimeException testing will fail, if no */
- xLBT->getRuntimeException();
- }
- }
- catch (const RuntimeException & rExc)
- {
- ++nCount;
- OSL_ENSURE( rExc.Context == xLBT->getInterface() &&
- rExc.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("dum dum dum ich tanz im kreis herum...") ),
- "### unexpected exception content!" );
-
- /** it is certain, that the RuntimeException testing will fail, if no */
- xLBT->setRuntimeException( 0xcafebabe );
- }
- catch (lang::IllegalArgumentException &)
- {
- }
- }
- catch (Exception & rExc)
- {
- ++nCount;
- OSL_ENSURE( rExc.Context == xLBT->getInterface() &&
- rExc.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("dum dum dum ich tanz im kreis herum...") ),
- "### unexpected exception content!" );
- return (nCount == 3 &&
- rExc.Context == xLBT->getInterface() &&
- rExc.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("dum dum dum ich tanz im kreis herum...") ));
- }
- return sal_False;
-}
-
-//==================================================================================================
-static void checkInvalidInterfaceQuery(
- Reference< XInterface > const & xObj )
-{
- try
- {
- Any aRet( xObj->queryInterface( ::getCppuType( (const lang::IllegalArgumentException *)0 ) ) );
- OSL_ASSERT( ! aRet.hasValue() );
- }
- catch (RuntimeException &)
- {
- }
- try
- {
- Reference< lang::XComponent > xComp( xObj, UNO_QUERY_THROW );
- OSL_ASSERT( 0 );
- }
- catch (RuntimeException & /*exc*/)
- {
-// OString str( OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ) );
-// OSL_TRACE( str.getStr() );
- }
-}
-
-//==================================================================================================
-static bool perform_test(
- Reference< XLanguageBindingTest > const & xObj,
- Reference< XInterface > const & xDummy )
-{
- checkInvalidInterfaceQuery( xObj );
-
- if (performTest( xObj, xDummy ))
- {
- ::fprintf( stderr, "> invocation test succeeded!\n" );
- if (raiseException( xObj ))
- {
- ::fprintf( stderr, "> exception test succeeded!\n" );
- return true;
- }
- else
- {
- ::fprintf( stderr, "> exception test failed!\n" );
- }
- }
-
- ::fprintf( stderr, "> dynamic invocation test failed!\n" );
- return false;
-}
-
-//==================================================================================================
-void test_CppBridge(void)
-{
- // C++-UNO test
- {
- TestDummy * p = new TestDummy();
- Reference< XInterface > xDummy( *p );
- {
- Test_Impl * p2 = new Test_Impl();
- Reference< XLanguageBindingTest > xOriginal( p2 );
- checkInvalidInterfaceQuery( xOriginal );
- {
- const char * pExtraMapping = "";
-
- Reference< XLanguageBindingTest > xMapped;
- {
- uno_Interface * pUnoI = 0;
-
- OUString aCppEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
- OUString aUnoEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) );
-
- uno_Environment * pCppEnv = 0;
- uno_Environment * pUnoEnv = 0;
- ::uno_getEnvironment( &pCppEnv, aCppEnvTypeName.pData, 0 );
- ::uno_getEnvironment( &pUnoEnv, aUnoEnvTypeName.pData, 0 );
-
- // C++ -> UNO
- Mapping mapping( pCppEnv, pUnoEnv );
- mapping.mapInterface( (void **)&pUnoI, xOriginal.get(), ::getCppuType( &xOriginal ) );
-
-#ifdef EXTRA_MAPPING
- // UNO -> ano C++a
- ::uno_createEnvironment( &pCppEnv, aCppEnvTypeName.pData, 0 );
- mapping = Mapping( pUnoEnv, pCppEnv );
- mapping.mapInterface( (void **)&xMapped, pUnoI, ::getCppuType( &xMapped ) );
- // ano C++a -> ano UNOa
- ::uno_createEnvironment( &pUnoEnv, aUnoEnvTypeName.pData, 0 );
- mapping = Mapping( pCppEnv, pUnoEnv );
- mapping.mapInterface( (void **)&pUnoI, xMapped.get(), ::getCppuType( &xMapped ) );
- pExtraMapping = " <-> c++ <-> uno";
-#endif
-
- // ano UNOa -> ano C++b
- ::uno_createEnvironment( &pCppEnv, aCppEnvTypeName.pData, 0 );
- mapping = Mapping( pUnoEnv, pCppEnv );
- mapping.mapInterface( (void **)&xMapped, pUnoI, ::getCppuType( &xMapped ) );
- (*pUnoI->release)( pUnoI );
- (*pCppEnv->release)( pCppEnv );
- (*pUnoEnv->release)( pUnoEnv );
- }
-
- if (perform_test( xMapped, xDummy ))
- {
- ::fprintf( stderr, "> C++-UNO test (c++ <-> uno%s <-> c++ [component impl]) succeeded!\n", pExtraMapping );
- }
- else
- {
- ::fprintf( stderr, "> C++-UNO test (c++ <-> uno%s <-> c++ [component impl]) failed!\n", pExtraMapping );
- exit( 1 );
- }
- }
- OSL_ENSURE( p2->getRefCount() == 1, "### test object ref count > 1 !" );
- }
- OSL_ENSURE( p->getRefCount() == 1, "### dummy object ref count > 1 !" );
- }
-}
-
-//==================================================================================================
-void test_CBridge(void)
-{
- // C-UNO test
- {
- TestDummy * p = new TestDummy();
- Reference< XInterface > xDummy( *p );
- {
- Test_Impl * p2 = new Test_Impl();
- Reference< XLanguageBindingTest > xOriginal( p2 );
- checkInvalidInterfaceQuery( xOriginal );
- {
- Reference< XLanguageBindingTest > xMapped;
- {
- uno_Interface * pUnoI2 = 0;
- void * pC = 0;
- uno_Interface * pUnoI1 = 0;
-
- OUString aCppEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
- OUString aCEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_C) );
- OUString aUnoEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) );
-
- // C++ -> UNO
- uno_Environment * pCppEnv = 0;
- uno_Environment * pUnoEnv = 0;
- ::uno_getEnvironment( &pCppEnv, aCppEnvTypeName.pData, 0 );
- ::uno_getEnvironment( &pUnoEnv, aUnoEnvTypeName.pData, 0 );
- Mapping aCpp2Uno( pCppEnv, pUnoEnv );
- aCpp2Uno.mapInterface( (void **)&pUnoI1, xOriginal.get(), ::getCppuType( &xOriginal ) );
- (*pCppEnv->release)( pCppEnv );
-
- // UNO -> C
- uno_Environment * pCEnv = 0;
- ::uno_getEnvironment( &pCEnv, aCEnvTypeName.pData, 0 );
- Mapping aUno2C( pUnoEnv, pCEnv );
- aUno2C.mapInterface( &pC, pUnoI1, ::getCppuType( &xOriginal ) );
- (*pUnoI1->release)( pUnoI1 );
- (*pUnoEnv->release)( pUnoEnv );
-
- // C -> ano UNO
- uno_Environment * pAnoUnoEnv = 0;
- ::uno_createEnvironment( &pAnoUnoEnv, aUnoEnvTypeName.pData, 0 ); // anonymous
- Mapping aC2Uno( pCEnv, pAnoUnoEnv );
- aC2Uno.mapInterface( (void **)&pUnoI2, pC, ::getCppuType( &xOriginal ) );
- (*pCEnv->pExtEnv->releaseInterface)( pCEnv->pExtEnv, pC );
- (*pCEnv->release)( pCEnv );
-
- // ano UNO -> ano C++
- uno_Environment * pAnoCppEnv = 0;
- ::uno_createEnvironment( &pAnoCppEnv, aCppEnvTypeName.pData, 0 );
- Mapping aUno2Cpp( pAnoUnoEnv, pAnoCppEnv );
- (*pAnoCppEnv->release)( pAnoCppEnv );
- (*pAnoUnoEnv->release)( pAnoUnoEnv );
- aUno2Cpp.mapInterface( (void **)&xMapped, pUnoI2, ::getCppuType( &xOriginal ) );
- (*pUnoI2->release)( pUnoI2 );
- }
-
- if (perform_test( xMapped, xDummy ))
- {
- ::fprintf( stderr, "> C-UNO test (c++ <-> uno <-> c <-> uno <-> c++ [component impl]) succeeded!\n" );
- }
- else
- {
- ::fprintf( stderr, "> C-UNO test (c++ <-> uno <-> c <-> uno <-> c++ [component impl]) failed!\n" );
- exit( 1 );
- }
- }
- OSL_ENSURE( p->getRefCount() == 1, "### test object ref count > 1 !" );
- }
- OSL_ENSURE( p->getRefCount() == 1, "### dummy object ref count > 1 !" );
- }
-}
-#if 0
-//==================================================================================================
-extern "C" com_sun_star_uno_XInterface* SAL_CALL createTestObject();
-
-void test_CBridge2(void)
-{
- // C-UNO test
- {
- TestDummy * p = new TestDummy();
- Reference< XInterface > xDummy( *p );
- {
- com_sun_star_uno_XInterface* pXIface = createTestObject();
- test_XLanguageBindingTest* pXLBTest = 0;
- uno_Any aExc;
- Reference< XLanguageBindingTest > xMapped;
-
- OSL_ENSURE( pXIface != 0, "create test object failed\n");
-
- /* Get interface XFoo2 */
- if (CUNO_EXCEPTION_OCCURED( CUNO_CALL(pXIface)->queryInterface( pXIface, &aExc, (com_sun_star_uno_XInterface**)&pXLBTest, ::getCppuType( &xMapped ).getTypeLibType()) ))
- {
- uno_any_destruct( &aExc, 0 );
- }
- OSL_ENSURE( pXLBTest != 0, "query_Interface XLanguageBindingTest failed\n");
-
- Mapping aC2Cpp(
- OUString( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_C) ),
- OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ) );
- aC2Cpp.mapInterface( (void **)&xMapped, pXLBTest, ::getCppuType( &xMapped ) );
-
- OSL_ENSURE( xMapped.is(), "mapping interface failed\n");
-
- if (perform_test( xMapped, xDummy ))
- {
- ::fprintf( stderr, "> second C-UNO test (c++ <-> uno <-> c [component impl]) succeeded!\n" );
- }
- else
- {
- ::fprintf( stderr, "> second C-UNO test (c++ <-> uno <-> c [component impl]) failed!\n" );
- exit( 1 );
- }
-
-
- CUNO_CALL(pXIface)->release( pXIface );
- CUNO_CALL(pXLBTest)->release( (com_sun_star_uno_XInterface *)pXLBTest );
- }
- OSL_ENSURE( p->getRefCount() == 1, "### dummy object ref count > 1 !" );
- }
-
-}
-#endif
-
diff --git a/cppu/test/test_sec.cxx b/cppu/test/test_sec.cxx
deleted file mode 100644
index 0bc3585e23d0..000000000000
--- a/cppu/test/test_sec.cxx
+++ /dev/null
@@ -1,211 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-
-#include <stdio.h>
-
-
-#include <uno/current_context.hxx>
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/loader/XImplementationLoader.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-
-using namespace rtl;
-using namespace cppu;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::security;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::loader;
-using namespace com::sun::star::registry;
-using namespace com::sun::star::container;
-
-
-static inline void out( const sal_Char * p )
-{
- ::fprintf( stderr, p );
-}
-static inline void out( const OUString & r )
-{
- OString aStr( OUStringToOString( r, RTL_TEXTENCODING_ASCII_US ) );
- out( aStr.getStr() );
-}
-
-
-static Reference< XInterface > load(
- const Reference< XMultiServiceFactory > & xMgr,
- const char * service,
- const char * implName, const char * activator, const char * loc ) throw ()
-{
- Reference< XInterface > xRet(
- xMgr->createInstance( OUString::createFromAscii( service ) ) );
- if (xRet.is())
- return xRet;
-
- try
- {
- Reference< XImplementationLoader > xLoader(
- xMgr->createInstance( OUString::createFromAscii( activator ) ), UNO_QUERY );
- if (xLoader.is())
- {
- Reference< XSingleServiceFactory > xFac( xLoader->activate(
- OUString::createFromAscii( implName ), OUString(),
- OUString::createFromAscii( loc ),
- Reference< XRegistryKey >() ), UNO_QUERY );
- if (xFac.is())
- return xFac->createInstance();
- }
- else
- {
- out( "### cannot activate loader \"" );
- out( activator );
- out( "\"!\n" );
- }
- }
- catch (Exception &)
- {
- out( "### cannot activate service \"" );
- out( service );
- out( "\"!\n" );
- }
- return Reference< XInterface >();
-}
-
-static void setEnv( const Reference< XMultiServiceFactory > & xMgr ) throw ()
-{
- OSL_ASSERT( xMgr.is() );
- Reference< XNameContainer > xContext( getCurrentContext(), UNO_QUERY );
- OSL_ASSERT( xContext.is() );
-
- try
- {
- xContext->insertByName(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.lang.ServiceManager") ),
- makeAny( xMgr ) );
- xContext->insertByName(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.security.AccessController") ),
- makeAny( load( xMgr,
- "com.sun.star.security.AccessController",
- "com.sun.star.comp.security.AccessController",
- "com.sun.star.loader.Java2",
- "com.sun.star.comp.security.AccessController" ) ) );
- xContext->insertByName(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.security.auth.login.LoginContext") ),
- makeAny( load( xMgr,
- "com.sun.star.security.auth.login.LoginContext",
- "com.sun.star.comp.security.auth.login.LoginContext",
- "com.sun.star.loader.Java2",
- "com.sun.star.comp.security.auth.login.LoginContext" ) ) );
- }
- catch (Exception & rExc)
- {
- out( "### exception occured: " );
- out( rExc.Message );
- out( "\n" );
- }
-}
-
-//##################################################################################################
-//##################################################################################################
-//##################################################################################################
-
-struct PrivAction : WeakImplHelper1< XPrivilegedAction >
-{
- virtual Any SAL_CALL run()
- throw (Exception)
- {
- throw IllegalArgumentException(
- OUString::createFromAscii("testtest"), (OWeakObject *)this, (sal_Int16)5 );
- }
-};
-
-struct Thread1 : public OThread
-{
- Reference< XMultiServiceFactory > _xMgr;
-
- Thread1( const Reference< XMultiServiceFactory > & xMgr )
- : _xMgr( xMgr )
- {}
-
- void f()
- {
- Reference< XNameAccess > xAccess( getCurrentContext(), UNO_QUERY );
- OSL_ASSERT( xAccess->getByName( OUString::createFromAscii("a") ) == (sal_Int16)5 );
- Reference< XNameContainer > xCont( getCurrentContext(), UNO_QUERY );
- xCont->insertByName( OUString::createFromAscii("b"), makeAny( (sal_Int32)6 ) );
- }
- virtual void SAL_CALL run()
- {
- try
- {
- setEnv( _xMgr );
- Reference< XNameContainer > xCont( getCurrentContext(), UNO_QUERY );
- xCont->insertByName( OUString::createFromAscii("a"), makeAny( (sal_Int32)5 ) );
- f();
- Reference< XNameAccess > xAccess( getCurrentContext(), UNO_QUERY );
- OSL_ASSERT( xAccess->getByName( OUString::createFromAscii("b") ) == (sal_Int16)6 );
-
-// checkPermission(
-// Permission( OUString::createFromAscii("java.io.FilePermission"),
-// OUString::createFromAscii("f:\\userprofiles.dat"),
-// OUString::createFromAscii("read") ) );
-
-// try
-// {
-// Reference< XCurrentContext > xContext( getCurrentContext() );
-// Reference< XAccessController > xACC( xContext->getAccessController() );
-// xACC->doPrivileged( new PrivAction(), Reference< XAccessControlContext >() );
-// }
-// catch (IllegalArgumentException & r)
-// {
-// OSL_ASSERT( r.ArgumentPosition == 5 &&
-// r.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("testtest") ));
-// }
- }
- catch (RuntimeException & rExc)
- {
- out( rExc.Message );
- }
- }
-};
-
-
-void test_security( const Reference< XMultiServiceFactory > & xMgr ) throw ()
-{
- setEnv( xMgr );
- OSL_ASSERT( getCurrentContext()->getServiceManager().is() );
-
- Thread1 thread1( xMgr );
- thread1.create();
- thread1.join();
- out( "> exiting...\n" );
-}
diff --git a/cppu/test/testcppu.cxx b/cppu/test/testcppu.cxx
deleted file mode 100644
index b132ab0cb281..000000000000
--- a/cppu/test/testcppu.cxx
+++ /dev/null
@@ -1,1241 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if !defined(OSL_DEBUG_LEVEL) || OSL_DEBUG_LEVEL == 0
-# undef OSL_DEBUG_LEVEL
-# define OSL_DEBUG_LEVEL 2
-#endif
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-
-#include "sal/main.h"
-
-#include <stdio.h>
-
-#include <uno/environment.h>
-#include <uno/mapping.hxx>
-
-#include <uno/dispatcher.h>
-#include <rtl/alloc.h>
-#include <rtl/unload.h>
-
-#include <cppuhelper/queryinterface.hxx>
-#include <com/sun/star/uno/Exception.hpp>
-#include <com/sun/star/uno/XInterface.hpp>
-#include <com/sun/star/uno/Uik.hpp>
-#include <rtl/ustring.hxx>
-#include <osl/diagnose.h>
-#include <osl/interlck.h>
-#include <sal/types.h>
-
-#include <test/Test1.hpp>
-#include <test/Test2.hpp>
-#include <test/TdTest1.hpp>
-#include <test/Test3.hpp>
-#include <test/Base.hpp>
-#include <test/Base1.hpp>
-#include <test/Base2.hpp>
-
-#include <uno/current_context.hxx>
-#include <cppuhelper/bootstrap.hxx>
-#include <cppuhelper/implbase1.hxx>
-
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
-#include <com/sun/star/uno/XCurrentContext.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <test/XSimpleInterface.hpp>
-#include <test/XLanguageBindingTest.hpp>
-#include <com/sun/star/registry/XSimpleRegistry.hpp>
-
-using namespace test;
-using namespace rtl;
-using namespace osl;
-
-using namespace com::sun::star;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::registry;
-using namespace test;
-
-
-sal_Int32 getSize( const Type & rT )
-{
- sal_Int32 nSize;
- typelib_TypeDescription * pTD = 0;
- typelib_typedescriptionreference_getDescription( &pTD, rT.getTypeLibType() );
- nSize = pTD->nSize;
- typelib_typedescription_release( pTD );
- return nSize;
-}
-
-/*
- * main.
- */
-void testCppu()
-{
- Any a(false);
-#if 0
- // the following don't compile, which is ok:
- a.get<sal_Unicode>();
- a.get<sal_uInt16>();
- a.has<sal_Unicode>();
- a.has<sal_uInt16>();
- Any a_( static_cast<sal_Unicode>('a') );
-#endif
- OSL_ASSERT( a.getValueTypeClass() == TypeClass_BOOLEAN );
- OSL_ASSERT( !a.get<bool>() && !a.get<sal_Bool>() );
- a <<= sal_False;
- OSL_ASSERT( a.getValueTypeClass() == TypeClass_BOOLEAN );
- OSL_ASSERT( !a.get<bool>() && !a.get<sal_Bool>() );
- a = Any(sal_False);
- OSL_ASSERT( a.getValueTypeClass() == TypeClass_BOOLEAN );
- OSL_ASSERT( !a.get<bool>() && !a.get<sal_Bool>() );
- Any b( static_cast<sal_Int8>(32) );
- OSL_ASSERT( b.getValueTypeClass() == TypeClass_BYTE );
- OSL_ASSERT( b.get<sal_Int64>() == 32 &&
- b.get<sal_uInt64>() == 32 &&
- b.get<sal_Int32>() == 32 &&
- b.get<sal_uInt32>() == 32 &&
- b.get<sal_Int16>() == 32 &&
- b.get<sal_Int8>() == 32 );
- OSL_ASSERT( b.has<sal_Int64>() &&
- b.has<sal_uInt64>() &&
- b.has<sal_Int32>() &&
- b.has<sal_uInt32>() &&
- b.has<sal_Int16>() &&
- b.has<sal_Int8>() );
- b <<= true;
- OSL_ASSERT( b.getValueTypeClass() == TypeClass_BOOLEAN );
- OSL_ASSERT( b.get<bool>() && b.get<sal_Bool>() );
- try {
- b.get<sal_Int8>();
- OSL_ASSERT(false);
- }
- catch (RuntimeException & /*exc*/) {
-// exc;
- }
- try {
- const Sequence<beans::PropertyValue> seq(
- b.get< Sequence<beans::PropertyValue> >() );
- OSL_ASSERT(false);
- }
- catch (RuntimeException & /*exc*/) {
-// exc;
- }
-
- sal_Int32 big = 0x7fffffff;
- try
- {
- Sequence< Sequence< Any > > seq( big );
- }
- catch (::std::bad_alloc &)
- {
- }
- try
- {
- Sequence< Sequence< Any > > seq( 0, big );
- }
- catch (::std::bad_alloc &)
- {
- }
- try
- {
- Sequence< Sequence< Any > > seq;
- seq.realloc( big );
- }
- catch (::std::bad_alloc &)
- {
- }
-
- {
- // test the size of types
- OSL_ENSURE( sizeof( Uik ) == getSize( getCppuType( (Uik *)0) ),
- "bad sizeof uik" );
- OSL_ENSURE( sizeof( Test1 ) == getSize( getCppuType( (Test1*)0).getTypeLibType() ),
- "bad sizeof test1" );
-// OSL_ENSURE( sizeof( TdTest1 ) == getSize( get_test_TdTest1_Type().getTypeLibType() ),
-// "bad sizeof TypedefTest1" );
- OSL_ENSURE( sizeof( Test2 ) == getSize( getCppuType( (Test2*)0).getTypeLibType() ),
- "bad sizeof test2" );
-
-/* find the error
-sal_Int32 nPos;
-nPos = (sal_Int32)&((Test3 *)0)->nInt8;
-nPos = (sal_Int32)&((Test3 *)0)->nFloat;
-nPos = (sal_Int32)&((Test3 *)0)->nuInt8;
-nPos = (sal_Int32)&((Test3 *)0)->nDouble;
-nPos = (sal_Int32)&((Test3 *)0)->nInt16;
-nPos = (sal_Int32)&((Test3 *)0)->aString;
-nPos = (sal_Int32)&((Test3 *)0)->nuInt16;
-nPos = (sal_Int32)&((Test3 *)0)->nInt64;
-nPos = (sal_Int32)&((Test3 *)0)->nInt32;
-nPos = (sal_Int32)&((Test3 *)0)->nuInt64;
-nPos = (sal_Int32)&((Test3 *)0)->nuInt32;
-nPos = (sal_Int32)&((Test3 *)0)->eType;
-nPos = (sal_Int32)&((Test3 *)0)->wChar;
-nPos = (sal_Int32)&((Test3 *)0)->td;
-nPos = (sal_Int32)&((Test3 *)0)->bBool;
-nPos = (sal_Int32)&((Test3 *)0)->aAny;
-*/
- OSL_ENSURE( sizeof( Test3 ) == getSize( getCppuType( (Test3*)0).getTypeLibType() ),
- "bad sizeof test3" );
- }
-
- {
- // test the default constructor
- Test1 a1;
- a1.nInt16 = 4;
- a1.dDouble = 3.6;
- a1.bBool = sal_True;
- uno_type_constructData( &a1, getCppuType( (Test1*)0).getTypeLibType() );
- OSL_ASSERT( a1.nInt16 == 0 && a1.dDouble == 0.0 && a1.bBool == sal_False);
-
- Test2 a2;
- a2.nInt16 = 2;
- a2.aTest1.nInt16 = 4;
- a2.aTest1.dDouble = 3.6;
- a2.aTest1.dDouble = sal_True;
- uno_type_constructData( &a2, getCppuType( (Test2*)0).getTypeLibType() );
- OSL_ASSERT( a2.nInt16 == 0 && a2.aTest1.nInt16 == 0 && a2.aTest1.dDouble == 0.0 && a2.aTest1.bBool == sal_False);
-
- Test3 * pa3 = (Test3 *)new char[ sizeof( Test3 ) ];
- Test3 & a3 = *pa3;
- a3.nInt8 = 2;
- a3.nFloat = (float)2;
- a3.nDouble = 2;
- a3.nInt16 = 2;
- a3.nuInt16 = 2;
- a3.nInt64 = 2;
- a3.nInt32 = 2;
- a3.nuInt64 = 2;
- a3.nuInt32 = 2;
- a3.eType = TypeClass_STRUCT;
- a3.wChar = L'g';
- a3.td.nInt16 = 2;
- a3.td.dDouble = 2;
- a3.bBool = sal_True;
- uno_type_constructData( &a3, getCppuType( (Test3*)0).getTypeLibType() );
- OSL_ASSERT( a3.nInt8 == 0 && a3.nFloat == (float)0
- && a3.nDouble == 0 && a3.nInt16 == 0 && a3.aString == OUString()
- && a3.nuInt16 == 0 && a3.nInt64 == 0 && a3.nInt32 == 0
- && a3.nuInt64 == 0 && a3.nuInt32 == 0 && a3.eType == TypeClass_VOID
- && a3.wChar == L'\0' && a3.td.nInt16 == 0 && a3.td.dDouble == 0
- && a3.bBool == sal_False );
- OSL_ASSERT( a3.aAny.getValueType() == getCppuVoidType() );
- delete[] reinterpret_cast< char * >(pa3);
- }
-
- {
- // test the destructor
- long a1[ sizeof( Test1 ) / sizeof(long) +1 ];
- uno_type_constructData( &a1, getCppuType( (Test1*)0).getTypeLibType() );
- uno_type_destructData( &a1, getCppuType( (Test1*)0).getTypeLibType(), reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
-
- long a2[ sizeof( Test2 ) / sizeof(long) +1 ];
- uno_type_constructData( &a2, getCppuType( (Test2*)0).getTypeLibType() );
- uno_type_destructData( &a2, getCppuType( (Test2*)0).getTypeLibType(), reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
-
- long a3[ sizeof( Test3 ) / sizeof(long) +1 ];
- uno_type_constructData( &a3, getCppuType( (Test3*)0).getTypeLibType() );
- OUString aTestString( RTL_CONSTASCII_USTRINGPARAM("test") );
- ((Test3*)a3)->aString = aTestString;
- uno_type_destructData( &a3, getCppuType( (Test3*)0).getTypeLibType(), reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
- OSL_ASSERT( aTestString.pData->refCount == 1 );
- }
-
- {
- // test the copy constructor
- Test1 a1;
- a1.nInt16 = 4;
- a1.dDouble = 3.6;
- a1.bBool = sal_True;
- char sz1[sizeof( Test1 )];
- uno_type_copyData( sz1, &a1, getCppuType( (Test1*)0).getTypeLibType(), reinterpret_cast<uno_AcquireFunc>(cpp_acquire) );
- OSL_ASSERT( ((Test1*)sz1)->nInt16 == 4 && ((Test1*)sz1)->dDouble == 3.6 && ((Test1*)sz1)->bBool == sal_True);
-
- Test2 a2;
- a2.nInt16 = 2;
- a2.aTest1.nInt16 = 4;
- a2.aTest1.dDouble = 3.6;
- a2.aTest1.bBool = sal_True;
- char sz2[sizeof( Test2 )];
- uno_type_copyData( sz2, &a2, getCppuType( (Test2*)0).getTypeLibType(),
- reinterpret_cast<uno_AcquireFunc>(cpp_acquire) );
- OSL_ASSERT( ((Test2*)sz2)->nInt16 == 2 );
- OSL_ASSERT(((Test2*)sz2)->aTest1.nInt16 == 4 );
- OSL_ASSERT( ((Test2*)sz2)->aTest1.dDouble == 3.6 );
- OSL_ASSERT(((Test2*)sz2)->aTest1.bBool == sal_True);
-
- Test3 a3;
- a3.nInt8 = 2;
- a3.nFloat = (float)2;
- a3.nDouble = 2;
- a3.nInt16 = 2;
- a3.aString = OUString::createFromAscii("2");
- a3.nuInt16 = 2;
- a3.nInt64 = 2;
- a3.nInt32 = 2;
- a3.nuInt64 = 2;
- a3.nuInt32 = 2;
- a3.eType = TypeClass_STRUCT;
- a3.wChar = L'2';
- a3.td.nInt16 = 2;
- a3.td.dDouble = 2;
- a3.bBool = sal_True;
- a3.aAny = makeAny( (sal_Int32)2 );
- char sz3[sizeof( Test3 )];
- uno_type_copyData( sz3, &a3, getCppuType( (Test3*)0).getTypeLibType(),
- reinterpret_cast<uno_AcquireFunc>(cpp_acquire) );
- OSL_ASSERT( ((Test3*)sz3)->nInt8 == 2 );
- OSL_ASSERT( ((Test3*)sz3)->nFloat == (float)2 );
- OSL_ASSERT( ((Test3*)sz3)->nDouble == 2 );
- OSL_ASSERT( ((Test3*)sz3)->nInt16 == 2 );
- OSL_ASSERT( ((Test3*)sz3)->aString == OUString::createFromAscii("2") );
- OSL_ASSERT( ((Test3*)sz3)->nuInt16 == 2 );
- OSL_ASSERT( ((Test3*)sz3)->nInt64 == 2 );
- OSL_ASSERT( ((Test3*)sz3)->nInt32 == 2 );
- OSL_ASSERT( ((Test3*)sz3)->nuInt64 == 2 );
- OSL_ASSERT( ((Test3*)sz3)->nuInt32 == 2 );
- OSL_ASSERT( ((Test3*)sz3)->eType == TypeClass_STRUCT );
- OSL_ASSERT( ((Test3*)sz3)->wChar == L'2' );
- OSL_ASSERT( ((Test3*)sz3)->td.nInt16 == 2 );
- OSL_ASSERT( ((Test3*)sz3)->td.dDouble == 2 );
- OSL_ASSERT( ((Test3*)sz3)->bBool == sal_True );
- OSL_ASSERT( ((Test3*)sz3)->aAny.getValueType() == getCppuType( (sal_Int32 *)0 ) );
- OSL_ASSERT( *(sal_Int32*)((Test3*)sz3)->aAny.getValue() == 2 );
- ((Test3 *)sz3)->~Test3();
- }
-
- {
- sal_Bool bAssignable;
- // test assignment
- Test1 a1;
- a1.nInt16 = 4;
- a1.dDouble = 3.6;
- a1.bBool = sal_True;
- Test1 sz1;
- bAssignable = uno_type_assignData(
- &sz1, getCppuType( (Test1*)0).getTypeLibType(),
- &a1, getCppuType( (Test1*)0).getTypeLibType(),
- reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface),
- reinterpret_cast<uno_AcquireFunc>(cpp_acquire),
- reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
- OSL_ASSERT( bAssignable );
- OSL_ASSERT( sz1.nInt16 == 4 && sz1.dDouble == 3.6 && sz1.bBool == sal_True);
-
- Test2 a2;
- a2.nInt16 = 2;
- a2.aTest1.nInt16 = 4;
- a2.aTest1.dDouble = 3.6;
- a2.aTest1.bBool = sal_True;
- Test2 sz2;
- bAssignable = uno_type_assignData(
- &sz2, getCppuType( (Test2*)0).getTypeLibType(),
- &a2, getCppuType( (Test2*)0).getTypeLibType(),
- reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface),
- reinterpret_cast<uno_AcquireFunc>(cpp_acquire),
- reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
- OSL_ASSERT( bAssignable );
- OSL_ASSERT( sz2.nInt16 == 2 && sz2.aTest1.nInt16 == 4
- && sz2.aTest1.dDouble == 3.6 && sz2.aTest1.bBool == sal_True);
-
- Test3 a3;
- Test3 sz3;
- a3.nInt8 = 2;
- a3.nFloat = (float)2;
- a3.nDouble = 2;
- a3.nInt16 = 2;
- a3.aString = OUString::createFromAscii("2");
- a3.nuInt16 = 2;
- a3.nInt64 = 2;
- a3.nInt32 = 2;
- a3.nuInt64 = 2;
- a3.nuInt32 = 2;
- a3.eType = TypeClass_STRUCT;
- a3.wChar = L'2';
- a3.td.nInt16 = 2;
- a3.td.dDouble = 2;
- a3.bBool = sal_True;
- a3.aAny = makeAny( (sal_Int32)2 );
- OSL_ASSERT( a3.aAny.isExtractableTo( ::getCppuType( (sal_Int64 const *)0 ) ) );
- OSL_ASSERT( ::getCppuType( (sal_Int64 const *)0 ).isAssignableFrom( a3.aAny.getValueType() ) );
- bAssignable = uno_type_assignData(
- &sz3, getCppuType( (Test3*)0).getTypeLibType(),
- &a3, getCppuType( (Test3*)0).getTypeLibType(),
- reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface),
- reinterpret_cast<uno_AcquireFunc>(cpp_acquire),
- reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
- OSL_ASSERT( bAssignable );
- OSL_ASSERT( sz3.nInt8 == 2 );
- OSL_ASSERT( sz3.nFloat == (float)2 );
- OSL_ASSERT( sz3.nDouble == 2 );
- OSL_ASSERT( sz3.nInt16 == 2 );
- OSL_ASSERT( sz3.aString == OUString::createFromAscii("2") );
- OSL_ASSERT( sz3.nuInt16 == 2 );
- OSL_ASSERT( sz3.nInt64 == 2 );
- OSL_ASSERT( sz3.nInt32 == 2 );
- OSL_ASSERT( sz3.nuInt64 == 2 );
- OSL_ASSERT( sz3.nuInt32 == 2 );
- OSL_ASSERT( sz3.eType == TypeClass_STRUCT );
- OSL_ASSERT( sz3.wChar == L'2' );
- OSL_ASSERT( sz3.td.nInt16 == 2 );
- OSL_ASSERT( sz3.td.dDouble == 2 );
- OSL_ASSERT( sz3.bBool == sal_True );
- OSL_ASSERT( sz3.aAny.getValueType() == getCppuType( (sal_Int32 *)0 ) );
- OSL_ASSERT( *(sal_Int32*)sz3.aAny.getValue() == 2 );
-
- // test not assigneable values
- bAssignable = uno_type_assignData(
- &a1, getCppuType( (Test1*)0).getTypeLibType(),
- &a2, getCppuType( (Test2*)0).getTypeLibType(),
- reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface),
- reinterpret_cast<uno_AcquireFunc>(cpp_acquire), reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
- OSL_ASSERT( !bAssignable );
- }
-
- {
- // test any
- Any tb;
- tb <<= true;
- OSL_ASSERT( tb.getValueType() == ::getCppuBooleanType() );
- OSL_ASSERT( tb == makeAny( true ) );
- Any aAny = makeAny( (sal_Int8)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int8 *)0 ) );
- OSL_ASSERT( *(sal_Int8*)aAny.getValue() == 2 );
- aAny = makeAny( (float)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (float *)0 ) );
- OSL_ASSERT( *(float*)aAny.getValue() == (float)2 );
- aAny = makeAny( (sal_Int8)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int8 *)0 ) );
- OSL_ASSERT( *(sal_Int8*)aAny.getValue() == 2 );
- aAny = makeAny( (double)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (double *)0 ) );
- OSL_ASSERT( *(double*)aAny.getValue() == (double)2 );
- aAny = makeAny( (sal_Int16)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int16 *)0 ) );
- OSL_ASSERT( *(sal_Int16*)aAny.getValue() == 2 );
- aAny = makeAny( OUString( RTL_CONSTASCII_USTRINGPARAM("test") ) );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (OUString *)0 ) );
- OSL_ASSERT( *(OUString*)aAny.getValue() == OUString::createFromAscii("test") );
- aAny = makeAny( (sal_uInt16)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt16 *)0 ) );
- OSL_ASSERT( *(sal_Int16*)aAny.getValue() == 2 );
- sal_Int64 aInt64 = SAL_CONST_INT64(0x200000000);
- aAny = makeAny( aInt64 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int64 *)0 ) );
- OSL_ASSERT( *(sal_Int64*)aAny.getValue() == SAL_CONST_INT64(0x200000000) );
- aAny = makeAny( (sal_Int32)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int32 *)0 ) );
- OSL_ASSERT( *(sal_Int32*)aAny.getValue() == 2 );
- sal_uInt64 auInt64 = SAL_CONST_UINT64(0x200000000);
- aAny = makeAny( auInt64 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt64 *)0 ) );
- OSL_ASSERT( *(sal_uInt64*)aAny.getValue() == SAL_CONST_UINT64(0x200000000) );
- aAny = makeAny( (sal_uInt32)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt32 *)0 ) );
- OSL_ASSERT( *(sal_uInt32*)aAny.getValue() == 2 );
- aAny = makeAny( TypeClass_STRUCT );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (TypeClass *)0 ) );
- OSL_ASSERT( *(TypeClass*)aAny.getValue() == TypeClass_STRUCT );
- sal_Unicode c = L'2';
- aAny.setValue( &c, getCppuCharType() );
- OSL_ASSERT( aAny.getValueType() == getCppuCharType() );
- OSL_ASSERT( *(sal_Unicode*)aAny.getValue() == L'2' );
- sal_Bool b2 = sal_True;
- aAny.setValue( &b2, getCppuBooleanType() );
- OSL_ASSERT( aAny.getValueType() == getCppuBooleanType() );
- OSL_ASSERT( *(sal_Bool*)aAny.getValue() == sal_True );
- }
-
- {
- // test: operator <<=( any, value )
- Any aAny;
- aAny <<= (sal_Int8)2;
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int8 *)0 ) );
- OSL_ASSERT( *(sal_Int8*)aAny.getValue() == 2 );
- aAny <<=( (float)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (float *)0 ) );
- OSL_ASSERT( *(float*)aAny.getValue() == (float)2 );
-// aAny <<=( (sal_uInt8)2 );
-// OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt8 *)0 ) );
-// OSL_ASSERT( *(sal_uInt8*)aAny.getValue() == 2 );
- aAny <<=( (double)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (double *)0 ) );
- OSL_ASSERT( *(double*)aAny.getValue() == (double)2 );
- aAny <<=( (sal_Int16)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int16 *)0 ) );
- OSL_ASSERT( *(sal_Int16*)aAny.getValue() == 2 );
- aAny <<=( OUString( RTL_CONSTASCII_USTRINGPARAM("test") ) );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (OUString *)0 ) );
- OSL_ASSERT( *(OUString*)aAny.getValue() == OUString::createFromAscii("test") );
- aAny <<=( (sal_uInt16)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt16 *)0 ) );
- OSL_ASSERT( *(sal_Int16*)aAny.getValue() == 2 );
- sal_Int64 aInt64 = SAL_CONST_INT64(0x200000000);
- aAny <<=( aInt64 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int64 *)0 ) );
- OSL_ASSERT( *(sal_Int64*)aAny.getValue() == SAL_CONST_UINT64(0x200000000) );
- aAny <<=( (sal_Int32)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int32 *)0 ) );
- OSL_ASSERT( *(sal_Int32*)aAny.getValue() == 2 );
- sal_uInt64 auInt64 = SAL_CONST_UINT64(0x200000000);
- aAny <<=( auInt64 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt64 *)0 ) );
- OSL_ASSERT( *(sal_uInt64*)aAny.getValue() == SAL_CONST_UINT64(0x200000000) );
- aAny <<=( (sal_uInt32)2 );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt32 *)0 ) );
- OSL_ASSERT( *(sal_uInt32*)aAny.getValue() == 2 );
- aAny <<=( TypeClass_STRUCT );
- OSL_ASSERT( aAny.getValueType() == getCppuType( (TypeClass *)0 ) );
- OSL_ASSERT( *(TypeClass*)aAny.getValue() == TypeClass_STRUCT );
- }
-
- {
- // test seq< any >
- Sequence< Any > seqAny( 1 );
- seqAny[ 0 ] <<= sal_Int32(5);
- seqAny.realloc( 200000 ); // hopefully different memory
- seqAny[ 1 ] <<= sal_Int32(6);
-
- uno_Any * pAnys = (uno_Any *)seqAny.getConstArray();
- OSL_ASSERT( pAnys[ 1 ].pData == &pAnys[ 1 ].pReserved );
- OSL_ASSERT( *(sal_Int32 *)pAnys[ 1 ].pData == sal_Int32(6) );
- OSL_ASSERT( pAnys[ 0 ].pData == &pAnys[ 0 ].pReserved );
- OSL_ASSERT( *(sal_Int32 *)pAnys[ 0 ].pData == sal_Int32(5) );
- }
-
- {
- // test: operator >>=( any, value )
- Test3 a3;
- makeAny( (sal_Int8)2) >>= a3.nInt8;
- OSL_ASSERT( (makeAny( (sal_Int8)2) >>= a3.nInt8) && a3.nInt8 == 2 );
- OSL_ASSERT( (makeAny( (float)2) >>= a3.nFloat) && a3.nFloat ==(float)2 );
- OSL_ASSERT( (makeAny( (double)2) >>= a3.nDouble) && a3.nDouble == 2 );
- OSL_ASSERT( (makeAny( (sal_Int16)2) >>= a3.nInt16) && a3.nInt16 == 2 );
- OSL_ASSERT( (makeAny( OUString( RTL_CONSTASCII_USTRINGPARAM("2") )) >>= a3.aString) &&
- a3.aString == OUString::createFromAscii("2") );
- OSL_ASSERT( (makeAny( (sal_uInt16)2) >>= a3.nuInt16) && a3.nuInt16 == 2 );
- sal_Int64 aInt64 = SAL_CONST_INT64(0x200000000);
- OSL_ASSERT( makeAny( aInt64 ) >>= a3.nInt64 );
- OSL_ASSERT( a3.nInt64 == SAL_CONST_INT64(0x200000000) );
- OSL_ASSERT( (makeAny( (sal_Int32)2) >>= a3.nInt32) && a3.nInt32 == 2 );
- sal_uInt64 auInt64 = SAL_CONST_UINT64(0x200000000);
- OSL_ASSERT( makeAny( auInt64 ) >>= a3.nuInt64 );
- OSL_ASSERT( a3.nuInt64 == SAL_CONST_UINT64(0x200000000) );
- OSL_ASSERT( (makeAny( (sal_uInt32)2) >>= a3.nuInt32) && a3.nuInt32 == 2 );
- OSL_ASSERT( (makeAny( TypeClass_STRUCT) >>= a3.eType) && a3.eType == TypeClass_STRUCT );
- //OSL_ASSERT( (makeAny( L'2' ) >>= a3.wChar) && a3.nInt8 ==L'2';
- OSL_ASSERT( (makeAny( (sal_Int16)2) >>= a3.td.nInt16) && a3.nInt16 == 2 );
- OSL_ASSERT( (makeAny( (double)2) >>= a3.td.dDouble) && a3.nDouble == 2 );
- //OSL_ASSERT( (makeAny( (sal_True)2) >>= a3.bBool) && a3.nInt8 ==sal_True;
-
- // Only one negative test, the implementation has only one if to test this
- OSL_ASSERT( (makeAny( (float)2) >>= a3.nFloat) && a3.nFloat ==(float)2 );
- }
-
- {
- // test: Sequence
- Sequence< Test1 > aTestSeq;
- OSL_ASSERT( aTestSeq.getLength() == 0 );
- sal_Int32 szInt32[2] = { 1, 2 };
- Sequence< sal_Int32 > aInt32Seq( szInt32, 2 );
- OSL_ASSERT( aInt32Seq.getLength() == 2 );
- OSL_ASSERT( aInt32Seq[0] == 1 && aInt32Seq[1] == 2 );
- OSL_ASSERT( aInt32Seq.getArray()[0] == 1 && aInt32Seq.getArray()[1] == 2 );
- Sequence< sal_Int32 > aNextInt32Seq( aInt32Seq );
- OSL_ASSERT( aNextInt32Seq[0] == 1 && aNextInt32Seq[1] == 2 );
- aInt32Seq[0] = 45;
- OSL_ASSERT( aInt32Seq[0] == 45 && aInt32Seq[1] == 2 );
- OSL_ASSERT( aNextInt32Seq[0] == 1 && aNextInt32Seq[1] == 2 );
- sal_Int32 * pArray = aNextInt32Seq.getArray();
- OSL_ASSERT( pArray[0] == 1 && pArray[1] == 2 );
- Sequence< double > aDoubleSeq( 5 );
- OSL_ASSERT( aDoubleSeq[4] == 0.0 );
- Sequence< OUString > aStringSeq( 5 );
- OSL_ASSERT( aStringSeq[4] == OUString() );
- }
- sal_Int32 szInt32[2] = { 1, 2 };
- Sequence<sal_Int32 > aInt32Seq( szInt32, 2 );
- Sequence<sal_Int32 > aNextInt32Seq( aInt32Seq );
- aNextInt32Seq.realloc( 1 ); // split of sequence
- const sal_Int32 * pArray = aNextInt32Seq.getConstArray();
- OSL_ASSERT( pArray[0] == 1 );
- aInt32Seq.realloc( 1 ); // reallocate mem
- pArray = aInt32Seq.getConstArray();
- OSL_ASSERT( pArray[0] == 1 );
-
- Sequence<sal_Int32 > aInt32Seq2( aInt32Seq );
- aInt32Seq.realloc( 0 );
- aInt32Seq.realloc( 1 );
- aInt32Seq.realloc( 0 );
-}
-
-class TestInterface : public XInterface
-{
-public:
- // XInterface
- void SAL_CALL acquire() throw ()
- { osl_incrementInterlockedCount( &nRefCount ); }
- void SAL_CALL release() throw ()
- { if( !osl_decrementInterlockedCount( &nRefCount ) ) delete this; }
- Any SAL_CALL queryInterface( const Type & rType ) throw (RuntimeException)
- { return cppu::queryInterface( rType, static_cast< XInterface* >( this ) ); }
-
- TestInterface() : nRefCount( 0 ) {}
-
- sal_Int32 nRefCount;
-};
-
-struct SimpleInterface : public TestInterface, public XSimpleInterface
-{
- void SAL_CALL acquire() throw ()
- { TestInterface::acquire(); }
- void SAL_CALL release() throw ()
- { TestInterface::release(); }
- Any SAL_CALL queryInterface( const Type & rType ) throw (RuntimeException)
- {
- Any aRet( cppu::queryInterface( rType, static_cast< XSimpleInterface * >( this ) ) );
- return (aRet.hasValue() ? aRet : TestInterface::queryInterface( rType ));
- }
- virtual void SAL_CALL method() throw(::com::sun::star::uno::RuntimeException)
- {}
-};
-
-static sal_Bool s_aAssignableFromTab[11][11] =
-{
- /* from CH,BO,BY,SH,US,LO,UL,HY,UH,FL,DO */
-/* TypeClass_CHAR */ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-/* TypeClass_BOOLEAN */ { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-/* TypeClass_BYTE */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-/* TypeClass_SHORT */ { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 },
-/* TypeClass_UNSIGNED_SHORT */ { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 },
-/* TypeClass_LONG */ { 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
-/* TypeClass_UNSIGNED_LONG */ { 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
-/* TypeClass_HYPER */ { 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
-/* TypeClass_UNSIGNED_HYPER */ { 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
-/* TypeClass_FLOAT */ { 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0 },
-/* TypeClass_DOUBLE */ { 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1 }
-};
-template < class T >
-void test_assignSimple( const T & rVal, /*const*/ Any /*&*/ rAny )
-{
- typelib_TypeDescription * pTD = 0;
- ::getCppuType( &rVal ).getDescription( &pTD );
- sal_Bool bTable = s_aAssignableFromTab[pTD->eTypeClass-1][rAny.getValueTypeClass()-1];
- OSL_ASSERT(
- (bTable!=sal_False) ==
- (typelib_typedescriptionreference_isAssignableFrom(
- pTD->pWeakRef, rAny.getValueTypeRef() )!=sal_False) );
- T t;
- OSL_ASSERT( (bTable!=sal_False) == ((rAny >>= t)!=sal_False) );
- if (bTable)
- OSL_ASSERT( t == rVal );
- typelib_typedescription_release( pTD );
-}
-template < class T >
-void test_simple_assignment( const T & rVal )
-{
- // bool
- sal_Bool tr = sal_True;
- typelib_TypeDescription * pBoolTD = 0;
- ::getCppuBooleanType().getDescription( &pBoolTD );
- Any a( &tr, pBoolTD );
- test_assignSimple( rVal, a );
- OSL_ASSERT( typelib_typedescriptionreference_isAssignableFrom( pBoolTD->pWeakRef, a.getValueTypeRef() ) );
- typelib_typedescription_release( pBoolTD );
- OSL_ASSERT( *(sal_Bool *)a.getValue() );
- // char
- sal_Unicode ch = 'a';
- typelib_TypeDescription * pCharTD = 0;
- ::getCppuCharType().getDescription( &pCharTD );
- a.setValue( &ch, pCharTD );
- test_assignSimple( rVal, a );
- OSL_ASSERT( typelib_typedescriptionreference_isAssignableFrom( pCharTD->pWeakRef, a.getValueTypeRef() ) );
- typelib_typedescription_release( pCharTD );
- OSL_ASSERT( *(sal_Unicode *)a.getValue() == 'a' );
-
- // rest by template
- a <<= (sal_Int8)5;
- test_assignSimple( rVal, a );
- a <<= (sal_Int16)5;
- test_assignSimple( rVal, a );
- a <<= (sal_uInt16)5;
- test_assignSimple( rVal, a );
- a <<= (sal_Int32)5;
- test_assignSimple( rVal, a );
- a <<= (sal_uInt32)5;
- test_assignSimple( rVal, a );
- a <<= (sal_Int64)5;
- test_assignSimple( rVal, a );
- a <<= (sal_uInt64)5;
- test_assignSimple( rVal, a );
- a <<= (float)5;
- test_assignSimple( rVal, a );
- a <<= (double)5;
- test_assignSimple( rVal, a );
-}
-static void testAssignment()
-{
- // simple types
- test_simple_assignment( (sal_Int8)5 );
- test_simple_assignment( (sal_Int16)5 );
- test_simple_assignment( (sal_uInt16)5 );
- test_simple_assignment( (sal_Int32)5 );
- test_simple_assignment( (sal_uInt32)5 );
- test_simple_assignment( (sal_Int64)5 );
- test_simple_assignment( (sal_uInt64)5 );
- test_simple_assignment( (float)5 );
- test_simple_assignment( (double)5 );
- // some complex things
- Any a;
- TestSimple ts;
- TestElement te; // derived from simple
- a <<= ts;
- OSL_ASSERT( !(a >>= te) );
- OSL_ASSERT( a >>= ts );
- a <<= te;
- OSL_ASSERT( (a >>= te) && (a >>= ts) );
- // interface
- Reference< XSimpleInterface > xOriginal( new SimpleInterface() );
- a <<= xOriginal;
- Reference< XInterface > x;
- OSL_ASSERT( (a >>= x) && (a == xOriginal) && (xOriginal == x) && (x == xOriginal) );
- // sequence
- Sequence< TestElement > aSeq( 5 );
- Sequence< TestElement > aSeq2( 3 );
- aSeq[1].Byte = 17;
- a <<= aSeq;
- OSL_ASSERT( a >>= aSeq2 );
- OSL_ASSERT( aSeq2[1].Byte == 17 );
- aSeq2[1].Byte = 20;
- OSL_ASSERT( aSeq != aSeq2 );
- OSL_ASSERT( a != aSeq2 );
- a <<= aSeq2;
- OSL_ASSERT( a >>= aSeq );
- OSL_ASSERT( a == aSeq );
- OSL_ASSERT( !(a != aSeq) );
- OSL_ASSERT( aSeq == aSeq2 );
- OSL_ASSERT( aSeq[1].Byte == 20 );
-
- // equals...
- sal_uInt64 n = (sal_uInt64)(sal_Int64)-5;
- a.setValue( &n, getCppuType( (sal_uInt64 *)0 ) );
- Any b;
- sal_Int8 n2 = -5;
- b.setValue( &n2, getCppuType( (sal_Int8 *)0 ) );
- OSL_ASSERT( a != b );
-}
-
-void test_interface()
-{
- {
- // test: Interface
- Reference< XInterface > xIFace;
- OSL_ASSERT( !xIFace.is() );
- xIFace.clear(); // do nothing
- }
-}
-
-void test_inheritance()
-{
- OSL_ASSERT( sizeof( Base ) == getSize( getCppuType( (Base *)0).getTypeLibType() ) );
- OSL_ASSERT( sizeof( Base1 ) == getSize( getCppuType( (Base1 *)0).getTypeLibType() ) );
- OSL_ASSERT( sizeof( Base2 ) == getSize( getCppuType( (Base2 *)0).getTypeLibType() ) );
-}
-
-sal_Int32 nCallback_1;
-sal_Int32 nCallback;
-void SAL_CALL typedescription_Callback_1
-(
- void * pContext,
- typelib_TypeDescription ** ppRet,
- rtl_uString * pTypeName
-)
-{
- OSL_ENSURE( pContext == (void *)1, "### unexpected context!" );
- if( *ppRet )
- {
- typelib_typedescription_release( *ppRet );
- *ppRet = 0;
- }
-
- OUString aTypeName( pTypeName );
- if( -1 != aTypeName.indexOf( OUString::createFromAscii("1_") ) )
- {
- nCallback_1++;
- OUString aName( RTL_CONSTASCII_USTRINGPARAM("unsigned short") );
- OUString empty;
- typelib_CompoundMember_Init aMember = { typelib_TypeClass_UNSIGNED_SHORT,
- aName.pData,
- empty.pData };
- typelib_typedescription_new(
- ppRet,
- typelib_TypeClass_STRUCT, pTypeName, 0,
- 1,
- &aMember
- );
- }
-}
-
-void SAL_CALL typedescription_Callback
-(
- void * pContext,
- typelib_TypeDescription ** ppRet,
- rtl_uString * pTypeName
-)
-{
- OSL_ENSURE( pContext == (void *)0, "### unexpected context!" );
- if( *ppRet )
- {
- typelib_typedescription_release( *ppRet );
- *ppRet = 0;
- }
-
- OUString aTypeName( pTypeName );
- if( -1 != aTypeName.indexOf( OUString::createFromAscii("cachetest") ) )
- {
- nCallback++;
- aTypeName = OUString( RTL_CONSTASCII_USTRINGPARAM("1_") ) + aTypeName;
- OUString empty;
- typelib_CompoundMember_Init aMember = { typelib_TypeClass_STRUCT,
- aTypeName.pData,
- empty.pData };
- typelib_typedescription_new(
- ppRet,
- typelib_TypeClass_STRUCT, pTypeName, 0,
- 1,
- &aMember
- );
- }
-}
-
-void test_cache()
-{
- typelib_typedescription_registerCallback(
- (void *)1,
- reinterpret_cast<typelib_typedescription_Callback>(typedescription_Callback_1) );
- typelib_typedescription_registerCallback(
- 0,
- reinterpret_cast<typelib_typedescription_Callback>(typedescription_Callback) );
-
- for( sal_Int32 i = 0; i < 300; i++ )
- {
- typelib_TypeDescription * pTD = 0;
- OUString aTypeName( RTL_CONSTASCII_USTRINGPARAM("cachetest") );
- aTypeName = aTypeName + OUString::valueOf( i );
- typelib_typedescription_getByName( &pTD, aTypeName.pData );
- typelib_typedescription_release( pTD );
- }
- OSL_ASSERT( nCallback_1 == 300 );
- OSL_ASSERT( nCallback == 300 );
- // The cache size is 200 so the description "cachetest200" is in the cache
- typelib_TypeDescription * pTD = 0;
- OUString aName200( RTL_CONSTASCII_USTRINGPARAM("cachetest200") );
- typelib_typedescription_getByName( &pTD, aName200.pData );
- OSL_ASSERT( nCallback_1 == 300 );
- OSL_ASSERT( nCallback == 300 );
- // The cache size is 200 so the description "cachetest199" is not in the cache
- // "1_cachetest199" is loaded too.
- OUString aName199( RTL_CONSTASCII_USTRINGPARAM("cachetest199") );
- typelib_typedescription_getByName( &pTD, aName199.pData );
- typelib_typedescription_release( pTD );
- OSL_ASSERT( nCallback_1 == 301 );
- OSL_ASSERT( nCallback == 301 );
-
- typelib_typedescription_revokeCallback(
- (void *)1,
- reinterpret_cast<typelib_typedescription_Callback>(typedescription_Callback_1) );
- typelib_typedescription_revokeCallback(
- 0,
- reinterpret_cast<typelib_typedescription_Callback>(typedescription_Callback) );
-}
-
-static OUString s_aAddPurpose;
-
-static void SAL_CALL getMappingCallback(
- uno_Mapping ** /*ppMapping*/,
- uno_Environment * /*pFrom*/, uno_Environment * /*pTo*/, rtl_uString * pAddPurpose )
-{
- s_aAddPurpose = pAddPurpose;
-}
-static void testMappingCallback()
-{
- uno_registerMappingCallback( reinterpret_cast<uno_getMappingFunc>(getMappingCallback) );
- OSL_ASSERT( ! s_aAddPurpose.getLength() );
- Mapping aTest(
- OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ),
- OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ),
- OUString( RTL_CONSTASCII_USTRINGPARAM("test") ) );
- uno_revokeMappingCallback( reinterpret_cast<uno_getMappingFunc>(getMappingCallback) );
- OSL_ASSERT( s_aAddPurpose.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("test") ) );
- s_aAddPurpose = OUString();
- Mapping aTest2(
- OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ),
- OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ),
- OUString( RTL_CONSTASCII_USTRINGPARAM("test") ) );
- OSL_ASSERT( ! s_aAddPurpose.getLength() );
-}
-
-static void testEnvironments(void)
-{
- uno_Environment ** ppEnv;
- sal_Int32 nLen;
- OUString aTypeName;
-
- ::uno_getRegisteredEnvironments(
- &ppEnv, &nLen, ::rtl_allocateMemory, aTypeName.pData );
-
- if (nLen)
- {
- for ( sal_Int32 nPos = 0; nPos < nLen; ++nPos )
- {
- uno_Environment * pEnv = ppEnv[ nPos ];
-
- // dump out infos
- ::uno_dumpEnvironment( stderr, pEnv, 0 );
-
- // call some releases
- void ** ppInterfaces = 0;
- sal_Int32 nInterfaces;
-
- uno_ExtEnvironment * pExtEnv = pEnv->pExtEnv;
- (*pExtEnv->getRegisteredInterfaces)(
- pExtEnv, &ppInterfaces, &nInterfaces, ::rtl_allocateMemory );
- if (nInterfaces)
- {
- while (nInterfaces--)
- {
- void * p = ppInterfaces[ nInterfaces ];
- (*pExtEnv->releaseInterface)( pExtEnv, p );
- }
- ::rtl_freeMemory( ppInterfaces );
- }
-
- (*pEnv->release)( pEnv );
- }
- ::rtl_freeMemory( ppEnv );
- }
-}
-
-inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( const Sequence< OUString[2][4] >* ) SAL_THROW( () )
-{
- return getCppuSequenceType< OUString[2][4] >( getCppuArrayType2( (const OUString (*)[2][4])0 ) );
-}
-
-//==================================================================================================
-class Test_CContext
- : public ::cppu::WeakImplHelper1< XCurrentContext >
-{
- Reference< XCurrentContext > m_xDel;
- sal_Int32 m_value;
- OUString m_name;
-public:
- inline Test_CContext( sal_Int32 val, OUString const & rName,
- Reference< XCurrentContext > const & xDel )
- SAL_THROW( () )
- : m_xDel( xDel )
- , m_value( val )
- , m_name( rName )
- {}
-
- virtual Any SAL_CALL getValueByName( OUString const & rName )
- throw (RuntimeException);
-};
-//__________________________________________________________________________________________________
-Any Test_CContext::getValueByName( OUString const & rName )
- throw (RuntimeException)
-{
- if (rName == m_name)
- {
- return makeAny( m_value );
- }
- else if (m_xDel.is())
- {
- return m_xDel->getValueByName( rName );
- }
- return Any();
-}
-//==================================================================================================
-static void testCurrentContext()
-{
- {
- ContextLayer layer( new Test_CContext(
- 5, OUString( RTL_CONSTASCII_USTRINGPARAM("Value1") ),
- Reference< XCurrentContext >() ) );
- Reference< XCurrentContext > xCC( getCurrentContext() );
- OSL_ASSERT(
- xCC.is() &&
- xCC->getValueByName( OUString( RTL_CONSTASCII_USTRINGPARAM("Value1") ) ) == (sal_Int16)5 &&
- !xCC->getValueByName( OUString( RTL_CONSTASCII_USTRINGPARAM("Value2") ) ).hasValue() );
- OSL_ASSERT( ! layer.getPreviousContext().is() );
-
- {
- ContextLayer layer2( new Test_CContext(
- 7, OUString( RTL_CONSTASCII_USTRINGPARAM("Value2") ),
- xCC ) );
- OSL_ASSERT( layer2.getPreviousContext() == xCC );
- xCC = getCurrentContext();
- OSL_ASSERT(
- xCC.is() &&
- xCC->getValueByName( OUString( RTL_CONSTASCII_USTRINGPARAM("Value1") ) ) == (sal_Int16)5 &&
- xCC->getValueByName( OUString( RTL_CONSTASCII_USTRINGPARAM("Value2") ) ) == (sal_Int16)7 &&
- !xCC->getValueByName( OUString( RTL_CONSTASCII_USTRINGPARAM("dummy") ) ).hasValue() );
-
- uno_Interface * pContext = 0;
- OUString aEnvName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) );
- OSL_VERIFY( ::uno_getCurrentContext( (void **)&pContext, aEnvName.pData, 0 ) );
- (*pContext->release)( pContext );
- }
- OSL_ASSERT( ! layer.getPreviousContext().is() );
- }
- OSL_ASSERT( ! getCurrentContext().is() );
-}
-
-void testArray(void)
-{
- long a[5][6];
- getCppuArrayType2( &a );
-
- getCppuArrayType1( (const long (*)[5])0 );
- getCppuArrayType2( (const long (*)[6][7])0 );
- getCppuArrayType3( (const long (*)[7][8][9])0 );
- getCppuArrayType4( (const long (*)[8][9][10][11])0 );
- getCppuArrayType5( (const long (*)[9][10][11][12][13])0 );
- getCppuArrayType6( (const long (*)[10][11][12][13][14][15])0 );
-
- getCppuArrayType2( (const Reference< XInterface > (*)[6][7])0 );
-
- getCppuArrayType1( (const Test1 (*)[5])0 );
- getCppuArrayType2( (const Test1 (*)[6][7])0 );
- getCppuArrayType3( (const Test1 (*)[7][8][9])0 );
- getCppuArrayType4( (const Test1 (*)[8][9][10][11])0 );
- getCppuArrayType5( (const Test1 (*)[9][10][11][12][13])0 );
- getCppuArrayType6( (const Test1 (*)[10][11][12][13][14][15])0 );
-
- typelib_TypeDescription* pType = NULL;
- typelib_TypeDescriptionReference* pTypeRef = NULL;
- sal_Int32 pDim[] = { 2, 4 };
- Type rType = getCppuType((const sal_Int32*)0);
- typelib_typedescription_newArray(&pType, rType.getTypeLibType(), 2, pDim);
- OSL_ASSERT( pType );
- typelib_typedescriptionreference_new(&pTypeRef, typelib_TypeClass_ARRAY, pType->pTypeName);
- OSL_ASSERT( pTypeRef );
-
- sal_Int32 a1[2][4];
- sal_Int32 a2[2][4] = { {1,2,3,4}, {5,6,7,8} };
- uno_constructData( &a1, pType );
-// uno_type_constructData( &a1, pTypeRef );
-
- sal_Bool bAssignable = uno_assignData(&a1, pType, a2, pType,
- reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface),
- reinterpret_cast<uno_AcquireFunc>(cpp_acquire),
- reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
- sal_Int32 i,j;
- for ( i=0; i<2; i++ )
- for ( j=0; j<4; j++ )
- OSL_ASSERT( a1[i][j] == a2[i][j] );
-
- uno_destructData( a1, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
-// uno_type_destructData( &a1, pTypeRef, cpp_release );
- uno_destructData( a2, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
-
- typelib_typedescription_release(pType);
- typelib_typedescriptionreference_release(pTypeRef);
- pType = NULL;
- pTypeRef = NULL;
-
- typelib_typedescription_newArray(&pType, getCppuType((const OUString*)0).getTypeLibType(), 2, pDim);
- OSL_ASSERT( pType );
- typelib_typedescriptionreference_new(&pTypeRef, typelib_TypeClass_ARRAY, pType->pTypeName);
- OSL_ASSERT( pTypeRef );
-
- OUString s1(OUString::createFromAscii("Hallo"));
- OUString s2(OUString::createFromAscii("jetzt"));
- OUString s3(OUString::createFromAscii("teste"));
- OUString s4(OUString::createFromAscii("ich"));
- OUString s5(OUString::createFromAscii("ein"));
- OUString s6(OUString::createFromAscii("Array"));
- OUString s7(OUString::createFromAscii("mit"));
- OUString s8(OUString::createFromAscii("strings"));
- OUString st1,st2,st3,st4,st5,st6,st7,st8;
-
- void* p = rtl_allocateMemory(8 * sizeof(rtl_uString*));
- void* p2 = rtl_allocateMemory(8 * sizeof(rtl_uString*));
- rtl_uString** ppS = (rtl_uString**)p;
- rtl_uString* sa1[2][4] = { {st1.pData,st2.pData,st3.pData,st4.pData},
- {st5.pData,st6.pData,st7.pData,st8.pData} };
- rtl_uString* sa2[2][4] = { {s1.pData,s2.pData,s3.pData,s4.pData},
- {s5.pData,s6.pData,s7.pData,s8.pData} };
- uno_constructData( p, pType );
-
- bAssignable = uno_assignData(p, pType, sa2, pType,
- reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface),
- reinterpret_cast<uno_AcquireFunc>(cpp_acquire),
- reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
-
- bAssignable = uno_assignData(sa1, pType, p, pType,
- reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface),
- reinterpret_cast<uno_AcquireFunc>(cpp_acquire),
- reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
-
- for ( i=0; i<2; i++ )
- for ( j=0; j<4; j++ )
- OSL_ASSERT( sa1[i][j] == sa2[i][j] );
-
- OUString sA[2][4];
- sA[0][0] = s1;
- sA[1][0] = s5;
- sA[0][1] = s2;
- sA[1][1] = s6;
- sA[0][2] = s3;
- sA[1][2] = s7;
- sA[0][3] = s4;
- sA[1][3] = s8;
-
- Any aa1, aa2;
- Type arrayType;
- OUString (*sB)[2][4];
- aa1.setValue(&sA, getCppuArrayType2( (const OUString (*)[2][4])0 ));
- aa2 = aa1;
- arrayType = aa2.getValueType();
- sB = (OUString(*)[2][4])aa2.getValue();
- for ( i=0; i<2; i++ )
- for ( j=0; j<4; j++ )
- OSL_ASSERT( sA[i][j] == (*sB)[i][j] );
-
- // requires a specialized getCppuType function 'getCppuType( const Sequence< OUString[2][4] >* )'
-// Sequence< OUString[2][4] > aSeq(2);
-// OUString (*pSeq)[2][4] = aSeq.getArray();
-// uno_copyData(pSeq[0], sA, pType, cpp_acquire);
-// uno_copyData(pSeq[1], sA, pType, cpp_acquire);
-
-// OSL_ASSERT( aSeq[0][0][0] == sA[0][0] );
-// OSL_ASSERT( aSeq[0][0][1] == sA[0][1] );
-// OSL_ASSERT( aSeq[0][0][2] == sA[0][2] );
-// OSL_ASSERT( aSeq[0][0][3] == sA[0][3] );
-// OSL_ASSERT( aSeq[0][1][0] == sA[1][0] );
-// OSL_ASSERT( aSeq[0][1][1] == sA[1][1] );
-// OSL_ASSERT( aSeq[0][1][2] == sA[1][2] );
-// OSL_ASSERT( aSeq[0][1][3] == sA[1][3] );
-
-// OSL_ASSERT( aSeq[1][0][0] == sA[0][0] );
-// OSL_ASSERT( aSeq[1][0][1] == sA[0][1] );
-// OSL_ASSERT( aSeq[1][0][2] == sA[0][2] );
-// OSL_ASSERT( aSeq[1][0][3] == sA[0][3] );
-// OSL_ASSERT( aSeq[1][1][0] == sA[1][0] );
-// OSL_ASSERT( aSeq[1][1][1] == sA[1][1] );
-// OSL_ASSERT( aSeq[1][1][2] == sA[1][2] );
-// OSL_ASSERT( aSeq[1][1][3] == sA[1][3] );
-
- uno_constructData( p2, pType );
- ppS = (rtl_uString**)p2;
- uno_copyData(p2, sa1, pType, reinterpret_cast<uno_AcquireFunc>(cpp_acquire));
- uno_copyData(sa2, p2, pType, reinterpret_cast<uno_AcquireFunc>(cpp_acquire));
-
- uno_destructData( p, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release));
- uno_destructData( p2, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
- uno_destructData( sa1, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
- uno_destructData( sa2, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release) );
-
- rtl_freeMemory(p);
- rtl_freeMemory(p2);
- typelib_typedescription_release(pType);
- typelib_typedescriptionreference_release(pTypeRef);
- pType = NULL;
- pTypeRef = NULL;
-}
-
-/*
- * main.
- */
-SAL_IMPLEMENT_MAIN()
-{
- rtl::OUString const cppName(
- RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
- uno_Environment * pCppEnv = 0;
- uno_getEnvironment( &pCppEnv, cppName.pData, 0 );
- uno_getEnvironment( &pCppEnv, cppName.pData, 0 );
- (*pCppEnv->release)( pCppEnv );
-
- try {
- typelib_setCacheSize( 200 );
- Reference< registry::XSimpleRegistry > xRegistry(
- ::cppu::createSimpleRegistry() );
- xRegistry->open( OUString( RTL_CONSTASCII_USTRINGPARAM("testcppu.rdb") ), sal_True, sal_False );
- Reference< XComponentContext > xContext(
- ::cppu::bootstrap_InitialComponentContext( xRegistry ) );
- testEnvironments();
- ::rtl_unloadUnusedModules( 0 );
- testMappingCallback();
- ::rtl_unloadUnusedModules( 0 );
-
-// // security test
-// void test_security( const Reference< XMultiServiceFactory > & );
-// test_security( xMgr );
-
- // C++, C bridges test
- void test_CppBridge(void);
- test_CppBridge();
- ::rtl_unloadUnusedModules( 0 );
-// void test_CBridge(void);
-// void test_CBridge2(void);
-// test_CBridge();
-// test_CBridge2();
-
- testCurrentContext();
- testAssignment();
- testCppu();
-// testArray();
-#if 0 // cache test not possible if types are loaded dynamically (cppumaker -L)
- test_cache();
-#endif
- test_interface();
- test_inheritance();
-
- // shutdown
- Reference< XComponent > xComp( xContext, UNO_QUERY_THROW );
- xComp.set( xContext, UNO_QUERY_THROW );
- Reference< XInterface > x(
- xContext->getValueByName(
- OUString( RTL_CONSTASCII_USTRINGPARAM("/singletons/com.sun.star.reflection.theTypeDescriptionManager") ) ), UNO_QUERY_THROW );
- xComp->dispose();
- }
- catch (Exception & exc) {
- fprintf( stderr, "error: %s\n", rtl::OUStringToOString(
- exc.Message, RTL_TEXTENCODING_UTF8 ).getStr() );
- }
-
- typelib_setCacheSize( 0 );
- ::rtl_unloadUnusedModules( 0 );
- testEnvironments();
- ::rtl_unloadUnusedModules( 0 );
-
- return 0;
-}
diff --git a/cppu/test/testthreadpool.cxx b/cppu/test/testthreadpool.cxx
deleted file mode 100644
index ec404b89793c..000000000000
--- a/cppu/test/testthreadpool.cxx
+++ /dev/null
@@ -1,193 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_cppu.hxx"
-#include <osl/diagnose.h>
-#include <osl/time.h>
-
-#include <rtl/uuid.h>
-
-#include <uno/threadpool.h>
-
-#include <vos/thread.hxx>
-
-#define TEST_ENSURE OSL_ENSURE
-
-using namespace ::vos;
-
-
-class OThread1 : public OThread
-{
-public:
- OThread1( sal_uInt8 *pCallerUuid );
- virtual void run();
-
-public:
- sal_uInt8 *m_pCallerUuid;
- sal_Int8 *m_pThreadIdentifier;
- sal_Int32 m_nThreadIdentifierLength;
-
- void *m_pThreadData;
-};
-
-OThread1::OThread1( sal_uInt8 *pCallerUuid ) :
- m_pCallerUuid( pCallerUuid ),
- m_pThreadData( (void*) 1 ),
- m_pThreadIdentifier( 0 ),
- m_nThreadIdentifierLength( 0 )
-{
-
-}
-
-void OThread1::run()
-{
-
- uno_threadpool_Ticket *pTicket = uno_threadpool_createTicket( m_pCallerUuid );
-
- uno_threadIdent_retrieve( &m_pThreadIdentifier , &m_nThreadIdentifierLength );
-
- uno_threadpool_waitOnTicket( pTicket , &m_pThreadData );
-
- uno_threadIdent_revoke();
-}
-
-
-void SAL_CALL doIt( void *pThreadData )
-{
- *( sal_Int32 *) pThreadData = 2;
-}
-
-void testthreadpool()
-{
- printf( "Testing threadpool ..." );
- fflush( stdout );
-
- sal_uInt8 pCallerUuid1[16];
- sal_uInt8 pCallerUuid2[16];
- rtl_createUuid( pCallerUuid1, 0 , sal_True );
- rtl_createUuid( pCallerUuid2, 0 , sal_True );
-
- //------------
- // Test reply
- //------------
- {
- OThread1 thread1( pCallerUuid1 );
-
- thread1.create();
-
- // do a busy wait
- while( ! thread1.m_pThreadIdentifier && ! thread1.m_nThreadIdentifierLength );
-
- void *pThreadData = (void*)0xdeadbabe;
- uno_threadpool_reply( thread1.m_pThreadIdentifier ,
- thread1.m_nThreadIdentifierLength,
- pThreadData );
-
- // do a busy wait
- while( (void*)1 == thread1.m_pThreadData );
-
- TEST_ENSURE( pThreadData == thread1.m_pThreadData, "uno_threadpool_reply error" );
- }
-
- //---------------
- // Test request
- //---------------
- {
- OThread1 thread1( pCallerUuid1 );
-
- thread1.create();
-
- // do a busy wait
- while( ! thread1.m_pThreadIdentifier && ! thread1.m_nThreadIdentifierLength );
-
- // do a request
- sal_Int32 i = 1;
- uno_threadpool_request( thread1.m_pThreadIdentifier ,
- thread1.m_nThreadIdentifierLength,
- &i,
- doIt,
- sal_False);
-
- // do a busy wait
- while( 1 == i );
- TEST_ENSURE( 2 == i, "uno_threadpool_request error" );
-
- // get it out of the pool
- void *pThreadData = (void*)0xdeadbabe;
- uno_threadpool_reply( thread1.m_pThreadIdentifier ,
- thread1.m_nThreadIdentifierLength,
- pThreadData );
-
- // do a busy wait
- while( pThreadData != thread1.m_pThreadData );
-
- }
-
- //---------------
- // Test dispose threads
- //---------------
- {
- OThread1 thread1( pCallerUuid1 );
- OThread1 thread2( pCallerUuid2 );
-
- thread1.create();
- thread2.create();
-
- // do a busy wait
- while( ! thread1.m_pThreadIdentifier && ! thread1.m_nThreadIdentifierLength &&
- ! thread2.m_pThreadIdentifier && ! thread2.m_nThreadIdentifierLength );
-
- // dispose the first
- uno_threadpool_disposeThreads( pCallerUuid1 );
-
- while( (void*)1 == thread1.m_pThreadData );
- TEST_ENSURE( (void*)0 == thread1.m_pThreadData, "disposing threads failed" );
-
- TimeValue value = {1,0};
- osl_waitThread( &value );
- TEST_ENSURE( (void*)1 == thread2.m_pThreadData, "wrong thread disposed !" );
-
- // test, if new threads are directly disposed
- OThread1 thread3( pCallerUuid1 );
- thread3.create();
-
- while( (void*)1 == thread3.m_pThreadData );
- TEST_ENSURE( (void*)0 == thread3.m_pThreadData ,
- "new threads entering threadpool are not disposed" );
-
- uno_threadpool_reply( thread2.m_pThreadIdentifier ,
- thread2.m_nThreadIdentifierLength,
- (void*)0x2 );
-
- while( (void*)1 == thread2.m_pThreadData );
- TEST_ENSURE( (void*)2 == thread2.m_pThreadData , "reply does not work correctly" );
-
- uno_threadpool_stopDisposeThreads( pCallerUuid1 );
- }
- printf( "Done\n" );
-}
diff --git a/cppunit/ldflags.patch b/cppunit/ldflags.patch
new file mode 100644
index 000000000000..cecd69a4b5ee
--- /dev/null
+++ b/cppunit/ldflags.patch
@@ -0,0 +1,10 @@
+--- misc/cppunit-1.12.1/src/cppunit/Makefile.am Wed Feb 20 06:36:38 2008
++++ misc/build/cppunit-1.12.1/src/cppunit/Makefile.am Mon May 3 17:00:41 2010
+@@ -63,5 +63,6 @@
+
+ libcppunit_la_LDFLAGS= \
+ -no-undefined -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+- -release $(LT_RELEASE)
++ -release $(LT_RELEASE) \
++ @LIBADD_DL@
+
diff --git a/cppunit/makefile.mk b/cppunit/makefile.mk
index b57c341e2a23..4b1a7deac533 100644
--- a/cppunit/makefile.mk
+++ b/cppunit/makefile.mk
@@ -34,7 +34,7 @@ TARFILE_MD5=bd30e9cf5523cdfc019b94f5e1d7fd19
# from <https://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/
# cppunit-1.12.1.tar.gz/download>
-PATCH_FILES = solarisfinite.patch warnings.patch windows.patch
+PATCH_FILES = solarisfinite.patch warnings.patch windows.patch ldflags.patch
# solarisfinite.patch: see <https://sourceforge.net/tracker/?func=detail&
# aid=2912590&group_id=11795&atid=311795>
# warnings.patch: see <https://sourceforge.net/tracker/?func=detail&
@@ -97,7 +97,7 @@ OOO_STLPORT_LIBS += -lm
# execute that program; however, the program would fail to locate the STLport
# library (another work-around might be to add something like --as-needed around
# $(LIBSTLPORT)):
-.IF "$(OS)" == "LINUX" || "$(OS)" == "SOLARIS"
+.IF "$(OS)" == "FREEBSD" || "$(OS)" == "LINUX" || "$(OS)" == "SOLARIS"
.IF "$(LD_LIBRARY_PATH)" == ""
LD_LIBRARY_PATH := $(SOLARLIBDIR)
# strictly speaking, this is incorrect if the LD_LIBRARY_PATH environment
diff --git a/dbaccess/prj/build.lst b/dbaccess/prj/build.lst
index d5c6eacc7d2a..f8b0502574e0 100644
--- a/dbaccess/prj/build.lst
+++ b/dbaccess/prj/build.lst
@@ -1,4 +1,4 @@
-ba dbaccess : l10n BOOST:boost connectivity svx stoc QADEVOOO:qadevOOo xmlscript NULL
+ba dbaccess : l10n BOOST:boost connectivity svx stoc qadevOOo xmlscript NULL
ba dbaccess usr1 - all ba_mkout NULL
ba dbaccess\inc nmake - all ba_inc NULL
ba dbaccess\source\ui\inc nmake - all ba_uiinc ba_inc NULL
diff --git a/dbaccess/qa/complex/dbaccess/makefile.mk b/dbaccess/qa/complex/dbaccess/makefile.mk
index d950100a7ead..56a24c0292fc 100755
--- a/dbaccess/qa/complex/dbaccess/makefile.mk
+++ b/dbaccess/qa/complex/dbaccess/makefile.mk
@@ -40,7 +40,6 @@ all:
.INCLUDE : target.mk
.ELSE
-.IF "$(BUILD_QADEVOOO)" == "YES"
#----- compile .java files -----------------------------------------
JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar ConnectivityTools.jar
@@ -76,8 +75,4 @@ run: $(CLASSDIR)$/$(JARTARGET)
run_%: $(CLASSDIR)$/$(JARTARGET)
+$(RUNNER_CALL) $(RUNNER_ARGS) -o complex.dbaccess.$(@:s/run_//)
-.ELSE
-.INCLUDE : target.mk
-.ENDIF # "$(BUILD_QADEVOOO)" == "YES"
-
.ENDIF # "$(SOLAR_JAVA)" == ""
diff --git a/default_images/sc/res/calcteam.png b/default_images/sc/res/calcteam.png
deleted file mode 100644
index 0a20421269b3..000000000000
--- a/default_images/sc/res/calcteam.png
+++ /dev/null
Binary files differ
diff --git a/desktop/prj/build.lst b/desktop/prj/build.lst
index 9253b4e82bc7..6f611926a0df 100644
--- a/desktop/prj/build.lst
+++ b/desktop/prj/build.lst
@@ -1,4 +1,4 @@
-dt desktop : l10n sfx2 stoc BERKELEYDB:berkeleydb sysui SO:sysui_so BOOST:boost svx xmlhelp sal unoil officecfg configmgr NULL
+dt desktop : l10n sfx2 stoc BERKELEYDB:berkeleydb sysui SO:sysui_so BOOST:boost svx xmlhelp sal unoil officecfg offuh NULL
dt desktop usr1 - all dt_mkout NULL
dt desktop\inc nmake - all dt_inc NULL
dt desktop\prj get - all dt_prj NULL
diff --git a/desktop/source/app/makefile.mk b/desktop/source/app/makefile.mk
index 83bec9011283..d9db7c163481 100644
--- a/desktop/source/app/makefile.mk
+++ b/desktop/source/app/makefile.mk
@@ -65,7 +65,6 @@ SHL1LIBS = $(SLB)$/mig.lib
SHL1STDLIBS = \
$(COMPHELPERLIB) \
- $(CONFIGMGRLIB) \
$(CPPUHELPERLIB) \
$(CPPULIB) \
$(I18NISOLANGLIB) \
diff --git a/desktop/source/deployment/makefile.mk b/desktop/source/deployment/makefile.mk
index 7eda0f582e15..173ff35bec1d 100644
--- a/desktop/source/deployment/makefile.mk
+++ b/desktop/source/deployment/makefile.mk
@@ -80,8 +80,7 @@ SHL1STDLIBS = \
$(SVLLIB) \
$(UNOTOOLSLIB) \
$(DEPLOYMENTMISCLIB) \
- $(HELPLINKERLIB) \
- $(CONFIGMGRLIB)
+ $(HELPLINKERLIB)
SHL1DEPN =
SHL1IMPLIB = i$(TARGET)
diff --git a/desktop/source/deployment/misc/dp_dependencies.cxx b/desktop/source/deployment/misc/dp_dependencies.cxx
index 63badbb0c211..9534f166f2f0 100644
--- a/desktop/source/deployment/misc/dp_dependencies.cxx
+++ b/desktop/source/deployment/misc/dp_dependencies.cxx
@@ -56,17 +56,13 @@ namespace css = ::com::sun::star;
static char const xmlNamespace[] =
"http://openoffice.org/extensions/description/2006";
-::dp_misc::Order compareWithVersion(::rtl::OUString const & version) {
+bool satisfiesMinimalVersion(::rtl::OUString const & version) {
::rtl::OUString v(
RTL_CONSTASCII_USTRINGPARAM(
"${$OOO_BASE_DIR/program/" SAL_CONFIGFILE("version")
":Version:OOOPackageVersion}"));
::rtl::Bootstrap::expandMacros(v);
- return ::dp_misc::compareVersions(v, version);
-}
-
-bool satisfiesMinimalVersion(::rtl::OUString const & version) {
- return compareWithVersion(version) != ::dp_misc::LESS;
+ return ::dp_misc::compareVersions(v, version) != ::dp_misc::LESS;
}
}
@@ -102,8 +98,14 @@ check(::dp_misc::DescriptionInfoset const & infoset) {
RTL_CONSTASCII_STRINGPARAM(
"OpenOffice.org-maximal-version")))
{
+ ::rtl::OUString v(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "${$OOO_BASE_DIR/program/" SAL_CONFIGFILE("version")
+ ":Version:OOOBaseVersion}"));
+ ::rtl::Bootstrap::expandMacros(v);
sat =
- compareWithVersion(
+ ::dp_misc::compareVersions(
+ v,
e->getAttribute(
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("value"))))
!= ::dp_misc::GREATER;
diff --git a/desktop/source/deployment/registry/configuration/dp_configuration.cxx b/desktop/source/deployment/registry/configuration/dp_configuration.cxx
index 460ba5e9fed0..6cf6d4ff7818 100644
--- a/desktop/source/deployment/registry/configuration/dp_configuration.cxx
+++ b/desktop/source/deployment/registry/configuration/dp_configuration.cxx
@@ -45,9 +45,9 @@
#include "ucbhelper/content.hxx"
#include "comphelper/anytostring.hxx"
#include "comphelper/servicedecl.hxx"
-#include "configmgr/update.hxx"
#include "xmlscript/xml_helper.hxx"
#include "svl/inettype.hxx"
+#include "com/sun/star/configuration/Update.hpp"
#include "com/sun/star/ucb/NameClash.hpp"
#include "com/sun/star/io/XActiveDataSink.hpp"
#include "com/sun/star/lang/WrappedTargetRuntimeException.hpp"
@@ -645,14 +645,16 @@ void BackendImpl::PackageImpl::processPackage_(
{
if (m_isSchema)
{
- configmgr::update::insertExtensionXcsFile(
- that->m_eContext == CONTEXT_SHARED, expandUnoRcUrl(url));
+ com::sun::star::configuration::Update::get(
+ that->m_xComponentContext)->insertExtensionXcsFile(
+ that->m_eContext == CONTEXT_SHARED, expandUnoRcUrl(url));
}
else
{
url = replaceOrigin(url, xCmdEnv);
- configmgr::update::insertExtensionXcuFile(
- that->m_eContext == CONTEXT_SHARED, expandUnoRcUrl(url));
+ com::sun::star::configuration::Update::get(
+ that->m_xComponentContext)->insertExtensionXcuFile(
+ that->m_eContext == CONTEXT_SHARED, expandUnoRcUrl(url));
}
that->addToConfigmgrIni( m_isSchema, url, xCmdEnv );
diff --git a/desktop/source/migration/migration.cxx b/desktop/source/migration/migration.cxx
index cefc3cebf0fd..4bcbf250907f 100644
--- a/desktop/source/migration/migration.cxx
+++ b/desktop/source/migration/migration.cxx
@@ -29,6 +29,7 @@
#include "precompiled_desktop.hxx"
#include <map>
+#include <new>
#include <set>
#include "migration.hxx"
@@ -38,7 +39,6 @@
#include <unotools/textsearch.hxx>
#include <comphelper/processfactory.hxx>
#include <comphelper/sequence.hxx>
-#include <configmgr/update.hxx>
#include <unotools/bootstrap.hxx>
#include <rtl/bootstrap.hxx>
#include <rtl/uri.hxx>
@@ -51,6 +51,7 @@
#include <osl/security.hxx>
#include <unotools/configmgr.hxx>
+#include <com/sun/star/configuration/Update.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/task/XJob.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
@@ -540,6 +541,21 @@ bool getComponent(rtl::OUString const & path, rtl::OUString * component) {
return true;
}
+uno::Sequence< rtl::OUString > setToSeq(std::set< rtl::OUString > const & set) {
+ std::set< rtl::OUString >::size_type n = set.size();
+ if (n > SAL_MAX_INT32) {
+ throw std::bad_alloc();
+ }
+ uno::Sequence< rtl::OUString > seq(static_cast< sal_Int32 >(n));
+ sal_Int32 i = 0;
+ for (std::set< rtl::OUString >::const_iterator j(set.begin());
+ j != set.end(); ++j)
+ {
+ seq[i++] = *j;
+ }
+ return seq;
+}
+
}
void MigrationImpl::copyConfig() {
@@ -587,9 +603,11 @@ void MigrationImpl::copyConfig() {
buf.append(enc);
} while (n >= 0);
buf.appendAscii(RTL_CONSTASCII_STRINGPARAM(".xcu"));
- configmgr::update::insertModificationXcuFile(
- buf.makeStringAndClear(), i->second.includedPaths,
- i->second.excludedPaths);
+ configuration::Update::get(
+ comphelper::getProcessComponentContext())->
+ insertModificationXcuFile(
+ buf.makeStringAndClear(), setToSeq(i->second.includedPaths),
+ setToSeq(i->second.excludedPaths));
} else {
OSL_TRACE(
("configuration migration component %s ignored (only excludes,"
diff --git a/desktop/source/splash/makefile.mk b/desktop/source/splash/makefile.mk
index 2f163fe7b9d6..89609687438c 100644
--- a/desktop/source/splash/makefile.mk
+++ b/desktop/source/splash/makefile.mk
@@ -63,7 +63,6 @@ SHL1STDLIBS= \
$(SVLLIB) \
$(SVTOOLLIB) \
$(COMPHELPERLIB) \
- $(CONFIGMGRLIB) \
$(UNOTOOLSLIB) \
$(TOOLSLIB) \
$(UCBHELPERLIB) \
diff --git a/desktop/test/deployment/boxt/Addons.xcu b/desktop/test/deployment/boxt/Addons.xcu
new file mode 100644
index 000000000000..3df7e2de274c
--- /dev/null
+++ b/desktop/test/deployment/boxt/Addons.xcu
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="Addons">
+ <node o:name="AddonUI">
+ <node o:name="OfficeMenuBar">
+ <node o:name="org.openoffice.test.desktop.deployment.boxt" o:op="replace">
+ <prop o:name="Title" xml:lang="en-US">
+ <value>boxt</value>
+ </prop>
+ <node o:name="Submenu">
+ <node o:name="1" o:op="replace">
+ <prop o:name="URL">
+ <value>vnd.org.openoffice.test.desktop.deployment.boxt:</value>
+ </prop>
+ <prop o:name="Title" xml:lang="en-US">
+ <value>boxt</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/boxt/ProtocolHandler.xcu b/desktop/test/deployment/boxt/ProtocolHandler.xcu
new file mode 100644
index 000000000000..fe448aedbe17
--- /dev/null
+++ b/desktop/test/deployment/boxt/ProtocolHandler.xcu
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<o:component-data xmlns:o="http://openoffice.org/2001/registry"
+ o:package="org.openoffice.Office" o:name="ProtocolHandler">
+ <node o:name="HandlerSet">
+ <node o:name="com.sun.star.test.deployment.boxt" o:op="replace">
+ <prop o:name="Protocols">
+ <value>vnd.org.openoffice.test.desktop.deployment.boxt:*</value>
+ </prop>
+ </node>
+ </node>
+</o:component-data>
diff --git a/desktop/test/deployment/boxt/boxt.cxx b/desktop/test/deployment/boxt/boxt.cxx
new file mode 100644
index 000000000000..dc82c0c004d6
--- /dev/null
+++ b/desktop/test/deployment/boxt/boxt.cxx
@@ -0,0 +1,235 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+#include "precompiled_desktop.hxx"
+#include "sal/config.h"
+
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/beans/PropertyValue.hpp"
+#include "com/sun/star/frame/DispatchDescriptor.hpp"
+#include "com/sun/star/frame/XDispatch.hpp"
+#include "com/sun/star/frame/XDispatchProvider.hpp"
+#include "com/sun/star/frame/XStatusListener.hpp"
+#include "com/sun/star/lang/XServiceInfo.hpp"
+#include "com/sun/star/lang/XSingleComponentFactory.hpp"
+#include "com/sun/star/uno/Any.hxx"
+#include "com/sun/star/uno/Exception.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/XComponentContext.hpp"
+#include "com/sun/star/uno/XInterface.hpp"
+#include "com/sun/star/util/URL.hpp"
+#include "cppuhelper/factory.hxx"
+#include "cppuhelper/implbase1.hxx"
+#include "cppuhelper/implbase3.hxx"
+#include "cppuhelper/implementationentry.hxx"
+#include "cppuhelper/weak.hxx"
+#include "filter/msfilter/countryid.hxx"
+#include "osl/diagnose.h"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "sal/types.h"
+#include "uno/lbnames.h"
+#include "vcl/svapp.hxx"
+
+namespace {
+
+namespace css = com::sun::star;
+
+namespace service {
+
+rtl::OUString getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
+}
+
+css::uno::Sequence< rtl::OUString > getSupportedServiceNames() {
+ rtl::OUString name(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
+}
+
+class Service:
+ public cppu::WeakImplHelper3<
+ css::lang::XServiceInfo, css::frame::XDispatchProvider,
+ css::frame::XDispatch >,
+ private boost::noncopyable
+{
+public:
+ Service() {}
+
+private:
+ virtual ~Service() {}
+
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return service::getImplementationName(); }
+
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
+ throw (css::uno::RuntimeException)
+ { return ServiceName == getSupportedServiceNames()[0]; } //TODO
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return service::getSupportedServiceNames(); }
+
+ virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
+ css::util::URL const &, rtl::OUString const &, sal_Int32)
+ throw (css::uno::RuntimeException)
+ { return this; }
+
+ virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+ SAL_CALL queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL addStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &)
+ throw (css::uno::RuntimeException)
+ {}
+
+ virtual void SAL_CALL removeStatusListener(
+ css::uno::Reference< css::frame::XStatusListener > const &,
+ css::util::URL const &)
+ throw (css::uno::RuntimeException)
+ {}
+};
+
+css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
+Service::queryDispatches(
+ css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > s(
+ Requests.getLength());
+ for (sal_Int32 i = 0; i < s.getLength(); ++i) {
+ s[i] = queryDispatch(
+ Requests[i].FeatureURL, Requests[i].FrameName,
+ Requests[i].SearchFlags);
+ }
+ return s;
+}
+
+void Service::dispatch(
+ css::util::URL const &,
+ css::uno::Sequence< css::beans::PropertyValue > const &)
+ throw (css::uno::RuntimeException)
+{
+ msfilter::ConvertCountryToLanguage(msfilter::COUNTRY_DONTKNOW);
+ // link against some obscure library that is unlikely already loaded
+ Application::ShowNativeErrorBox(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("boxt")),
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test")));
+}
+
+class Factory:
+ public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
+ private boost::noncopyable
+{
+public:
+ Factory() {}
+
+private:
+ virtual ~Factory() {}
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
+ createInstanceWithContext(
+ css::uno::Reference< css::uno::XComponentContext > const &)
+ throw (css::uno::Exception, css::uno::RuntimeException)
+ { return static_cast< cppu::OWeakObject * >(new Service); }
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
+ createInstanceWithArgumentsAndContext(
+ css::uno::Sequence< css::uno::Any > const &,
+ css::uno::Reference< css::uno::XComponentContext > const & Context)
+ throw (css::uno::Exception, css::uno::RuntimeException)
+ { return createInstanceWithContext(Context); }
+};
+
+css::uno::Reference< css::uno::XInterface > SAL_CALL dummy(
+ css::uno::Reference< css::uno::XComponentContext > const &)
+ SAL_THROW((css::uno::Exception))
+{
+ OSL_ASSERT(false);
+ return css::uno::Reference< css::uno::XInterface >();
+}
+
+rtl::OUString SAL_CALL getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
+}
+
+css::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames() {
+ rtl::OUString name(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
+ return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
+css::uno::Reference< css::lang::XSingleComponentFactory > SAL_CALL
+createFactory(
+ cppu::ComponentFactoryFunc, rtl::OUString const &,
+ css::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
+ SAL_THROW(())
+{
+ return new Factory;
+}
+
+static cppu::ImplementationEntry const services[] = {
+ { &dummy, &service::getImplementationName,
+ &service::getSupportedServiceNames, &createFactory, 0, 0 },
+ { 0, 0, 0, 0, 0, 0 }
+};
+
+}
+
+extern "C" void * SAL_CALL component_getFactory(
+ char const * pImplName, void * pServiceManager, void * pRegistryKey)
+{
+ return cppu::component_getFactoryHelper(
+ pImplName, pServiceManager, pRegistryKey, services);
+}
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+ char const ** ppEnvTypeName, uno_Environment **)
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+ void * pServiceManager, void * pRegistryKey)
+{
+ return component_writeInfoHelper(pServiceManager, pRegistryKey, services);
+}
diff --git a/desktop/test/deployment/boxt/description.xml b/desktop/test/deployment/boxt/description.xml
new file mode 100644
index 000000000000..5a67bf3e949f
--- /dev/null
+++ b/desktop/test/deployment/boxt/description.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
+ <d:identifier value="org.openoffice/framework/desktop/test/deployment/boxt"/>
+ <d:version value="@VERSION@"/>
+ <d:platform value="@PLATFORM@"/>
+ <d:dependencies>
+ <d:OpenOffice.org-minimal-version d:name="OpenOffice.org @VERSION@"
+ value="@VERSION@"/>
+ <d:OpenOffice.org-maximal-version d:name="OpenOffice.org @VERSION@ or older"
+ d:OpenOffice.org-minimal-version="2.3" value="@VERSION@"/>
+ </d:dependencies>
+</d:description>
diff --git a/desktop/test/deployment/boxt/makefile.mk b/desktop/test/deployment/boxt/makefile.mk
new file mode 100644
index 000000000000..63f123fcc608
--- /dev/null
+++ b/desktop/test/deployment/boxt/makefile.mk
@@ -0,0 +1,70 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+PRJ = ../../..
+PRJNAME = desktop
+TARGET = test_deployment_boxt
+
+ENABLE_EXCEPTIONS = TRUE
+
+.INCLUDE: settings.mk
+.INCLUDE: rtlbootstrap.mk
+
+#TODO: The underlying OOo base version needed here is currently only available
+# as instsetoo_native/util/openoffice.lst OOOBASEVERSION, so hard-coding it here
+# for now (see issue 110653):
+my_version = 3.3
+
+DLLPRE =
+
+SLOFILES = $(SHL1OBJS)
+
+SHL1TARGET = boxt.uno
+SHL1OBJS = $(SLO)/boxt.obj
+SHL1RPATH = BOXT
+SHL1STDLIBS = \
+ $(CPPUHELPERLIB) $(CPPULIB) $(MSFILTERLIB) $(SALLIB) $(TOOLSLIB) $(VCLLIB)
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
+DEF1NAME = $(SHL1TARGET)
+
+.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/boxt.oxt
+
+$(MISC)/boxt.oxt .ERRREMOVE : manifest.xml description.xml Addons.xcu \
+ ProtocolHandler.xcu $(SHL1TARGETN)
+ $(RM) -r $@ $(MISC)/$(TARGET).zip
+ $(MKDIR) $(MISC)/$(TARGET).zip
+ $(MKDIR) $(MISC)/$(TARGET).zip/META-INF
+ $(SED) -e 's|@PATH@|$(SHL1TARGETN:f)|g' < manifest.xml \
+ > $(MISC)/$(TARGET).zip/META-INF/manifest.xml
+ $(SED) -e 's|@PLATFORM@|$(RTL_OS:l)_$(RTL_ARCH:l)|g' \
+ -e 's|@VERSION@|$(my_version)|g' < description.xml \
+ > $(MISC)/$(TARGET).zip/description.xml
+ $(COPY) Addons.xcu ProtocolHandler.xcu $(SHL1TARGETN) $(MISC)/$(TARGET).zip
+ cd $(MISC)/$(TARGET).zip && zip ../boxt.oxt META-INF/manifest.xml \
+ description.xml Addons.xcu ProtocolHandler.xcu $(SHL1TARGETN:f)
diff --git a/desktop/test/deployment/boxt/manifest.xml b/desktop/test/deployment/boxt/manifest.xml
new file mode 100644
index 000000000000..73ebfc306e30
--- /dev/null
+++ b/desktop/test/deployment/boxt/manifest.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="Addons.xcu"/>
+ <m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
+ m:full-path="ProtocolHandler.xcu"/>
+ <m:file-entry
+ m:media-type="application/vnd.sun.star.uno-component;type=native"
+ m:full-path="@PATH@"/>
+</m:manifest>
diff --git a/desktop/util/makefile.mk b/desktop/util/makefile.mk
index c669206bb3f3..47885dfd6b73 100644
--- a/desktop/util/makefile.mk
+++ b/desktop/util/makefile.mk
@@ -81,41 +81,7 @@ APP1TARGET=so$/$(TARGET)
APP1NOSAL=TRUE
APP1RPATH=BRAND
APP1OBJS=$(OBJ)$/copyright_ascii_sun.obj $(OBJ)$/main.obj
-APP1STDLIBS = \
- $(SALLIB) \
- $(SOFFICELIB) \
- $(COMPHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(I18NISOLANGLIB) \
- $(SALLIB) \
- $(SFXLIB) \
- $(SVLLIB) \
- $(SVTOOLLIB) \
- $(TKLIB) \
- $(TOOLSLIB) \
- $(UCBHELPERLIB) \
- $(UNOTOOLSLIB) \
- $(VCLLIB) \
- $(FWELIB) \
- $(BASICLIB) \
- $(XMLSCRIPTLIB) \
- $(SALHELPERLIB) \
- $(SOTLIB) \
- $(SAXLIB) \
- $(FWILIB) \
- $(ICUUCLIB) \
- $(I18NUTILLIB) \
- $(ICULIB) \
- $(JVMFWKLIB) \
- $(BASEGFXLIB) \
- $(ICUDATALIB) \
- $(ICULELIB) \
- $(JVMACCESSLIB) \
- $(SALHELPERLIB) \
- $(VOSLIB)
-
-
+APP1STDLIBS = $(SALLIB) $(SOFFICELIB)
APP1DEPN= $(APP1RES) verinfo.rc
.IF "$(GUI)" == "WNT"
@@ -140,40 +106,7 @@ APP5TARGET=soffice
APP5NOSAL=TRUE
APP5RPATH=BRAND
APP5OBJS=$(OBJ)$/copyright_ascii_ooo.obj $(OBJ)$/main.obj
-APP5STDLIBS = \
- $(SALLIB) \
- $(SOFFICELIB) \
- $(COMPHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(I18NISOLANGLIB) \
- $(SALLIB) \
- $(SFXLIB) \
- $(SVLLIB) \
- $(SVTOOLLIB) \
- $(TKLIB) \
- $(TOOLSLIB) \
- $(UCBHELPERLIB) \
- $(UNOTOOLSLIB) \
- $(VCLLIB) \
- $(FWELIB) \
- $(BASICLIB) \
- $(XMLSCRIPTLIB) \
- $(SALHELPERLIB) \
- $(SOTLIB) \
- $(SAXLIB) \
- $(FWILIB) \
- $(ICUUCLIB) \
- $(I18NUTILLIB) \
- $(ICULIB) \
- $(JVMFWKLIB) \
- $(BASEGFXLIB) \
- $(ICUDATALIB) \
- $(ICULELIB) \
- $(JVMACCESSLIB) \
- $(SALHELPERLIB) \
- $(VOSLIB)
-
+APP5STDLIBS = $(SALLIB) $(SOFFICELIB)
.IF "$(OS)" == "LINUX"
APP5STDLIBS+= -lXext
#APP5STDLIBS+= -lXext -lSM -lICE
diff --git a/editeng/source/editeng/eehtml.cxx b/editeng/source/editeng/eehtml.cxx
index ddb82a06661d..569b80639b6b 100644
--- a/editeng/source/editeng/eehtml.cxx
+++ b/editeng/source/editeng/eehtml.cxx
@@ -60,6 +60,7 @@ EditHTMLParser::EditHTMLParser( SvStream& rIn, const String& rBaseURL, SvKeyValu
bWasInPara = FALSE;
nInTable = 0;
nInCell = 0;
+ bInTitle = FALSE;
nDefListLevel = 0;
nBulletLevel = 0;
nNumberingLevel = 0;
@@ -179,11 +180,14 @@ void EditHTMLParser::NextToken( int nToken )
break;
case HTML_TEXTTOKEN:
{
- if ( !bInPara )
- StartPara( FALSE );
-
-// if ( bInPara || pCurAnchor )
+ // #i110937# for <title> content, call aImportHdl (no SkipGroup), but don't insert the text into the EditEngine
+ if (!bInTitle)
{
+ if ( !bInPara )
+ StartPara( FALSE );
+
+ // if ( bInPara || pCurAnchor )
+
String aText = aToken;
if ( aText.Len() && ( aText.GetChar( 0 ) == ' ' )
&& ThrowAwayBlank() && !IsReadPRE() )
@@ -342,6 +346,13 @@ void EditHTMLParser::NextToken( int nToken )
// #58335# kein SkipGroup on/off auf inline markup etc.
+ case HTML_TITLE_ON:
+ bInTitle = TRUE;
+ break;
+ case HTML_TITLE_OFF:
+ bInTitle = FALSE;
+ break;
+
// globals
case HTML_HTML_ON:
case HTML_HTML_OFF:
@@ -355,8 +366,6 @@ void EditHTMLParser::NextToken( int nToken )
case HTML_THEAD_OFF:
case HTML_TBODY_ON:
case HTML_TBODY_OFF:
- case HTML_TITLE_ON:
- case HTML_TITLE_OFF:
// inline elements, structural markup
// HTML 3.0
case HTML_BANNER_ON:
diff --git a/editeng/source/editeng/eehtml.hxx b/editeng/source/editeng/eehtml.hxx
index a9b20bcd652f..8d11e743755a 100644
--- a/editeng/source/editeng/eehtml.hxx
+++ b/editeng/source/editeng/eehtml.hxx
@@ -57,6 +57,7 @@ private:
BOOL bFieldsInserted;
BYTE nInTable;
BYTE nInCell;
+ BOOL bInTitle;
BYTE nDefListLevel;
BYTE nBulletLevel;
diff --git a/extensions/prj/build.lst b/extensions/prj/build.lst
index 0885b3021c61..1489e2a4e0e4 100644
--- a/extensions/prj/build.lst
+++ b/extensions/prj/build.lst
@@ -34,4 +34,3 @@ ex extensions\source\update\feed nmake - all ex_updchkfeed ex
ex extensions\source\update\check nmake - all ex_updchk ex_inc NULL
ex extensions\source\update\ui nmake - all ex_updchkui ex_inc NULL
ex extensions\util nmake - all ex_util ex_preload ex_abpilot ex_dbpilots ex_logging ex_ldap ex_propctrlr ex_bib ex_plutil ex_oooimprovecore NULL
-ex extensions\qa\unoapi nmake - all ex_qa_unoapi NULL
diff --git a/extensions/source/abpilot/datasourcehandling.cxx b/extensions/source/abpilot/datasourcehandling.cxx
index 07bca1490e35..178948ae0d3a 100644
--- a/extensions/source/abpilot/datasourcehandling.cxx
+++ b/extensions/source/abpilot/datasourcehandling.cxx
@@ -347,25 +347,6 @@ namespace abp
//= ODataSource
//=====================================================================
//---------------------------------------------------------------------
- ODataSource::ODataSource( const Reference< XMultiServiceFactory >& _rxORB, const ::rtl::OUString& _rName )
- :m_pImpl(new ODataSourceImpl(_rxORB))
- {
- try
- {
- // get the data source context
- Reference< XNameAccess > xContext = lcl_getDataSourceContext( m_pImpl->xORB );
-
- // retrieve the UNO data source
- if (xContext.is())
- xContext->getByName( _rName ) >>= m_pImpl->xDataSource;
- }
- catch(const Exception&)
- {
- DBG_ERROR("ODataSource::ODataSource: could not access the requested data source (caught an exception)!");
- }
- }
-
- //---------------------------------------------------------------------
ODataSource::ODataSource( const ODataSource& _rSource )
:m_pImpl( NULL )
{
diff --git a/extensions/source/abpilot/datasourcehandling.hxx b/extensions/source/abpilot/datasourcehandling.hxx
index bcd4e64fd885..54819b9b9628 100644
--- a/extensions/source/abpilot/datasourcehandling.hxx
+++ b/extensions/source/abpilot/datasourcehandling.hxx
@@ -125,17 +125,6 @@ namespace abp
// ----------------------------------------------------------------
// - ctor/dtor/assignment
// ----------------------------------------------------------------
- /** ctor
- @param _rxORB
- the service factory to use to access the UNO objects
- @param _rName
- the name of the data source the object should represent
- */
- ODataSource(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,
- const ::rtl::OUString& _rName
- );
-
/// constructs an object which is initially invalid
ODataSource(
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB
diff --git a/extensions/source/nsplugin/source/so_env.cxx b/extensions/source/nsplugin/source/so_env.cxx
index 4cce0f98cd4f..5e86da9726b9 100644
--- a/extensions/source/nsplugin/source/so_env.cxx
+++ b/extensions/source/nsplugin/source/so_env.cxx
@@ -340,27 +340,6 @@ const char* findProgramDir()
return sProgram;
}
-// Return: "/home/build/staroffice/program" + original system library path
-const char* getNewLibraryPath()
-{
- static char pLPATH[NPP_PATH_MAX*4] = {0};
-
- if (!pLPATH[0])
- {
- const char* pProgram = findProgramDir();
- strcpy(pLPATH, "LD_LIBRARY_PATH=");
- strcat(pLPATH, pProgram);
-
- char* pLD = getenv("LD_LIBRARY_PATH");
- if (pLD)
- {
- strcat(pLPATH, ":");
- strcat(pLPATH, pLD);
- }
- }
- return pLPATH;
-}
-
#ifdef WNT
// Return SO executable absolute path, like "/home/build/staroffice/program/soffice"
const char* findSofficeExecutable()
diff --git a/extensions/source/nsplugin/source/so_env.hxx b/extensions/source/nsplugin/source/so_env.hxx
index a4e98a878f2a..0cf1194c2dc2 100644
--- a/extensions/source/nsplugin/source/so_env.hxx
+++ b/extensions/source/nsplugin/source/so_env.hxx
@@ -69,9 +69,6 @@
// return the install path of staroffice, return value like "/home/build/staroffice"
const char* findInstallDir();
-// return original system library path + "/home/build/staroffice/program"
-const char* getNewLibraryPath();
-
// return SO program dir absolute path, like "/home/build/staroffice/program"
const char* findProgramDir();
diff --git a/extensions/source/nsplugin/source/so_instance.cxx b/extensions/source/nsplugin/source/so_instance.cxx
index 65e511dfcc35..4b1e41f724bd 100644
--- a/extensions/source/nsplugin/source/so_instance.cxx
+++ b/extensions/source/nsplugin/source/so_instance.cxx
@@ -366,14 +366,6 @@ sal_Bool SoPluginInstance::LoadDocument(NSP_HWND hParent)
return sal_True;
}
-sal_Bool SoPluginInstance::SetSODir(char * sDir)
-{
- if(strlen(sDir) >= NPP_PATH_MAX) return sal_False;
-
- strcpy(sSO_Dir, sDir);
- return sal_True;
-}
-
sal_Bool SoPluginInstance::SetWindow(NSP_HWND hParent, int x, int y, int w, int h)
{
sal_Bool bRetval(sal_True);
diff --git a/extensions/source/nsplugin/source/so_instance.hxx b/extensions/source/nsplugin/source/so_instance.hxx
index 17266fcefc71..e95bb7c024ec 100644
--- a/extensions/source/nsplugin/source/so_instance.hxx
+++ b/extensions/source/nsplugin/source/so_instance.hxx
@@ -103,7 +103,6 @@ public:
virtual sal_Bool Print(void) ;
static sal_Bool ShutDown(void);
- static sal_Bool SetSODir(char * sDir);
static char* GetSODir(void) {return sSO_Dir;};
long GetParent(void) {return m_pParent;};
};
diff --git a/extensions/source/nsplugin/source/so_main.cxx b/extensions/source/nsplugin/source/so_main.cxx
index c60da777689a..49c899994424 100644
--- a/extensions/source/nsplugin/source/so_main.cxx
+++ b/extensions/source/nsplugin/source/so_main.cxx
@@ -148,16 +148,6 @@ sal_Bool dump_plugin_message(PLUGIN_MSG* pMsg)
return sal_True;
}
-int prepareEnviron()
-{
- // if child process inherit the chdir() property from parent process, if yes, no getNewLibraryPath() needed
- const char* pNewLibraryPath = getNewLibraryPath();
- putenv( (char*) pNewLibraryPath );
- SoPluginInstance::SetSODir((char *)findProgramDir());
-
- return 0;
-}
-
int Set_Window(PLUGIN_MSG* pMsg)
{
dump_plugin_message(pMsg);
diff --git a/extensions/source/propctrlr/browserline.cxx b/extensions/source/propctrlr/browserline.cxx
index 71a0bb2db3ce..108333076e19 100644
--- a/extensions/source/propctrlr/browserline.cxx
+++ b/extensions/source/propctrlr/browserline.cxx
@@ -320,12 +320,6 @@ namespace pcr
}
//------------------------------------------------------------------
- sal_Bool OBrowserLine::IsPropertyInputEnabled( ) const
- {
- return ( m_nEnableFlags & PropertyLineElement::InputControl ) != 0;
- }
-
- //------------------------------------------------------------------
void OBrowserLine::SetReadOnly( bool _bReadOnly )
{
if ( m_bReadOnly != _bReadOnly )
diff --git a/extensions/source/propctrlr/browserline.hxx b/extensions/source/propctrlr/browserline.hxx
index db747b4a6b99..7848b387d608 100644
--- a/extensions/source/propctrlr/browserline.hxx
+++ b/extensions/source/propctrlr/browserline.hxx
@@ -115,7 +115,6 @@ namespace pcr
void EnablePropertyControls( sal_Int16 _nControls, bool _bEnable );
void EnablePropertyLine( bool _bEnable );
- sal_Bool IsPropertyInputEnabled( ) const;
void SetReadOnly( bool _bReadOnly );
diff --git a/extensions/source/propctrlr/browserlistbox.cxx b/extensions/source/propctrlr/browserlistbox.cxx
index 67257f960f5b..8a2885fc8c69 100644
--- a/extensions/source/propctrlr/browserlistbox.cxx
+++ b/extensions/source/propctrlr/browserlistbox.cxx
@@ -682,16 +682,6 @@ namespace pcr
}
//------------------------------------------------------------------------
- Any OBrowserListBox::GetPropertyValue( const ::rtl::OUString& _rEntryName ) const
- {
- Any aValue;
- ListBoxLines::const_iterator line = m_aLines.find( _rEntryName );
- if ( line != m_aLines.end() )
- aValue = impl_getControlAsPropertyValue( line->second );
- return aValue;
- }
-
- //------------------------------------------------------------------------
sal_uInt16 OBrowserListBox::GetPropertyPos( const ::rtl::OUString& _rEntryName ) const
{
sal_uInt16 nRet = LISTBOX_ENTRY_NOTFOUND;
@@ -722,15 +712,6 @@ namespace pcr
}
//------------------------------------------------------------------------
- sal_Bool OBrowserListBox::IsPropertyInputEnabled( const ::rtl::OUString& _rEntryName ) const
- {
- BrowserLinePointer pLine;
- if ( impl_getBrowserLineForName( _rEntryName, pLine ) )
- return pLine->IsPropertyInputEnabled();
- return sal_False;
- }
-
- //------------------------------------------------------------------------
void OBrowserListBox::EnablePropertyControls( const ::rtl::OUString& _rEntryName, sal_Int16 _nControls, bool _bEnable )
{
BrowserLinePointer pLine;
diff --git a/extensions/source/propctrlr/browserlistbox.hxx b/extensions/source/propctrlr/browserlistbox.hxx
index de0ebc9dd6b6..edd9d9bd40eb 100644
--- a/extensions/source/propctrlr/browserlistbox.hxx
+++ b/extensions/source/propctrlr/browserlistbox.hxx
@@ -163,13 +163,11 @@ namespace pcr
void ChangeEntry( const OLineDescriptor&, sal_uInt16 nPos );
void SetPropertyValue( const ::rtl::OUString& rEntryName, const ::com::sun::star::uno::Any& rValue, bool _bUnknownValue );
- ::com::sun::star::uno::Any GetPropertyValue( const ::rtl::OUString& rEntryName ) const;
sal_uInt16 GetPropertyPos( const ::rtl::OUString& rEntryName ) const;
::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >
GetPropertyControl( const ::rtl::OUString& rEntryName );
void EnablePropertyControls( const ::rtl::OUString& _rEntryName, sal_Int16 _nControls, bool _bEnable );
void EnablePropertyLine( const ::rtl::OUString& _rEntryName, bool _bEnable );
- sal_Bool IsPropertyInputEnabled( const ::rtl::OUString& _rEntryName ) const;
sal_Int32 GetMinimumWidth();
sal_Int32 GetMinimumHeight();
diff --git a/extensions/source/propctrlr/handlerhelper.cxx b/extensions/source/propctrlr/handlerhelper.cxx
index 0e82397dae2c..ae87a85a3722 100644
--- a/extensions/source/propctrlr/handlerhelper.cxx
+++ b/extensions/source/propctrlr/handlerhelper.cxx
@@ -161,14 +161,6 @@ namespace pcr
//--------------------------------------------------------------------
Reference< XPropertyControl > PropertyHandlerHelper::createListBoxControl( const Reference< XPropertyControlFactory >& _rxControlFactory,
- const Sequence< ::rtl::OUString >& _rInitialListEntries, sal_Bool _bReadOnlyControl, sal_Bool _bSorted )
- {
- ::std::vector< ::rtl::OUString > aAsVector( _rInitialListEntries.getConstArray(), _rInitialListEntries.getConstArray() + _rInitialListEntries.getLength() );
- return lcl_implCreateListLikeControl( _rxControlFactory, aAsVector, _bReadOnlyControl, _bSorted, sal_True );
- }
-
- //--------------------------------------------------------------------
- Reference< XPropertyControl > PropertyHandlerHelper::createListBoxControl( const Reference< XPropertyControlFactory >& _rxControlFactory,
const ::std::vector< ::rtl::OUString >& _rInitialListEntries, sal_Bool _bReadOnlyControl, sal_Bool _bSorted )
{
return lcl_implCreateListLikeControl( _rxControlFactory, _rInitialListEntries, _bReadOnlyControl, _bSorted, sal_True );
diff --git a/extensions/source/propctrlr/handlerhelper.hxx b/extensions/source/propctrlr/handlerhelper.hxx
index bf42c5555f1b..e55cbf207526 100644
--- a/extensions/source/propctrlr/handlerhelper.hxx
+++ b/extensions/source/propctrlr/handlerhelper.hxx
@@ -105,14 +105,6 @@ namespace pcr
static ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >
createListBoxControl(
const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControlFactory >& _rxControlFactory,
- const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rInitialListEntries,
- sal_Bool _bReadOnlyControl,
- sal_Bool _bSorted
- );
-
- static ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >
- createListBoxControl(
- const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControlFactory >& _rxControlFactory,
const ::std::vector< ::rtl::OUString >& _rInitialListEntries,
sal_Bool _bReadOnlyControl,
sal_Bool _bSorted
diff --git a/extras/source/autotext/lang/af-ZA/acor_af-ZA.dat b/extras/source/autotext/lang/af-ZA/acor_af-ZA.dat
index c1cdeafb5b18..48300156b443 100644
--- a/extras/source/autotext/lang/af-ZA/acor_af-ZA.dat
+++ b/extras/source/autotext/lang/af-ZA/acor_af-ZA.dat
Binary files differ
diff --git a/extras/source/autotext/lang/da/acor_da-DK.dat b/extras/source/autotext/lang/da/acor_da-DK.dat
index 443089bee467..2b0ab780d322 100644
--- a/extras/source/autotext/lang/da/acor_da-DK.dat
+++ b/extras/source/autotext/lang/da/acor_da-DK.dat
Binary files differ
diff --git a/extras/source/autotext/lang/en-ZA/acor_en-ZA.dat b/extras/source/autotext/lang/en-ZA/acor_en-ZA.dat
index 64e40b717f4f..32f3421d6fb8 100644
--- a/extras/source/autotext/lang/en-ZA/acor_en-ZA.dat
+++ b/extras/source/autotext/lang/en-ZA/acor_en-ZA.dat
Binary files differ
diff --git a/extras/source/autotext/lang/mn/acor_mn-MN.dat b/extras/source/autotext/lang/mn/acor_mn-MN.dat
index 76a53833ccfd..616f02e2afe5 100644
--- a/extras/source/autotext/lang/mn/acor_mn-MN.dat
+++ b/extras/source/autotext/lang/mn/acor_mn-MN.dat
Binary files differ
diff --git a/extras/source/autotext/lang/pl/acor_pl-PL.dat b/extras/source/autotext/lang/pl/acor_pl-PL.dat
index dff95dac2175..858a9225582d 100644
--- a/extras/source/autotext/lang/pl/acor_pl-PL.dat
+++ b/extras/source/autotext/lang/pl/acor_pl-PL.dat
Binary files differ
diff --git a/filter/source/config/fragments/types/calc_Text_txt_csv_StarCalc.xcu b/filter/source/config/fragments/types/calc_Text_txt_csv_StarCalc.xcu
index 8b2c25903438..708717263917 100644
--- a/filter/source/config/fragments/types/calc_Text_txt_csv_StarCalc.xcu
+++ b/filter/source/config/fragments/types/calc_Text_txt_csv_StarCalc.xcu
@@ -1,7 +1,7 @@
<node oor:name="calc_Text_txt_csv_StarCalc" oor:op="replace" >
<prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
<prop oor:name="URLPattern"/>
- <prop oor:name="Extensions"><value>csv txt xls</value></prop>
+ <prop oor:name="Extensions"><value>csv txt</value></prop>
<prop oor:name="MediaType"><value>text/plain</value></prop>
<prop oor:name="Preferred"><value>false</value></prop>
<prop oor:name="PreferredFilter"><value>Text - txt - csv (StarCalc)</value></prop>
diff --git a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
index b2abefad2d9d..6229544cf02f 100644
--- a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
+++ b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
@@ -2869,4 +2869,4 @@
<xsl:template match="math:annotation" mode="math"/>
-</xsl:stylesheet> \ No newline at end of file
+</xsl:stylesheet>
diff --git a/forms/prj/build.lst b/forms/prj/build.lst
index 99f6b29d208b..cc71868b734d 100644
--- a/forms/prj/build.lst
+++ b/forms/prj/build.lst
@@ -1,4 +1,4 @@
-fm forms : l10n oovbaapi svx sfx2 QADEVOOO:qadevOOo NULL
+fm forms : l10n oovbaapi svx sfx2 qadevOOo NULL
fm forms usr1 - all fm_mkofrm NULL
fm forms\inc nmake - all fm_inc NULL
fm forms\source\inc get - all fm_sinc NULL
diff --git a/forms/qa/makefile.mk b/forms/qa/makefile.mk
index 1f12a8cf4a74..afafcca427aa 100644
--- a/forms/qa/makefile.mk
+++ b/forms/qa/makefile.mk
@@ -32,8 +32,6 @@ PRJNAME = forms
# --- Settings -----------------------------------------------------
.INCLUDE: settings.mk
-
-.IF "$(BUILD_QADEVOOO)" == "YES"
#----- compile .java files -----------------------------------------
JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar ConnectivityTools.jar
@@ -54,7 +52,6 @@ JARCOMPRESS = TRUE
# classpath and argument list
RUNNER_CLASSPATH = -cp "$(CLASSPATH)$(PATH_SEPERATOR)$(SOLARBINDIR)$/OOoRunner.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/ConnectivityTools.jar"
RUNNER_ARGS = org.openoffice.Runner -TestBase java_complex
-.END
# --- Targets ------------------------------------------------------
@@ -72,7 +69,6 @@ ALL: ALLDEP
test:
echo $(SOLARBINDIR)
-.IF "$(BUILD_QADEVOOO)" == "YES"
show_targets:
+@$(AUGMENT_LIBRARY_PATH) java $(RUNNER_CLASSPATH) complexlib.ShowTargets $(foreach,i,$(JAVAFILES) $(i:s/.\$///:s/.java//))
@@ -81,11 +77,3 @@ run:
run_%:
+$(COPY) integration$/forms$/*.props $(CLASSDIR)$/$(PACKAGE) && $(AUGMENT_LIBRARY_PATH) java $(RUNNER_CLASSPATH) $(RUNNER_ARGS) -o integration.$(PRJNAME).$(@:s/run_//)
-
-.ELSE
-run: show_targets
-
-show_targets:
- +@echo "Built without qadevOOo, no QA tests"
-
-.ENDIF
diff --git a/forms/qa/unoapi/forms.sce b/forms/qa/unoapi/forms.sce
index 97e9c7422f35..073472f03126 100644
--- a/forms/qa/unoapi/forms.sce
+++ b/forms/qa/unoapi/forms.sce
@@ -1,5 +1,5 @@
-o forms.OButtonControl
--o forms.OButtonModel
+#i111285 -o forms.OButtonModel
-o forms.OCheckBoxControl
-o forms.OCheckBoxModel
-o forms.OComboBoxControl
@@ -11,10 +11,10 @@
-o forms.ODateModel
-o forms.OEditControl
-o forms.OEditModel
--o forms.OFileControlModel
+#i109939 -o forms.OFileControlModel
-o forms.OFixedTextModel
-o forms.OFormattedControl
--o forms.OFormattedFieldWrapper
+#i109939 -o forms.OFormattedFieldWrapper
# LäSST EIN DOKUMENT OFFEN -o forms.OFormsCollection
-o forms.OGridControlModel
-o forms.OGroupBoxControl
diff --git a/forms/qa/unoapi/knownissues.xcl b/forms/qa/unoapi/knownissues.xcl
index 1cec8ac106a2..2e10a269c681 100644
--- a/forms/qa/unoapi/knownissues.xcl
+++ b/forms/qa/unoapi/knownissues.xcl
@@ -116,3 +116,14 @@ forms.OListBoxModel::com::sun::star::form::XUpdateBroadcaster
forms.OFormattedFieldWrapper::com::sun::star::form::XUpdateBroadcaster
forms.ODateModel::com::sun::star::form::XUpdateBroadcaster
forms.OComboBoxModel::com::sun::star::form::XUpdateBroadcaster
+
+### i111006 ###
+forms.OFileControlModel::com::sun::star::beans::XFastPropertySet
+forms.OFileControlModel::com::sun::star::form::FormControlModel
+
+### i111148 ###
+forms.OImageControlModel::com::sun::star::beans::XMultiPropertySet
+forms.OImageControlModel::com::sun::star::beans::XPropertySet
+
+### i111333 ###
+forms.OImageControlControl::com::sun::star::awt::XControl
diff --git a/forms/source/component/DatabaseForm.cxx b/forms/source/component/DatabaseForm.cxx
index 5f3f04d45618..154ed4b00272 100644
--- a/forms/source/component/DatabaseForm.cxx
+++ b/forms/source/component/DatabaseForm.cxx
@@ -2403,6 +2403,7 @@ void ODatabaseForm::_propertyChanged(const PropertyChangeEvent& evt) throw( Runt
//------------------------------------------------------------------------------
void SAL_CALL ODatabaseForm::setParent(const InterfaceRef& Parent) throw ( ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException)
{
+ // SYNCHRONIZED ----->
::osl::ResettableMutexGuard aGuard(m_aMutex);
Reference<XForm> xParentForm(getParent(), UNO_QUERY);
@@ -2447,14 +2448,15 @@ void SAL_CALL ODatabaseForm::setParent(const InterfaceRef& Parent) throw ( ::com
}
}
+ Reference< XPropertySet > xAggregateProperties( m_xAggregateSet );
+ aGuard.clear();
+ // <----- SYNCHRONIZED
+
Reference< XConnection > xOuterConnection;
sal_Bool bIsEmbedded = ::dbtools::isEmbeddedInDatabase( Parent, xOuterConnection );
- // clear the guard before setting property values, because of the notifications
- // which are triggered there
- aGuard.clear();
if ( bIsEmbedded )
- m_xAggregateSet->setPropertyValue( PROPERTY_DATASOURCE, makeAny( ::rtl::OUString() ) );
+ xAggregateProperties->setPropertyValue( PROPERTY_DATASOURCE, makeAny( ::rtl::OUString() ) );
}
//==============================================================================
diff --git a/forms/source/inc/InterfaceContainer.hxx b/forms/source/inc/InterfaceContainer.hxx
index 427d0c6ed190..90e508f43ca8 100644
--- a/forms/source/inc/InterfaceContainer.hxx
+++ b/forms/source/inc/InterfaceContainer.hxx
@@ -273,7 +273,7 @@ protected:
private:
// hack for Vba Events
- void fakeVbaEventsHack( sal_Int32 _nIndex );
+ void impl_addVbEvents_nolck_nothrow( const sal_Int32 i_nIndex );
// the runtime event format has changed from version SO5.2 to OOo
enum EventFormat
diff --git a/forms/source/misc/InterfaceContainer.cxx b/forms/source/misc/InterfaceContainer.cxx
index b594df158d17..e494406f87ef 100644
--- a/forms/source/misc/InterfaceContainer.cxx
+++ b/forms/source/misc/InterfaceContainer.cxx
@@ -31,6 +31,7 @@
#include "frm_resource.hrc"
#include "frm_resource.hxx"
#include "InterfaceContainer.hxx"
+#include "componenttools.hxx"
#include "property.hrc"
#include "services.hxx"
@@ -40,6 +41,7 @@
#include <com/sun/star/io/XMarkableStream.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/util/XCloneable.hpp>
+#include <com/sun/star/form/XForm.hpp>
#include <comphelper/container.hxx>
#include <comphelper/enumhelper.hxx>
@@ -119,54 +121,52 @@ lcl_stripVbaEvents( const Sequence< ScriptEventDescriptor >& sEvents )
return sStripped;
}
-void
-OInterfaceContainer::fakeVbaEventsHack( sal_Int32 _nIndex )
+void OInterfaceContainer::impl_addVbEvents_nolck_nothrow( const sal_Int32 i_nIndex )
{
// we are dealing with form controls
try
{
- Reference< XFormComponent > xForm( static_cast< XContainer* >(this), UNO_QUERY_THROW );
- // grand-parent should be the model, no parent ? if not
- // we'll ignore, we'll get called back here anyway )
- Reference< XChild > xChild( xForm->getParent(), UNO_QUERY_THROW );
- Reference< XModel > xDocOwner( xChild->getParent(), UNO_QUERY );
- OSL_TRACE(" Is DOC ????? %s", xDocOwner.is() ? "true" : "false" );
- if ( xDocOwner.is() )
+ do
{
- bool hasVBABindings = lcl_hasVbaEvents( m_xEventAttacher->getScriptEvents( _nIndex ) );
+ Reference< XModel > xDoc( getXModel( static_cast< XContainer *> ( this ) ) );
+ if ( !xDoc.is() )
+ break;
+
+ Reference< XMultiServiceFactory > xDocFac( xDoc, UNO_QUERY_THROW );
+ Reference< XCodeNameQuery > xNameQuery( xDocFac->createInstance( rtl::OUString::createFromAscii( "ooo.vba.VBACodeNameProvider" ) ), UNO_QUERY );
+ if ( !xNameQuery.is() )
+ break;
+
+ ::osl::MutexGuard aGuard( m_rMutex );
+ bool hasVBABindings = lcl_hasVbaEvents( m_xEventAttacher->getScriptEvents( i_nIndex ) );
if ( hasVBABindings )
- {
- OSL_TRACE("Has VBA bindings already, returning ");
- return;
- }
- Reference< XMultiServiceFactory > xFac( comphelper::getProcessServiceFactory(), UNO_QUERY );
- Reference< XMultiServiceFactory > xDocFac( xDocOwner, UNO_QUERY );
- if ( xFac.is() && xDocFac.is() )
- {
- try
- {
- Reference< ooo::vba::XVBAToOOEventDescGen > xDescSupplier( xFac->createInstance( rtl::OUString::createFromAscii( "ooo.vba.VBAToOOEventDesc" ) ), UNO_QUERY_THROW );
- Reference< XInterface > xIf( getByIndex( _nIndex ) , UNO_QUERY_THROW );
- Reference< XCodeNameQuery > xNameQuery( xDocFac->createInstance( rtl::OUString::createFromAscii( "ooo.vba.VBACodeNameProvider" ) ), UNO_QUERY_THROW );
-
- rtl::OUString sCodeName;
- sCodeName = xNameQuery->getCodeNameForObject( xIf );
- Reference< XPropertySet > xProps( xIf, UNO_QUERY );
- rtl::OUString sServiceName;
- xProps->getPropertyValue( rtl::OUString::createFromAscii("DefaultControl" ) ) >>= sServiceName;
-
- Sequence< ScriptEventDescriptor > vbaEvents = xDescSupplier->getEventDescriptions( xFac->createInstance( sServiceName ), sCodeName );
- // register the vba script events
- if ( m_xEventAttacher.is() )
- m_xEventAttacher->registerScriptEvents( _nIndex, vbaEvents );
- }
- catch( Exception& ){ OSL_TRACE("lcl_fakevbaevents - Caught Exception trying to create control eventstuff "); }
- }
+ break;
+
+ Reference< XInterface > xElement( getByIndex( i_nIndex ) , UNO_QUERY_THROW );
+ Reference< XForm > xElementAsForm( xElement, UNO_QUERY );
+ if ( xElementAsForm.is() )
+ break;
+ ::rtl::OUString sCodeName( xNameQuery->getCodeNameForObject( xElement ) );
+
+ Reference< XPropertySet > xProps( xElement, UNO_QUERY_THROW );
+ ::rtl::OUString sServiceName;
+ xProps->getPropertyValue( rtl::OUString::createFromAscii("DefaultControl" ) ) >>= sServiceName;
+
+ Reference< ooo::vba::XVBAToOOEventDescGen > xDescSupplier( m_xServiceFactory->createInstance( rtl::OUString::createFromAscii( "ooo.vba.VBAToOOEventDesc" ) ), UNO_QUERY_THROW );
+ Sequence< ScriptEventDescriptor > vbaEvents = xDescSupplier->getEventDescriptions( m_xServiceFactory->createInstance( sServiceName ), sCodeName );
+ // register the vba script events
+ m_xEventAttacher->registerScriptEvents( i_nIndex, vbaEvents );
}
+ while ( false );
+ }
+ catch ( const ServiceNotRegisteredException& )
+ {
+ // silence this, not all document types support the ooo.vba.VBACodeNameProvider service
}
- catch( Exception& )
+ catch( const Exception& )
{
+ DBG_UNHANDLED_EXCEPTION();
}
}
@@ -827,8 +827,9 @@ void OInterfaceContainer::approveNewElement( const Reference< XPropertySet >& _r
void OInterfaceContainer::implInsert(sal_Int32 _nIndex, const Reference< XPropertySet >& _rxElement,
sal_Bool _bEvents, ElementDescription* _pApprovalResult, sal_Bool _bFire ) throw( IllegalArgumentException )
{
- RTL_LOGFILE_CONTEXT( aLogger, "forms::OInterfaceContainer::implInsert" );
+ const bool bHandleEvents = _bEvents && m_xEventAttacher.is();
+ // SYNCHRONIZED ----->
::osl::ClearableMutexGuard aGuard( m_rMutex );
::std::auto_ptr< ElementDescription > aAutoDeleteMetaData;
@@ -866,17 +867,24 @@ void OInterfaceContainer::implInsert(sal_Int32 _nIndex, const Reference< XProper
m_aMap.insert( ::std::pair< const ::rtl::OUString, InterfaceRef >( sName, pElementMetaData->xInterface ) );
// announce ourself as parent to the new element
- {
- RTL_LOGFILE_CONTEXT( aLogger, "forms::OInterfaceContainer::implInsert::settingParent" );
- pElementMetaData->xChild->setParent(static_cast<XContainer*>(this));
- }
+ pElementMetaData->xChild->setParent(static_cast<XContainer*>(this));
// handle the events
- if ( _bEvents && m_xEventAttacher.is() )
+ if ( bHandleEvents )
{
m_xEventAttacher->insertEntry(_nIndex);
m_xEventAttacher->attach( _nIndex, pElementMetaData->xInterface, makeAny( _rxElement ) );
- // insert fake events?
+ }
+
+ // notify derived classes
+ implInserted( pElementMetaData );
+
+ aGuard.clear();
+ // <----- SYNCHRONIZED
+
+ // insert faked VBA events?
+ if ( bHandleEvents )
+ {
Reference< XEventAttacherManager > xMgr ( pElementMetaData->xInterface, UNO_QUERY );
if ( xMgr.is() )
{
@@ -885,19 +893,16 @@ void OInterfaceContainer::implInsert(sal_Int32 _nIndex, const Reference< XProper
for ( sal_Int32 i = 0; (i < nLen) && pIfcMgr ; ++i )
{
// add fake events to the control at index i
- pIfcMgr->fakeVbaEventsHack( i );
+ pIfcMgr->impl_addVbEvents_nolck_nothrow( i );
}
}
else
{
// add fake events to the control at index i
- fakeVbaEventsHack( _nIndex );
+ impl_addVbEvents_nolck_nothrow( _nIndex );
}
}
- // notify derived classes
- implInserted( pElementMetaData );
-
// fire the notification about the change
if ( _bFire )
{
@@ -1187,29 +1192,30 @@ void SAL_CALL OInterfaceContainer::removeByName(const ::rtl::OUString& Name) thr
//------------------------------------------------------------------------
void SAL_CALL OInterfaceContainer::registerScriptEvent( sal_Int32 nIndex, const ScriptEventDescriptor& aScriptEvent ) throw(IllegalArgumentException, RuntimeException)
{
- OSL_TRACE("*** registerScriptEvent %d", nIndex);
+ ::osl::ClearableMutexGuard aGuard( m_rMutex );
if ( m_xEventAttacher.is() )
{
m_xEventAttacher->registerScriptEvent( nIndex, aScriptEvent );
- fakeVbaEventsHack( nIndex ); // add fake vba events
+ aGuard.clear();
+ impl_addVbEvents_nolck_nothrow( nIndex ); // add fake vba events
}
}
//------------------------------------------------------------------------
void SAL_CALL OInterfaceContainer::registerScriptEvents( sal_Int32 nIndex, const Sequence< ScriptEventDescriptor >& aScriptEvents ) throw(IllegalArgumentException, RuntimeException)
{
- OSL_TRACE("*** registerScriptEvent(s) %d", nIndex);
+ ::osl::ClearableMutexGuard aGuard( m_rMutex );
if ( m_xEventAttacher.is() )
{
m_xEventAttacher->registerScriptEvents( nIndex, aScriptEvents );
- fakeVbaEventsHack( nIndex ); // add fake vba events
+ aGuard.clear();
+ impl_addVbEvents_nolck_nothrow( nIndex ); // add fake vba events
}
}
//------------------------------------------------------------------------
void SAL_CALL OInterfaceContainer::revokeScriptEvent( sal_Int32 nIndex, const ::rtl::OUString& aListenerType, const ::rtl::OUString& aEventMethod, const ::rtl::OUString& aRemoveListenerParam ) throw(IllegalArgumentException, RuntimeException)
{
- OSL_TRACE("*** revokeScriptEvent %d listenertype %s, eventMethod %s", nIndex, rtl::OUStringToOString( aListenerType, RTL_TEXTENCODING_UTF8 ).getStr(), rtl::OUStringToOString( aEventMethod, RTL_TEXTENCODING_UTF8 ).getStr());
if ( m_xEventAttacher.is() )
m_xEventAttacher->revokeScriptEvent( nIndex, aListenerType, aEventMethod, aRemoveListenerParam );
}
@@ -1238,7 +1244,6 @@ void SAL_CALL OInterfaceContainer::removeEntry( sal_Int32 nIndex ) throw(Illegal
//------------------------------------------------------------------------
Sequence< ScriptEventDescriptor > SAL_CALL OInterfaceContainer::getScriptEvents( sal_Int32 nIndex ) throw(IllegalArgumentException, RuntimeException)
{
- OSL_TRACE("getScriptEvents");
Sequence< ScriptEventDescriptor > aReturn;
if ( m_xEventAttacher.is() )
{
diff --git a/formula/inc/formula/compiler.hrc b/formula/inc/formula/compiler.hrc
index e8243482a776..e4dc05aca4e9 100644
--- a/formula/inc/formula/compiler.hrc
+++ b/formula/inc/formula/compiler.hrc
@@ -393,12 +393,8 @@
#define SC_OPCODE_LAST_OPCODE_ID 394 /* last OpCode */
/*** Interna ***/
-#define SC_OPCODE_INTERNAL_BEGIN 9995
-#define SC_OPCODE_GAME 9995
-#define SC_OPCODE_SPEW 9996
-#define SC_OPCODE_TTT 9997
-#define SC_OPCODE_TEAM 9998
-#define SC_OPCODE_ANSWER 9999
+#define SC_OPCODE_INTERNAL_BEGIN 9999
+#define SC_OPCODE_TTT 9999
#define SC_OPCODE_INTERNAL_END 9999
/*** from here on ExtraData contained ***/
diff --git a/formula/inc/formula/opcode.hxx b/formula/inc/formula/opcode.hxx
index 2ec322d29bf7..390ab21048d3 100644
--- a/formula/inc/formula/opcode.hxx
+++ b/formula/inc/formula/opcode.hxx
@@ -386,11 +386,7 @@ enum OpCodeEnum
ocNumberValue = SC_OPCODE_NUMBERVALUE,
// internal stuff
ocInternalBegin = SC_OPCODE_INTERNAL_BEGIN,
- ocGame = SC_OPCODE_GAME,
- ocSpew = SC_OPCODE_SPEW,
ocTTT = SC_OPCODE_TTT,
- ocTeam = SC_OPCODE_TEAM,
- ocAnswer = SC_OPCODE_ANSWER,
ocInternalEnd = SC_OPCODE_INTERNAL_END,
// from here on ExtraData
ocDataToken1 = SC_OPCODE_DATA_TOKEN_1,
diff --git a/formula/source/core/api/FormulaCompiler.cxx b/formula/source/core/api/FormulaCompiler.cxx
index 4cc5306fec9f..533ec85358c5 100644
--- a/formula/source/core/api/FormulaCompiler.cxx
+++ b/formula/source/core/api/FormulaCompiler.cxx
@@ -46,7 +46,7 @@ namespace formula
// =============================================================================
using namespace ::com::sun::star;
- static const sal_Char* pInternal[ 5 ] = { "GAME", "SPEW", "TTT", "STARCALCTEAM", "ANTWORT" };
+ static const sal_Char* pInternal[ 1 ] = { "TTT" };
// =============================================================================
namespace
diff --git a/framework/inc/properties.h b/framework/inc/properties.h
index f0358ef6f1a0..5a32a42a28cc 100644
--- a/framework/inc/properties.h
+++ b/framework/inc/properties.h
@@ -217,6 +217,14 @@ namespace framework{
#define UICOMMANDDESCRIPTION_NAMEACCESS_COMMANDROTATEIMAGELIST "private:resource/image/commandrotateimagelist"
#define UICOMMANDDESCRIPTION_NAMEACCESS_COMMANDMIRRORIMAGELIST "private:resource/image/commandmirrorimagelist"
+#define UICOMMANDDESCRIPTION_PROPNAME_PROPERTIES "Properties"
+#define UICOMMANDDESCRIPTION_PROPNAME_POPUP "Popup"
+
+#define UICOMMANDDESCRIPTION_PROPERTIES_IMAGE 1
+#define UICOMMANDDESCRIPTION_PROPERTIES_IMAGE_MIRRORED 2
+#define UICOMMANDDESCRIPTION_PROPERTIES_IMAGE_ROTATED 4
+#define UICOMMANDDESCRIPTION_PROPERTIES_TOGGLEBUTTON 8
+
//_______________________________________________
/** properties for "AutoRecovery" class */
diff --git a/framework/inc/uielement/toolbarmanager.hxx b/framework/inc/uielement/toolbarmanager.hxx
index 98894b623aea..1be8579a4112 100644
--- a/framework/inc/uielement/toolbarmanager.hxx
+++ b/framework/inc/uielement/toolbarmanager.hxx
@@ -179,6 +179,8 @@ class ToolBarManager : public ::com::sun::star::frame::XFrameActionListener
void RemoveControllers();
rtl::OUString RetrieveLabelFromCommand( const rtl::OUString& aCmdURL );
+ sal_Int32 RetrievePropertiesFromCommand( const rtl::OUString& aCmdURL );
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > GetPropsForCommand( const ::rtl::OUString& rCmdURL );
void CreateControllers();
void UpdateControllers();
void AddFrameActionListener();
diff --git a/framework/inc/uielement/uicommanddescription.hxx b/framework/inc/uielement/uicommanddescription.hxx
index d9f8e461c5b5..dd95981bba90 100644
--- a/framework/inc/uielement/uicommanddescription.hxx
+++ b/framework/inc/uielement/uicommanddescription.hxx
@@ -109,7 +109,7 @@ public:
ModuleToCommandFileMap m_aModuleToCommandFileMap;
UICommandsHashMap m_aUICommandsHashMap;
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xGenericUICommands;
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModuleManager > m_xModuleManager;
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModuleManager > m_xModuleManager;
};
} // namespace framework
diff --git a/framework/qa/unoapi/knownissues.xcl b/framework/qa/unoapi/knownissues.xcl
index f939efcca412..40f1965de639 100755
--- a/framework/qa/unoapi/knownissues.xcl
+++ b/framework/qa/unoapi/knownissues.xcl
@@ -54,3 +54,6 @@ fwk.Frame
### i90345 ###
fwk.URLTransformer::com::sun::star::util::XURLTransformer
+
+### i111180 ###
+fwk.Desktop::com::sun::star::frame::XComponentLoader
diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx
index d89b81c0f9b6..9b0ffa9ce993 100644
--- a/framework/source/uielement/toolbarmanager.cxx
+++ b/framework/source/uielement/toolbarmanager.cxx
@@ -112,6 +112,7 @@ using namespace ::com::sun::star::util;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::ui;
+using namespace ::com::sun::star;
namespace framework
{
@@ -803,17 +804,18 @@ void ToolBarManager::RemoveControllers()
m_aControllerMap.clear();
}
-::rtl::OUString ToolBarManager::RetrieveLabelFromCommand( const ::rtl::OUString& aCmdURL )
+uno::Sequence< beans::PropertyValue > ToolBarManager::GetPropsForCommand( const ::rtl::OUString& rCmdURL )
{
- ::rtl::OUString aLabel;
+ Sequence< PropertyValue > aPropSeq;
- // Retrieve popup menu labels
- if ( !m_bModuleIdentified )
+ // Retrieve properties for command
+ try
{
- Reference< XModuleManager > xModuleManager( m_xServiceManager->createInstance( SERVICENAME_MODULEMANAGER ), UNO_QUERY_THROW );
- Reference< XInterface > xIfac( m_xFrame, UNO_QUERY );
- try
+ if ( !m_bModuleIdentified )
{
+ Reference< XModuleManager > xModuleManager( m_xServiceManager->createInstance( SERVICENAME_MODULEMANAGER ), UNO_QUERY_THROW );
+ Reference< XInterface > xIfac( m_xFrame, UNO_QUERY );
+
m_bModuleIdentified = sal_True;
m_aModuleIdentifier = xModuleManager->identify( xIfac );
@@ -821,44 +823,57 @@ void ToolBarManager::RemoveControllers()
{
Reference< XNameAccess > xNameAccess( m_xServiceManager->createInstance( SERVICENAME_UICOMMANDDESCRIPTION ), UNO_QUERY );
if ( xNameAccess.is() )
- {
xNameAccess->getByName( m_aModuleIdentifier ) >>= m_xUICommandLabels;
- }
}
}
- catch ( Exception& )
+
+ if ( m_xUICommandLabels.is() )
{
+ if ( rCmdURL.getLength() > 0 )
+ m_xUICommandLabels->getByName( rCmdURL ) >>= aPropSeq;
}
}
+ catch ( Exception& )
+ {
+ }
- if ( m_xUICommandLabels.is() )
+ return aPropSeq;
+}
+
+::rtl::OUString ToolBarManager::RetrieveLabelFromCommand( const ::rtl::OUString& aCmdURL )
+{
+ ::rtl::OUString aLabel;
+ Sequence< PropertyValue > aPropSeq;
+
+ // Retrieve popup menu labels
+ aPropSeq = GetPropsForCommand( aCmdURL );
+ for ( sal_Int32 i = 0; i < aPropSeq.getLength(); i++ )
{
- try
+ if ( aPropSeq[i].Name.equalsAscii( "Name" ))
{
- if ( aCmdURL.getLength() > 0 )
- {
- rtl::OUString aStr;
- Sequence< PropertyValue > aPropSeq;
- if ( m_xUICommandLabels->getByName( aCmdURL ) >>= aPropSeq )
- {
- for ( sal_Int32 i = 0; i < aPropSeq.getLength(); i++ )
- {
- if ( aPropSeq[i].Name.equalsAscii( "Name" ))
- {
- aPropSeq[i].Value >>= aStr;
- break;
- }
- }
- }
- aLabel = aStr;
- }
+ aPropSeq[i].Value >>= aLabel;
+ break;
}
- catch ( com::sun::star::uno::Exception& )
+ }
+ return aLabel;
+}
+
+sal_Int32 ToolBarManager::RetrievePropertiesFromCommand( const ::rtl::OUString& aCmdURL )
+{
+ sal_Int32 nProperties(0);
+ Sequence< PropertyValue > aPropSeq;
+
+ // Retrieve popup menu labels
+ aPropSeq = GetPropsForCommand( aCmdURL );
+ for ( sal_Int32 i = 0; i < aPropSeq.getLength(); i++ )
+ {
+ if ( aPropSeq[i].Name.equalsAscii( "Properties" ))
{
+ aPropSeq[i].Value >>= nProperties;
+ break;
}
}
-
- return aLabel;
+ return nProperties;
}
void ToolBarManager::CreateControllers()
@@ -969,8 +984,15 @@ void ToolBarManager::CreateControllers()
{
MenuDescriptionMap::iterator it = m_aMenuMap.find( nId );
if ( it == m_aMenuMap.end() )
- xController = Reference< XStatusListener >(
- new GenericToolbarController( m_xServiceManager, m_xFrame, m_pToolBar, nId, aCommandURL ));
+ {
+ xController = Reference< XStatusListener >(
+ new GenericToolbarController( m_xServiceManager, m_xFrame, m_pToolBar, nId, aCommandURL ));
+
+ // Accessibility support: Set toggle button role for specific commands
+ sal_Int32 nProps = RetrievePropertiesFromCommand( aCommandURL );
+ if ( nProps & UICOMMANDDESCRIPTION_PROPERTIES_TOGGLEBUTTON )
+ m_pToolBar->SetItemBits( nId, m_pToolBar->GetItemBits( nId ) | TIB_CHECKABLE );
+ }
else
xController = Reference< XStatusListener >(
new MenuToolbarController( m_xServiceManager, m_xFrame, m_pToolBar, nId, aCommandURL, m_aModuleIdentifier, m_aMenuMap[ nId ] ));
@@ -1530,7 +1552,11 @@ IMPL_LINK( ToolBarManager, DropdownClick, ToolBox*, EMPTYARG )
Reference< XToolbarController > xController( pIter->second, UNO_QUERY );
if ( xController.is() )
- xController->createPopupWindow();
+ {
+ Reference< XWindow > xWin = xController->createPopupWindow();
+ if ( xWin.is() )
+ xWin->setFocus();
+ }
}
return 1;
}
diff --git a/framework/source/uielement/uicommanddescription.cxx b/framework/source/uielement/uicommanddescription.cxx
index fdcd08f221fd..0d50aa4c36d4 100644
--- a/framework/source/uielement/uicommanddescription.cxx
+++ b/framework/source/uielement/uicommanddescription.cxx
@@ -340,7 +340,7 @@ Any ConfigurationAccess_UICommand::getSequenceFromCache( const ::rtl::OUString&
if ( !pIter->second.bCommandNameCreated )
fillInfoFromResult( pIter->second, pIter->second.aLabel );
- Sequence< PropertyValue > aPropSeq( 3 );
+ Sequence< PropertyValue > aPropSeq( 4 );
aPropSeq[0].Name = m_aPropLabel;
aPropSeq[0].Value = pIter->second.aContextLabel.getLength() ?
makeAny( pIter->second.aContextLabel ): makeAny( pIter->second.aLabel );
@@ -348,6 +348,8 @@ Any ConfigurationAccess_UICommand::getSequenceFromCache( const ::rtl::OUString&
aPropSeq[1].Value <<= pIter->second.aCommandName;
aPropSeq[2].Name = m_aPropPopup;
aPropSeq[2].Value <<= pIter->second.bPopup;
+ aPropSeq[3].Name = m_aPropProperties;
+ aPropSeq[3].Value <<= pIter->second.nProperties;
return makeAny( aPropSeq );
}
diff --git a/instsetoo_native/util/openoffice.lst b/instsetoo_native/util/openoffice.lst
index 30da95e51c97..297ce32ef8c9 100644
--- a/instsetoo_native/util/openoffice.lst
+++ b/instsetoo_native/util/openoffice.lst
@@ -93,7 +93,6 @@ OpenOffice
DOWNLOADBANNER ooobanner.bmp
DOWNLOADBITMAP ooobitmap.bmp
DOWNLOADSETUPICO ooosetup.ico
- WINDOWSBITMAPDIRECTORY ..\inc_broffice\windows\msi_templates\Binary
RELATIVE_PATHES_IN_DDF 1
STARTCENTER_ADDFEATURE_URL http://tools.services.openoffice.org/forward/OpenOffice.org/extensions.jsp?cid=920794
STARTCENTER_INFO_URL http://tools.services.openoffice.org/forward/OpenOffice.org/homepage.jsp
@@ -160,7 +159,6 @@ OpenOffice_wJRE
DOWNLOADBANNER ooobanner.bmp
DOWNLOADBITMAP ooobitmap.bmp
DOWNLOADSETUPICO ooosetup.ico
- WINDOWSBITMAPDIRECTORY ..\inc_broffice\windows\msi_templates\Binary
RELATIVE_PATHES_IN_DDF 1
STARTCENTER_ADDFEATURE_URL http://tools.services.openoffice.org/forward/OpenOffice.org/extensions.jsp?cid=920794
STARTCENTER_INFO_URL http://tools.services.openoffice.org/forward/OpenOffice.org/homepage.jsp
@@ -232,7 +230,6 @@ OpenOffice_Dev
DOWNLOADBANNER ooobanner.bmp
DOWNLOADBITMAP ooobitmap.bmp
DOWNLOADSETUPICO ooosetup.ico
- WINDOWSBITMAPDIRECTORY ..\inc_broffice\windows\msi_templates\Binary
LOCALUSERDIR $ORIGIN/..
RELATIVE_PATHES_IN_DDF 1
STARTCENTER_ADDFEATURE_URL http://tools.services.openoffice.org/forward/OpenOffice.org/extensions.jsp?cid=920794
diff --git a/jurt/com/sun/star/lib/connections/pipe/PipeConnection.java b/jurt/com/sun/star/lib/connections/pipe/PipeConnection.java
index 997b9d1c76ee..455e3aab6502 100644
--- a/jurt/com/sun/star/lib/connections/pipe/PipeConnection.java
+++ b/jurt/com/sun/star/lib/connections/pipe/PipeConnection.java
@@ -58,30 +58,8 @@ public class PipeConnection implements XConnection, XConnectionBroadcaster {
static public final boolean DEBUG = false;
static {
- // preload shared libraries whichs import lips are linked to jpipe
- if ( System.getProperty( "os.name" ).startsWith( "Windows" ) )
- {
- try {
- NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "msvcr71");
- } catch (Throwable e){} // loading twice would fail
-
- try {
- NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "msvcr70");
- } catch (Throwable e){} // loading twice would fail
-
- try {
- NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "uwinapi");
- } catch (Throwable e){} // loading twice would fail
-
- try {
- NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "sal3");
- } catch (Throwable e){} // loading twice would fail
- }
-
// load shared library for JNI code
- try {
- NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "jpipe");
- } catch (Throwable e){} // loading twice would fail
+ NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "jpipe");
}
protected String _aDescription;
diff --git a/jurt/prj/build.lst b/jurt/prj/build.lst
index f3d498b8cdd6..9b9b722bc3ae 100644
--- a/jurt/prj/build.lst
+++ b/jurt/prj/build.lst
@@ -15,4 +15,5 @@ ju jurt\com\sun\star\comp\connections nmake - all ju_con ju_co_loader NULL
ju jurt\com\sun\star\comp\servicemanager nmake - all ju_servman NULL
ju jurt\com\sun\star\comp\urlresolver nmake - all ju_urlres ju_co_loader NULL
ju jurt\source\pipe nmake - all ju_src_pipe NULL
+ju jurt\source\pipe\wrapper nmake - w ju_src_pipe_wrapper NULL
ju jurt\util nmake - all ju_ut ju_brid_jrm ju_co_bfactr ju_con ju_con_sock ju_con_pipe ju_cssl_uno ju_env_java ju_prot_urp ju_servman ju_urlres ju_src_pipe ju_libutil ju_uno NULL
diff --git a/jurt/prj/d.lst b/jurt/prj/d.lst
index 5223fe2fe5ee..848435f61138 100644
--- a/jurt/prj/d.lst
+++ b/jurt/prj/d.lst
@@ -1,5 +1,6 @@
..\%__SRC%\class\jurt.jar %_DEST%\bin%_EXT%\jurt.jar
-..\%__SRC%\bin\jpipe*.dll %_DEST%\bin%_EXT%\jpipe*.dll
+..\%__SRC%\bin\jpipe.dll %_DEST%\bin%_EXT%\jpipe.dll
+..\%__SRC%\bin\jpipx.dll %_DEST%\bin%_EXT%\jpipx.dll
..\%__SRC%\lib\libjpipe*.so %_DEST%\lib%_EXT%\libjpipe*.so
..\%__SRC%\lib\libjpipe*.dylib %_DEST%\lib%_EXT%\libjpipe*.dylib
diff --git a/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c b/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c
index 255da24c2f86..4d0a5b357604 100644
--- a/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c
+++ b/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c
@@ -25,10 +25,20 @@
*
************************************************************************/
+#include "jni.h"
#include "osl/security.h"
#include <osl/pipe.h>
-#include "com_sun_star_lib_connections_pipe_PipeConnection.h"
+/* On Windows, jpipe.dll must not have dependencies on any other URE DLLs, as
+ Java System.LoadLibrary could otherwise not load it. Therefore, on Windows,
+ this code goes into a jpipx.dll that the jpipe.dll wrapper loads with
+ LoadLibraryEx(LOAD_WITH_ALTERED_SEARCH_PATH). The function names in this
+ wrapped code are truncated from the long JNICALL names, as JNICALL causes
+ some "@N" with different numeric values for N (and probably different across
+ 32 and 64 bit) to be added to the symbol names, which the calls to
+ GetProcAddress in wrapper/wrapper.c would otheriwse have to take into
+ account.
+*/
/*****************************************************************************/
/* exception macros */
@@ -100,7 +110,12 @@ static rtl_uString * jstring2ustring(JNIEnv * env, jstring jstr)
* Method: connect
* Signature: (Lcom/sun/star/beans/NativeService;)V
*/
-JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI
+SAL_DLLPUBLIC_EXPORT void
+#if defined WNT
+PipeConnection_create
+#else
+JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI
+#endif
(JNIEnv * env, jobject obj_this, jstring name)
{
enum {
@@ -234,7 +249,12 @@ JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_cre
* Method: closeJNI
* Signature: ()V
*/
-JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI
+SAL_DLLPUBLIC_EXPORT void
+#if defined WNT
+PipeConnection_close
+#else
+JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI
+#endif
(JNIEnv * env, jobject obj_this)
{
enum {
@@ -315,7 +335,12 @@ JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_clo
* Method: readJNI
* Signature: ([[BI)I
*/
-JNIEXPORT jint JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI
+SAL_DLLPUBLIC_EXPORT jint
+#if defined WNT
+PipeConnection_read
+#else
+JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI
+#endif
(JNIEnv * env, jobject obj_this, jobjectArray buffer, jint len)
{
enum {
@@ -430,7 +455,12 @@ JNIEXPORT jint JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_rea
* Method: writeJNI
* Signature: ([B)V
*/
-JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI
+SAL_DLLPUBLIC_EXPORT void
+#if defined WNT
+PipeConnection_write
+#else
+JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI
+#endif
(JNIEnv * env, jobject obj_this, jbyteArray buffer)
{
enum {
@@ -522,7 +552,12 @@ JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_wri
* Method: flushJNI
* Signature: ()V
*/
-JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI
+SAL_DLLPUBLIC_EXPORT void
+#if defined WNT
+PipeConnection_flush
+#else
+JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI
+#endif
(JNIEnv * env, jobject obj_this)
{
(void) env; /* not used */
diff --git a/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.h b/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.h
deleted file mode 100644
index a21e8f979348..000000000000
--- a/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-/* Header for class com_sun_star_connections_pipe_PipeConnection */
-
-#ifndef _Included_com_sun_star_lib_connections_pipe_PipeConnection_h
-#define _Included_com_sun_star_lib_connections_pipe_PipeConnection_h
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*
- * Class: com_sun_star_lib_connections_pipe_PipeConnection
- * Method: connect
- * Signature: (Ljava/lang/String;)V
- */
-JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI
- (JNIEnv *, jobject, jstring);
-
-/*
- * Class: com_sun_star_lib_connections_pipe_PipeConnection
- * Method: readJNI
- * Signature: ([[BI)I
- */
-JNIEXPORT jint JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI
- (JNIEnv *, jobject, jobjectArray, jint);
-
-/*
- * Class: com_sun_star_lib_connections_pipe_PipeConnection
- * Method: writeJNI
- * Signature: ([B)V
- */
-JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI
- (JNIEnv *, jobject, jbyteArray);
-
-/*
- * Class: com_sun_star_lib_connections_pipe_PipeConnection
- * Method: flushJNI
- * Signature: ()V
- */
-JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI
- (JNIEnv *, jobject);
-
-/*
- * Class: com_sun_star_lib_connections_pipe_PipeConnection
- * Method: closeJNI
- * Signature: ()V
- */
-JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI
- (JNIEnv *, jobject);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/jurt/source/pipe/jpipe.dxp b/jurt/source/pipe/jpipe.dxp
deleted file mode 100644
index e07ea907470f..000000000000
--- a/jurt/source/pipe/jpipe.dxp
+++ /dev/null
@@ -1,5 +0,0 @@
-Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI
-Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI
-Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI
-Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI
-Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI
diff --git a/jurt/source/pipe/makefile.mk b/jurt/source/pipe/makefile.mk
index e56ece77f5c1..5be6f1ebfd10 100644
--- a/jurt/source/pipe/makefile.mk
+++ b/jurt/source/pipe/makefile.mk
@@ -1,39 +1,57 @@
-PRJ=..$/..
-
-PRJNAME=jurt
-TARGET=jpipe
-ENABLE_EXCEPTIONS=TRUE
-
-#?
-NO_DEFAULT_STL=TRUE
-NO_BSYMBOLIC=TRUE
-USE_DEFFILE=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(SOLAR_JAVA)"==""
-nojava:
- @echo "Not building jurt because Java is disabled"
-.ENDIF
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/com_sun_star_lib_connections_pipe_PipeConnection.obj
-
-SHL1TARGET=$(TARGET)
-SHL1LIBS=$(SLB)$/$(TARGET).lib
-SHL1STDLIBS=$(SALLIB)
-SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-SHL1RPATH=URELIB
-
-DEF1NAME=$(SHL1TARGET)
-DEF1EXPORTFILE=$(TARGET).dxp
-DEF1DES=jurtpipe
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+PRJ = ../..
+PRJNAME = jurt
+TARGET = jpipe
+
+NO_DEFAULT_STL = TRUE
+VISIBILITY_HIDDEN = TRUE
+
+.INCLUDE: settings.mk
+
+.IF "$(OS)" == "WNT"
+SHL1TARGET = jpipx
+.ELSE
+SHL1TARGET = jpipe
+.END
+
+SHL1CODETYPE = C
+SHL1IMPLIB = i$(SHL1TARGET)
+SHL1OBJS = $(SLO)/com_sun_star_lib_connections_pipe_PipeConnection.obj
+SHL1RPATH = URELIB
+SHL1STDLIBS = $(SALLIB)
+SHL1USE_EXPORTS = name
+DEF1NAME = $(SHL1TARGET)
+
+SLOFILES = $(SHL1OBJS)
+
+.IF "$(SOLAR_JAVA)" == ""
+nothing .PHONY :
+.END
+
+.INCLUDE: target.mk
diff --git a/cppu/test/EnvDcp/makefile.mk b/jurt/source/pipe/wrapper/makefile.mk
index cc0db62e93fe..88a3b160da2e 100644
--- a/cppu/test/EnvDcp/makefile.mk
+++ b/jurt/source/pipe/wrapper/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -23,24 +23,30 @@
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := EnvDcp.test
-
+#***********************************************************************/
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
+PRJ = ../../..
+PRJNAME = jurt
+TARGET = wrapper
+NO_DEFAULT_STL = TRUE
+UWINAPILIB =
+VISIBILITY_HIDDEN = TRUE
-.INCLUDE : settings.mk
+.INCLUDE: settings.mk
+SHL1CODETYPE = C
+SHL1IMPLIB = i$(SHL1TARGET)
+SHL1OBJS = $(SLO)/wrapper.obj
+SHL1RPATH = URELIB
+SHL1TARGET = jpipe
+SHL1USE_EXPORTS = name
+DEF1NAME = $(SHL1TARGET)
-APP1TARGET := $(TARGET)
-APP1OBJS := $(OBJ)$/EnvDcp.test.obj
-APP1STDLIBS := $(ObjectFactory_LIB) $(CPPULIB) $(SALLIB)
+SLOFILES = $(SHL1OBJS)
+.IF "$(SOLAR_JAVA)" == ""
+nothing .PHONY :
+.END
-.INCLUDE : target.mk
+.INCLUDE: target.mk
diff --git a/jurt/source/pipe/wrapper/wrapper.c b/jurt/source/pipe/wrapper/wrapper.c
new file mode 100644
index 000000000000..5ef40f009191
--- /dev/null
+++ b/jurt/source/pipe/wrapper/wrapper.c
@@ -0,0 +1,99 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+#include "sal/config.h"
+
+#include <stddef.h>
+
+#include <Windows.h>
+
+#include "jni.h"
+#include "sal/types.h"
+
+static HMODULE module;
+
+static FARPROC getFunction(char const * name) {
+ return GetProcAddress(module, name);
+}
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
+ (void) lpvReserved;
+ if (fdwReason == DLL_PROCESS_ATTACH) {
+ wchar_t path[32767];
+ DWORD size;
+ size = GetModuleFileNameW(hinstDLL, path, 32767);
+ if (size == 0) {
+ return FALSE;
+ }
+ path[size - 5] = L'x'; /* ...\jpipe.dll -> ...\jpipx.dll */
+ module = LoadLibraryExW(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
+ if (module == NULL) {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+SAL_DLLPUBLIC_EXPORT void JNICALL
+Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI(
+ JNIEnv * env, jobject obj_this, jstring name)
+{
+ (*(void (*)(JNIEnv *, jobject, jstring))
+ getFunction("PipeConnection_create"))(env, obj_this, name);
+}
+
+SAL_DLLPUBLIC_EXPORT void JNICALL
+Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI(
+ JNIEnv * env, jobject obj_this)
+{
+ (*(void (*)(JNIEnv *, jobject))
+ getFunction("PipeConnection_close"))(env, obj_this);
+}
+
+SAL_DLLPUBLIC_EXPORT jint JNICALL
+Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI(
+ JNIEnv * env, jobject obj_this, jobjectArray buffer, jint len)
+{
+ return (*(jint (*)(JNIEnv *, jobject, jobjectArray, jint))
+ getFunction("PipeConnection_read"))(env, obj_this, buffer, len);
+}
+
+SAL_DLLPUBLIC_EXPORT void JNICALL
+Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI(
+ JNIEnv * env, jobject obj_this, jbyteArray buffer)
+{
+ (*(void (*)(JNIEnv *, jobject, jbyteArray))
+ getFunction("PipeConnection_write"))(env, obj_this, buffer);
+}
+
+SAL_DLLPUBLIC_EXPORT void JNICALL
+Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI(
+ JNIEnv * env, jobject obj_this)
+{
+ (*(void (*)(JNIEnv *, jobject))
+ getFunction("PipeConnection_flush"))(env, obj_this);
+}
diff --git a/libxml2/libxml2-2.6.31-mingw.patch b/libxml2/libxml2-2.6.31-mingw.patch
deleted file mode 100755
index 412db5bc244a..000000000000
--- a/libxml2/libxml2-2.6.31-mingw.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- misc/libxml2-2.6.31/configure 2008-01-11 17:01:56.000000000 +0900
-+++ misc/build/libxml2-2.6.31/configure 2009-09-07 20:48:47.656250000 +0900
-@@ -27331,6 +27331,8 @@
-
- if test "$with_modules" != "no" ; then
- case "$host" in
-+ *-*-mingw*)
-+ ;;
- *-*-cygwin*)
- MODULE_EXTENSION=".dll"
- { echo "$as_me:$LINENO: checking for dlopen in -lcygwin" >&5
---- misc/libxml2-2.6.31/libxml.h 2007-11-23 19:47:23.000000000 +0900
-+++ misc/build/libxml2-2.6.31/libxml.h 2009-07-10 14:37:34.988250000 +0900
-@@ -30,6 +30,10 @@
- #include <libxml/xmlversion.h>
- #else
- #include "config.h"
-+#ifdef __MINGW32__
-+#undef HAVE_LIBPTHREAD
-+#undef HAVE_PTHREAD_H
-+#endif
- #include <libxml/xmlversion.h>
- #endif
-
diff --git a/libxml2/libxml2-2.6.31.patch b/libxml2/libxml2-2.6.31.patch
deleted file mode 100644
index 31fcf72e8479..000000000000
--- a/libxml2/libxml2-2.6.31.patch
+++ /dev/null
@@ -1,412 +0,0 @@
-*** misc/libxml2-2.6.31/configure Fri Jan 11 09:01:56 2008
---- misc/build/libxml2-2.6.31/configure Thu Mar 27 14:09:56 2008
-***************
-*** 3463,3477 ****
- CFLAGS=$ac_save_CFLAGS
- elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
-! CFLAGS="-g -O2"
- else
-! CFLAGS="-g"
- fi
- else
- if test "$GCC" = yes; then
-! CFLAGS="-O2"
- else
-! CFLAGS=
- fi
- fi
- { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
---- 3463,3477 ----
- CFLAGS=$ac_save_CFLAGS
- elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
-! CFLAGS="$ADDCFLAGS -g -O2"
- else
-! CFLAGS="$ADDCFLAGS -g"
- fi
- else
- if test "$GCC" = yes; then
-! CFLAGS="$ADDCFLAGS -O2"
- else
-! CFLAGS="$ADDCFLAGS"
- fi
- fi
- { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-***************
-*** 26207,26215 ****
-
- { echo "$as_me:$LINENO: checking for library containing setsockopt" >&5
- echo $ECHO_N "checking for library containing setsockopt... $ECHO_C" >&6; }
-! if test "${ac_cv_search_setsockopt+set}" = set; then
-! echo $ECHO_N "(cached) $ECHO_C" >&6
-! else
- ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
---- 26207,26215 ----
-
- { echo "$as_me:$LINENO: checking for library containing setsockopt" >&5
- echo $ECHO_N "checking for library containing setsockopt... $ECHO_C" >&6; }
-! #if test "${ac_cv_search_setsockopt+set}" = set; then
-! # echo $ECHO_N "(cached) $ECHO_C" >&6
-! #else
- ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
-***************
-*** 26279,26285 ****
- fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
-! fi
- { echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5
- echo "${ECHO_T}$ac_cv_search_setsockopt" >&6; }
- ac_res=$ac_cv_search_setsockopt
---- 26279,26285 ----
- fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
-! #fi
- { echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5
- echo "${ECHO_T}$ac_cv_search_setsockopt" >&6; }
- ac_res=$ac_cv_search_setsockopt
-*** misc/libxml2-2.6.31/ltmain.sh Wed Aug 29 14:28:46 2007
---- misc/build/libxml2-2.6.31/ltmain.sh Thu Mar 27 13:54:03 2008
-***************
-*** 3311,3318 ****
- ;;
-
- freebsd-elf)
-! major=".$current"
-! versuffix=".$current";
- ;;
-
- irix | nonstopux)
---- 3311,3318 ----
- ;;
-
- freebsd-elf)
-! major=.`expr $current - $age`
-! versuffix=".$major.$age.$revision";
- ;;
-
- irix | nonstopux)
-*** misc/libxml2-2.6.31/xml2-config.in Fri Jan 11 08:22:32 2008
---- misc/build/libxml2-2.6.31/xml2-config.in Wed Apr 2 11:56:17 2008
-***************
-*** 1,10 ****
- #! /bin/sh
-
-! prefix=@prefix@
-! exec_prefix=@exec_prefix@
-! includedir=@includedir@
-! libdir=@libdir@
-
- usage()
- {
- cat <<EOF
---- 1,15 ----
- #! /bin/sh
-
-! #prefix=@prefix@
-! #exec_prefix=@exec_prefix@
-! #includedir=@includedir@
-! #libdir=@libdir@
-
-+ prefix=${SOLARVERSION}/${INPATH}
-+ exec_prefix=${SOLARVERSION}/${INPATH}
-+ includedir=${SOLARVERSION}/${INPATH}/inc${UPDMINOREXT}/external
-+ libdir=${SOLARVERSION}/${INPATH}/lib${UPDMINOREXT}
-+
- usage()
- {
- cat <<EOF
-***************
-*** 67,73 ****
- ;;
-
- --cflags)
-! echo @XML_INCLUDEDIR@ @XML_CFLAGS@
- ;;
-
- --libtool-libs)
---- 72,79 ----
- ;;
-
- --cflags)
-! echo -I${includedir}
-! # echo @XML_INCLUDEDIR@ @XML_CFLAGS@
- ;;
-
- --libtool-libs)
-***************
-*** 82,100 ****
- ;;
-
- --libs)
-! if [ "`uname`" = "Linux" ]
-! then
-! if [ "@XML_LIBDIR@" = "-L/usr/lib" -o "@XML_LIBDIR@" = "-L/usr/lib64" ]
-! then
-! echo @XML_LIBS@
-! else
-! echo @XML_LIBDIR@ @XML_LIBS@
-! fi
-! else
-! echo @XML_LIBDIR@ @XML_LIBS@ @WIN32_EXTRA_LIBADD@
-! fi
- ;;
-
- *)
- usage
- exit 1
---- 88,111 ----
- ;;
-
- --libs)
-! echo -L${libdir} ${LIBXML2LIB} -lm
-! # if [ "`uname`" = "Linux" ]
-! # then
-! # if [ "@XML_LIBDIR@" = "-L/usr/lib" -o "@XML_LIBDIR@" = "-L/usr/lib64" ]
-! # then
-! # echo @XML_LIBS@
-! # else
-! # echo @XML_LIBDIR@ @XML_LIBS@
-! # fi
-! # else
-! # echo @XML_LIBDIR@ @XML_LIBS@ @WIN32_EXTRA_LIBADD@
-! # fi
- ;;
-
-+ print) # ugly configure hack
-+ exit 0
-+ ;;
-+
- *)
- usage
- exit 1
-*** misc/libxml2-2.6.31/include/win32config.h Wed Apr 18 09:51:54 2007
---- misc/build/libxml2-2.6.31/include/win32config.h Mon Mar 31 19:09:09 2008
-***************
-*** 92,98 ****
---- 92,100 ----
- #if defined(_MSC_VER)
- #define mkdir(p,m) _mkdir(p)
- #define snprintf _snprintf
-+ #if _MSC_VER < 1500
- #define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
-+ #endif
- #elif defined(__MINGW32__)
- #define mkdir(p,m) _mkdir(p)
- #endif
-*** misc/libxml2-2.6.31/include/wsockcompat.h Wed Jan 3 14:07:30 2007
---- misc/build/libxml2-2.6.31/include/wsockcompat.h Thu Apr 3 10:15:50 2008
-***************
-*** 21,26 ****
---- 21,27 ----
-
- /* Check if ws2tcpip.h is a recent version which provides getaddrinfo() */
- #if defined(GetAddrInfo)
-+ #include <wspiapi.h>
- #define HAVE_GETADDRINFO
- #endif
- #endif
-*** misc/libxml2-2.6.31/include/libxml/xmlversion.h Fri Jan 11 10:11:19 2008
---- misc/build/libxml2-2.6.31/include/libxml/xmlversion.h Thu Mar 27 13:54:03 2008
-***************
-*** 264,270 ****
- *
- * Whether iconv support is available
- */
-! #if 1
- #define LIBXML_ICONV_ENABLED
- #endif
-
---- 264,270 ----
- *
- * Whether iconv support is available
- */
-! #if 0
- #define LIBXML_ICONV_ENABLED
- #endif
-
-***************
-*** 282,288 ****
- *
- * Whether Debugging module is configured in
- */
-! #if 1
- #define LIBXML_DEBUG_ENABLED
- #endif
-
---- 282,288 ----
- *
- * Whether Debugging module is configured in
- */
-! #if 0
- #define LIBXML_DEBUG_ENABLED
- #endif
-
-***************
-*** 291,297 ****
- *
- * Whether the memory debugging is configured in
- */
-! #if 1
- #define DEBUG_MEMORY_LOCATION
- #endif
-
---- 291,297 ----
- *
- * Whether the memory debugging is configured in
- */
-! #if 0
- #define DEBUG_MEMORY_LOCATION
- #endif
-
-***************
-*** 300,306 ****
- *
- * Whether the runtime debugging is configured in
- */
-! #if 1
- #define LIBXML_DEBUG_RUNTIME
- #endif
-
---- 300,306 ----
- *
- * Whether the runtime debugging is configured in
- */
-! #if 0
- #define LIBXML_DEBUG_RUNTIME
- #endif
-
-diff -r -cN misc/libxml2-2.6.31/changelog misc/build/libxml2-2.6.31/changelog
-*** misc/libxml2-2.6.31/changelog
---- misc/build/libxml2-2.6.31/changelog
-***************
-*** 0 ****
---- 1,10 ----
-+ libxml2 (2.6.32.dfsg-5+lenny1) stable-security; urgency=high
-+
-+ * Non-maintainer upload by the Security Team.
-+ * Fix multiple use-after-free flaws when parsing notation and
-+ enumeration attribute types (CVE-2009-2416).
-+ * Fix stack overflow when parsing root XML document element DTD
-+ definition (CVE-2009-2414).
-+
-+ -- Nico Golde <nion@debian.org> Thu, 06 Aug 2009 13:04:00 +0000
-+
-diff -r -cN misc/libxml2-2.6.31/parser.c misc/build/libxml2-2.6.31/parser.c
-*** misc/libxml2-2.6.31/parser.c
---- misc/build/libxml2-2.6.31/parser.c
-***************
-*** 4752,4761 ****
- if (name == NULL) {
- xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
- "Name expected in NOTATION declaration\n");
-! return(ret);
- }
- cur = xmlCreateEnumeration(name);
-! if (cur == NULL) return(ret);
- if (last == NULL) ret = last = cur;
- else {
- last->next = cur;
---- 4752,4766 ----
- if (name == NULL) {
- xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
- "Name expected in NOTATION declaration\n");
-! xmlFreeEnumeration(ret);
-! return(NULL);
- }
- cur = xmlCreateEnumeration(name);
-! if (cur == NULL) {
-! xmlFreeEnumeration(ret);
-! return(NULL);
-! }
-!
- if (last == NULL) ret = last = cur;
- else {
- last->next = cur;
-***************
-*** 4765,4773 ****
- } while (RAW == '|');
- if (RAW != ')') {
- xmlFatalErr(ctxt, XML_ERR_NOTATION_NOT_FINISHED, NULL);
-! if ((last != NULL) && (last != ret))
-! xmlFreeEnumeration(last);
-! return(ret);
- }
- NEXT;
- return(ret);
---- 4770,4777 ----
- } while (RAW == '|');
- if (RAW != ')') {
- xmlFatalErr(ctxt, XML_ERR_NOTATION_NOT_FINISHED, NULL);
-! xmlFreeEnumeration(ret);
-! return(NULL);
- }
- NEXT;
- return(ret);
-***************
-*** 4808,4814 ****
- }
- cur = xmlCreateEnumeration(name);
- xmlFree(name);
-! if (cur == NULL) return(ret);
- if (last == NULL) ret = last = cur;
- else {
- last->next = cur;
---- 4812,4822 ----
- }
- cur = xmlCreateEnumeration(name);
- xmlFree(name);
-! if (cur == NULL) {
-! xmlFreeEnumeration(ret);
-! return(NULL);
-! }
-!
- if (last == NULL) ret = last = cur;
- else {
- last->next = cur;
-***************
-*** 5206,5211 ****
---- 5214,5226 ----
- const xmlChar *elem;
- xmlChar type = 0;
-
-+ if (ctxt->depth > 128) {
-+ xmlFatalErrMsgInt(ctxt, XML_ERR_ELEMCONTENT_NOT_FINISHED,
-+ "xmlParseElementChildrenContentDecl : depth %d too deep\n",
-+ ctxt->depth);
-+ return(NULL);
-+ }
-+
- SKIP_BLANKS;
- GROW;
- if (RAW == '(') {
-***************
-*** 5214,5220 ****
---- 5229,5237 ----
- /* Recurse on first child */
- NEXT;
- SKIP_BLANKS;
-+ ctxt->depth++;
- cur = ret = xmlParseElementChildrenContentDecl(ctxt, inputid);
-+ ctxt->depth--;
- SKIP_BLANKS;
- GROW;
- } else {
-***************
-*** 5344,5350 ****
---- 5361,5369 ----
- /* Recurse on second child */
- NEXT;
- SKIP_BLANKS;
-+ ctxt->depth++;
- last = xmlParseElementChildrenContentDecl(ctxt, inputid);
-+ ctxt->depth--;
- SKIP_BLANKS;
- } else {
- elem = xmlParseName(ctxt);
diff --git a/libxml2/libxml2-configure.patch b/libxml2/libxml2-configure.patch
new file mode 100644
index 000000000000..4158c38ef47f
--- /dev/null
+++ b/libxml2/libxml2-configure.patch
@@ -0,0 +1,118 @@
+--- misc/libxml2-2.7.6/ltmain.sh 2009-10-06 17:39:54.000000000 +0100
++++ misc/build/libxml2-2.7.6/ltmain.sh 2009-12-17 11:43:56.000000000 +0000
+@@ -6271,8 +6271,8 @@
+ ;;
+
+ freebsd-elf)
+- major=".$current"
+- versuffix=".$current"
++ major=.`expr $current - $age`
++ versuffix=".$major.$age.$revision";
+ ;;
+
+ irix | nonstopux)
+--- misc/libxml2-2.7.6/include/libxml/xmlversion.h 2009-12-17 11:45:19.000000000 +0000
++++ misc/build/libxml2-2.7.6/include/libxml/xmlversion.h 2009-12-17 11:45:36.000000000 +0000
+@@ -264,7 +264,7 @@
+ *
+ * Whether iconv support is available
+ */
+-#if 1
++#if 0
+ #define LIBXML_ICONV_ENABLED
+ #endif
+
+@@ -282,7 +282,7 @@
+ *
+ * Whether Debugging module is configured in
+ */
+-#if 1
++#if 0
+ #define LIBXML_DEBUG_ENABLED
+ #endif
+
+@@ -291,7 +291,7 @@
+ *
+ * Whether the memory debugging is configured in
+ */
+-#if 1
++#if 0
+ #define DEBUG_MEMORY_LOCATION
+ #endif
+
+@@ -300,7 +300,7 @@
+ *
+ * Whether the runtime debugging is configured in
+ */
+-#if 1
++#if 0
+ #define LIBXML_DEBUG_RUNTIME
+ #endif
+
+--- misc/libxml2-2.7.6/xml2-config.in 2009-12-17 11:45:20.000000000 +0000
++++ misc/build/libxml2-2.7.6/xml2-config.in 2009-12-17 11:45:36.000000000 +0000
+@@ -1,9 +1,14 @@
+ #! /bin/sh
+
+-prefix=@prefix@
+-exec_prefix=@exec_prefix@
+-includedir=@includedir@
+-libdir=@libdir@
++#prefix=@prefix@
++#exec_prefix=@exec_prefix@
++#includedir=@includedir@
++#libdir=@libdir@
++
++prefix=${SOLARVERSION}/${INPATH}
++exec_prefix=${SOLARVERSION}/${INPATH}
++includedir=${SOLARVERSION}/${INPATH}/inc${UPDMINOREXT}/external
++libdir=${SOLARVERSION}/${INPATH}/lib${UPDMINOREXT}
+
+ usage()
+ {
+@@ -67,7 +72,8 @@
+ ;;
+
+ --cflags)
+- echo @XML_INCLUDEDIR@ @XML_CFLAGS@
++ echo -I${includedir}
++# echo @XML_INCLUDEDIR@ @XML_CFLAGS@
+ ;;
+
+ --libtool-libs)
+@@ -82,19 +88,24 @@
+ ;;
+
+ --libs)
+- if [ "`uname`" = "Linux" ]
+- then
+- if [ "@XML_LIBDIR@" = "-L/usr/lib" -o "@XML_LIBDIR@" = "-L/usr/lib64" ]
+- then
+- echo @XML_LIBS@
+- else
+- echo @XML_LIBDIR@ @XML_LIBS@
+- fi
+- else
+- echo @XML_LIBDIR@ @XML_LIBS@ @WIN32_EXTRA_LIBADD@
+- fi
++ echo -L${libdir} ${LIBXML2LIB} -lm
++# if [ "`uname`" = "Linux" ]
++# then
++# if [ "@XML_LIBDIR@" = "-L/usr/lib" -o "@XML_LIBDIR@" = "-L/usr/lib64" ]
++# then
++# echo @XML_LIBS@
++# else
++# echo @XML_LIBDIR@ @XML_LIBS@
++# fi
++# else
++# echo @XML_LIBDIR@ @XML_LIBS@ @WIN32_EXTRA_LIBADD@
++# fi
+ ;;
+
++ print) # ugly configure hack
++ exit 0
++ ;;
++
+ *)
+ usage
+ exit 1
diff --git a/libxml2/libxml2-gnome599717.patch b/libxml2/libxml2-gnome599717.patch
new file mode 100644
index 000000000000..cc6617d0e699
--- /dev/null
+++ b/libxml2/libxml2-gnome599717.patch
@@ -0,0 +1,20 @@
+--- misc/libxml2-2.7.6/relaxng.c 2009-12-17 11:53:12.000000000 +0000
++++ misc/build/libxml2-2.7.6/relaxng.c 2009-12-17 16:30:43.000000000 +0000
+@@ -5369,7 +5369,7 @@
+ } else {
+ xmlRngPErr(ctxt, node, XML_RNGP_CHOICE_CONTENT,
+ "expecting name, anyName, nsName or choice : got %s\n",
+- (node == NULL ? "nothing" : node->name), NULL);
++ (node == NULL ? BAD_CAST "nothing" : node->name), NULL);
+ return (NULL);
+ }
+ if (ret != def) {
+@@ -9459,7 +9459,7 @@
+ ctxt->states = NULL;
+ if (found == 0) {
+ if (cur == NULL) {
+- VALID_ERR2(XML_RELAXNG_ERR_INTEREXTRA, "noname");
++ VALID_ERR2(XML_RELAXNG_ERR_INTEREXTRA, BAD_CAST "noname");
+ } else {
+ VALID_ERR2(XML_RELAXNG_ERR_INTEREXTRA, cur->name);
+ }
diff --git a/libxml2/libxml2-gnome602728.patch b/libxml2/libxml2-gnome602728.patch
new file mode 100644
index 000000000000..b284d457a751
--- /dev/null
+++ b/libxml2/libxml2-gnome602728.patch
@@ -0,0 +1,12 @@
+--- misc/libxml2-2.7.6/configure 2009-12-18 12:12:08.000000000 +0000
++++ misc/build/libxml2-2.7.6/configure 2009-12-18 12:20:40.000000000 +0000
+@@ -12150,7 +12150,7 @@
+ $(/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null) && \
+ VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+ test "`uname`" == "SunOS" && \
+- VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
++ VERSION_SCRIPT_FLAGS=""
+
+ if test -n "$VERSION_SCRIPT_FLAGS"; then
+ USE_VERSION_SCRIPT_TRUE=
+
diff --git a/libxml2/libxml2-mingw.patch b/libxml2/libxml2-mingw.patch
new file mode 100755
index 000000000000..d160dcb70138
--- /dev/null
+++ b/libxml2/libxml2-mingw.patch
@@ -0,0 +1,24 @@
+--- misc/libxml2-2.7.6/configure 2008-01-11 17:01:56.000000000 +0900
++++ misc/build/libxml2-2.7.6/configure 2009-09-07 20:48:47.656250000 +0900
+@@ -19914,6 +19914,8 @@
+
+ if test "$with_modules" != "no" ; then
+ case "$host" in
++ *-*-mingw*)
++ ;;
+ *-*-cygwin*)
+ MODULE_EXTENSION=".dll"
+ { $as_echo "$as_me:$LINENO: checking for dlopen in -lcygwin" >&5
+--- misc/libxml2-2.7.6/libxml.h 2007-11-23 19:47:23.000000000 +0900
++++ misc/build/libxml2-2.7.6/libxml.h 2009-07-10 14:37:34.988250000 +0900
+@@ -30,6 +30,10 @@
+ #include <libxml/xmlversion.h>
+ #else
+ #include "config.h"
++#ifdef __MINGW32__
++#undef HAVE_LIBPTHREAD
++#undef HAVE_PTHREAD_H
++#endif
+ #include <libxml/xmlversion.h>
+ #endif
+
diff --git a/libxml2/makefile.mk b/libxml2/makefile.mk
index 9175391fbae8..93275b65b2d8 100644
--- a/libxml2/makefile.mk
+++ b/libxml2/makefile.mk
@@ -42,21 +42,19 @@ all:
# --- Files --------------------------------------------------------
-LIBXML2VERSION=2.6.31
+LIBXML2VERSION=2.7.6
TARFILE_NAME=$(PRJNAME)-$(LIBXML2VERSION)
-TARFILE_MD5=71ef7bcd3493a94395abccecbcf62dd7
-#.IF "$(OS)$(COM)"=="WNTGCC"
-#PATCH_FILES=$(TARFILE_NAME)-mingw.patch
-#.ELSE
-PATCH_FILES=$(TARFILE_NAME).patch
-#.ENDIF
+TARFILE_MD5=7740a8ec23878a2f50120e1faa2730f2
+PATCH_FILES=libxml2-configure.patch \
+ libxml2-mingw.patch \
+ libxml2-gnome599717.patch \
+ libxml2-gnome602728.patch
# This is only for UNX environment now
.IF "$(OS)"=="WNT"
.IF "$(COM)"=="GCC"
-PATCH_FILES+=$(TARFILE_NAME)-mingw.patch
xml2_CC=$(CC)
.IF "$(MINGW_SHARED_GCCLIB)"=="YES"
xml2_CC+=-shared-libgcc
diff --git a/libxmlsec/makefile.mk b/libxmlsec/makefile.mk
index 2c41ce0dec1d..1f0e5976f5e5 100644
--- a/libxmlsec/makefile.mk
+++ b/libxmlsec/makefile.mk
@@ -42,24 +42,25 @@ EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
# --- Files --------------------------------------------------------
-XMLSEC1VERSION=1.2.12
+XMLSEC1VERSION=1.2.14
TARFILE_NAME=$(PRJNAME)-$(XMLSEC1VERSION)
-TARFILE_MD5=195d042623bcc2e1668ab8370de6dc2a
+TARFILE_MD5=1f24ab1d39f4a51faf22244c94a6203f
-#xmlsec1-configure.patch: Set up the build. Straightforward
-#configuration
+#xmlsec1-configure.patch: Set up the build. Straightforward configuration
+#xmlsec1-olderlibxml2.patch: Allow build against older libxml2, for macosx
+#xmlsec1-nssdisablecallbacks.patch: Disable use of smime3 so don't need to package it
#xmlsec1-customkeymanage.patch: Could we do this alternatively outside xmlsec
#xmlsec1-nssmangleciphers.patch: Dubious, do we still need this ?
-#xmlsec1-nssdisablecallbacks.patch: Dubious, do we still need this ?
#xmlsec1-noverify.patch: As per readme.txt.
#xmlsec1-mingw32.patch: Mingw32 support.
#xmlsec1-mingw-customkeymanage-addmscrypto.patch builds the custom keymanager on mingw
PATCH_FILES=\
xmlsec1-configure.patch \
+ xmlsec1-olderlibxml2.patch \
+ xmlsec1-nssdisablecallbacks.patch \
xmlsec1-customkeymanage.patch \
xmlsec1-nssmangleciphers.patch \
- xmlsec1-nssdisablecallbacks.patch \
xmlsec1-noverify.patch \
xmlsec1-mingw32.patch \
xmlsec1-mingw-keymgr-mscrypto.patch
@@ -96,7 +97,7 @@ xmlsec_LIBS+=-lstdc++_s
.ENDIF
CONFIGURE_DIR=
CONFIGURE_ACTION=.$/configure
-CONFIGURE_FLAGS=--with-libxslt=no --with-openssl=no --with-gnutls=no --with-mozilla_ver=1.7.5 --enable-mscrypto --build=i586-pc-mingw32 --host=i586-pc-mingw32 CC="$(xmlsec_CC)" CFLAGS="-D_MT" LDFLAGS="-no-undefined -L$(ILIB:s/;/ -L/)" LIBS="$(xmlsec_LIBS)" LIBXML2LIB=$(LIBXML2LIB) ZLIB3RDLIB=$(ZLIB3RDLIB) OBJDUMP="$(WRAPCMD) objdump"
+CONFIGURE_FLAGS=--with-libxslt=no --with-openssl=no --with-gnutls=no --with-mozilla_ver=1.7.5 --enable-mscrypto --disable-crypto-dl --build=i586-pc-mingw32 --host=i586-pc-mingw32 CC="$(xmlsec_CC)" CFLAGS="-D_MT" LDFLAGS="-no-undefined -L$(ILIB:s/;/ -L/)" LIBS="$(xmlsec_LIBS)" LIBXML2LIB=$(LIBXML2LIB) ZLIB3RDLIB=$(ZLIB3RDLIB) OBJDUMP="$(WRAPCMD) objdump"
.IF "$(SYSTEM_MOZILLA)" != "YES"
CONFIGURE_FLAGS+=--enable-pkgconfig=no
@@ -152,7 +153,7 @@ LDFLAGS:=$(xmlsec_LDFLAGS)
.ENDIF
CONFIGURE_DIR=
CONFIGURE_ACTION=.$/configure ADDCFLAGS="$(xmlsec_CFLAGS)" CPPFLAGS="$(xmlsec_CPPFLAGS)"
-CONFIGURE_FLAGS=--with-pic --disable-shared --with-libxslt=no --with-openssl=no --with-gnutls=no LIBXML2LIB="$(LIBXML2LIB)"
+CONFIGURE_FLAGS=--with-pic --disable-shared --disable-crypto-dl --with-libxslt=no --with-openssl=no --with-gnutls=no LIBXML2LIB="$(LIBXML2LIB)"
# system-mozilla needs pkgconfig to get the information about nss
# FIXME: This also will enable pkg-config usage for libxml2. It *seems*
# that the internal headers still are used when they are there but....
diff --git a/libxmlsec/readme.txt b/libxmlsec/readme.txt
index b518c6222687..55c6976f51f3 100644
--- a/libxmlsec/readme.txt
+++ b/libxmlsec/readme.txt
@@ -22,7 +22,7 @@ for details.
There is a flag XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS that can be set
in a xmlSecKeyInfoCtx (see function xmlSecNssKeyDataX509XmlRead, in file
-src/nss/x509.c), which indicates that one can turn of the validation. However,
+src/nss/x509.c), which indicates that one can turn off the validation. However,
setting it will cause that the validation key is not found. If the flag is set,
then the key is not extracted from the certificate store which contains all the
certificates of the X509Data elements. In other words, the certificates which
diff --git a/libxmlsec/xmlsec1-configure.patch b/libxmlsec/xmlsec1-configure.patch
index d804c2729076..943ac98bf687 100644
--- a/libxmlsec/xmlsec1-configure.patch
+++ b/libxmlsec/xmlsec1-configure.patch
@@ -1,24 +1,449 @@
---- misc/xmlsec1-1.2.12/Makefile.in 2009-06-25 22:53:34.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/Makefile.in 2009-10-01 10:32:48.708515261 +0200
-@@ -340,8 +340,9 @@
- target_alias = @target_alias@
+--- misc/xmlsec1-1.2.14/Makefile.in 2009-06-25 22:53:34.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/Makefile.in 2009-10-01 10:32:48.708515261 +0200
+@@ -341,8 +341,9 @@
+ top_srcdir = @top_srcdir@
NULL =
SAFE_VERSION = @XMLSEC_VERSION_SAFE@
-SUBDIRS = include src apps man docs
--TEST_APP = apps/xmlsec1
+-TEST_APP = apps/xmlsec1$(EXEEXT)
+#Do not build xmlsec1 app. It is not needed. Also the libtool includes
+#a -L/path_to_lib_dir which may contain an incompatible lixbml2.
+SUBDIRS = include src man docs
DEFAULT_CRYPTO = @XMLSEC_CRYPTO@
bin_SCRIPTS = xmlsec1-config
pkgconfig_DATA = xmlsec1.pc @XMLSEC_CRYPTO_PC_FILES_LIST@
---- misc/xmlsec1-1.2.12/configure 2009-06-25 22:53:35.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/configure 2009-10-01 10:28:50.980389049 +0200
-@@ -24769,7 +24769,11 @@
+--- misc/xmlsec1-1.2.14/configure 2009-06-25 22:53:35.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/configure 2009-10-01 10:28:50.980389049 +0200
+@@ -1,12 +1,14 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.64 for xmlsec1 1.2.14.
++# Generated by GNU Autoconf 2.65 for xmlsec1 1.2.14.
+ #
+ # Report bugs to <http://www.aleksey.com/xmlsec>.
+ #
++#
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+-# Foundation, Inc.
++# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
++# Inc.
++#
+ #
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+@@ -676,7 +678,8 @@
+
+
+
+-exec 7<&0 </dev/null 6>&1
++test -n "$DJDIR" || exec 7<&0 </dev/null
++exec 6>&1
+
+ # Name of the host.
+ # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+@@ -1749,7 +1752,7 @@
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
++ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+ PKG_CONFIG path to pkg-config utility
+@@ -1837,7 +1840,7 @@
+ if $ac_init_version; then
+ cat <<\_ACEOF
+ xmlsec1 configure 1.2.14
+-generated by GNU Autoconf 2.64
++generated by GNU Autoconf 2.65
+
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ This configure script is free software; the Free Software Foundation
+@@ -1884,7 +1887,7 @@
+ ac_retval=1
+ fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+- return $ac_retval
++ as_fn_set_status $ac_retval
+
+ } # ac_fn_c_try_compile
+
+@@ -1921,7 +1924,7 @@
+ ac_retval=1
+ fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+- return $ac_retval
++ as_fn_set_status $ac_retval
+
+ } # ac_fn_c_try_cpp
+
+@@ -1963,7 +1966,7 @@
+ fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+- return $ac_retval
++ as_fn_set_status $ac_retval
+
+ } # ac_fn_c_try_run
+
+@@ -2009,7 +2012,7 @@
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+- return $ac_retval
++ as_fn_set_status $ac_retval
+
+ } # ac_fn_c_try_link
+
+@@ -2378,7 +2381,7 @@
+
+ fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+- return $ac_retval
++ as_fn_set_status $ac_retval
+
+ } # ac_fn_c_compute_int
+ cat >config.log <<_ACEOF
+@@ -2386,7 +2389,7 @@
+ running configure, to aid debugging if configure makes a mistake.
+
+ It was created by xmlsec1 $as_me 1.2.14, which was
+-generated by GNU Autoconf 2.64. Invocation command line was
++generated by GNU Autoconf 2.65. Invocation command line was
+
+ $ $0 $@
+
+@@ -2639,7 +2642,7 @@
+ for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+ do
+ test "x$ac_site_file" = xNONE && continue
+- if test -r "$ac_site_file"; then
++ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+@@ -2648,9 +2651,9 @@
+ done
+
+ if test -r "$cache_file"; then
+- # Some versions of bash will fail to source /dev/null (special
+- # files actually), so we avoid doing that.
+- if test -f "$cache_file"; then
++ # Some versions of bash will fail to source /dev/null (special files
++ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
++ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+ $as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+@@ -3160,6 +3163,7 @@
+
+ fi
+
++ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+@@ -3167,7 +3171,6 @@
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+- test -d ./--version && rmdir ./--version
+ MKDIR_P="$ac_install_sh -d"
+ fi
+ fi
+@@ -3753,32 +3756,30 @@
+ ... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+- rm -f conftest.er1 conftest.err
+ fi
++ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ done
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-#include <stdio.h>
++
+ int
+ main ()
+ {
+-FILE *f = fopen ("conftest.out", "w");
+- return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+ }
+ _ACEOF
+ ac_clean_files_save=$ac_clean_files
+-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
++ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+ # Try to create an executable without -o first, disregard a.out.
+ # It will help us diagnose broken compilers, and finding out an intuition
+ # of exeext.
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+-$as_echo_n "checking for C compiler default output file name... " >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
++$as_echo_n "checking whether the C compiler works... " >&6; }
+ ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+ # The possible output files:
+@@ -3840,10 +3841,10 @@
+ else
+ ac_file=''
+ fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+-$as_echo "$ac_file" >&6; }
+ if test -z "$ac_file"; then :
+- $as_echo "$as_me: failed program was:" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++$as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+@@ -3851,51 +3852,18 @@
+ { as_fn_set_status 77
+ as_fn_error "C compiler cannot create executables
+ See \`config.log' for more details." "$LINENO" 5; }; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
+ fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
++$as_echo_n "checking for C compiler default output file name... " >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
++$as_echo "$ac_file" >&6; }
+ ac_exeext=$ac_cv_exeext
+
+-# Check that the compiler produces executables we can run. If not, either
+-# the compiler is broken, or we cross compile.
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+-$as_echo_n "checking whether the C compiler works... " >&6; }
+-# If not cross compiling, check that we can run a simple program.
+-if test "$cross_compiling" != yes; then
+- if { ac_try='./$ac_file'
+- { { case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-$as_echo "$ac_try_echo"; } >&5
+- (eval "$ac_try") 2>&5
+- ac_status=$?
+- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+- test $ac_status = 0; }; }; then
+- cross_compiling=no
+- else
+- if test "$cross_compiling" = maybe; then
+- cross_compiling=yes
+- else
+- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error "cannot run C compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." "$LINENO" 5; }
+- fi
+- fi
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-$as_echo "yes" >&6; }
+-
+-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
++rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ ac_clean_files=$ac_clean_files_save
+-# Check that the compiler produces executables we can run. If not, either
+-# the compiler is broken, or we cross compile.
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+-$as_echo_n "checking whether we are cross compiling... " >&6; }
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+-$as_echo "$cross_compiling" >&6; }
+-
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+ $as_echo_n "checking for suffix of executables... " >&6; }
+ if { { ac_try="$ac_link"
+@@ -3928,13 +3896,72 @@
+ as_fn_error "cannot compute suffix of executables: cannot compile and link
+ See \`config.log' for more details." "$LINENO" 5; }
+ fi
+-rm -f conftest$ac_cv_exeext
++rm -f conftest conftest$ac_cv_exeext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+ $as_echo "$ac_cv_exeext" >&6; }
+
+ rm -f conftest.$ac_ext
+ EXEEXT=$ac_cv_exeext
+ ac_exeext=$EXEEXT
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#include <stdio.h>
++int
++main ()
++{
++FILE *f = fopen ("conftest.out", "w");
++ return ferror (f) || fclose (f) != 0;
++
++ ;
++ return 0;
++}
++_ACEOF
++ac_clean_files="$ac_clean_files conftest.out"
++# Check that the compiler produces executables we can run. If not, either
++# the compiler is broken, or we cross compile.
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
++$as_echo_n "checking whether we are cross compiling... " >&6; }
++if test "$cross_compiling" != yes; then
++ { { ac_try="$ac_link"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_link") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if { ac_try='./conftest$ac_cv_exeext'
++ { { case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_try") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; }; then
++ cross_compiling=no
++ else
++ if test "$cross_compiling" = maybe; then
++ cross_compiling=yes
++ else
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error "cannot run C compiled programs.
++If you meant to cross compile, use \`--host'.
++See \`config.log' for more details." "$LINENO" 5; }
++ fi
++ fi
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
++$as_echo "$cross_compiling" >&6; }
++
++rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
++ac_clean_files=$ac_clean_files_save
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+ $as_echo_n "checking for suffix of object files... " >&6; }
+ if test "${ac_cv_objext+set}" = set; then :
+@@ -5249,13 +5276,13 @@
+ else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+- (eval echo "\"\$as_me:5252: $ac_compile\"" >&5)
++ (eval echo "\"\$as_me:5279: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+- (eval echo "\"\$as_me:5255: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
++ (eval echo "\"\$as_me:5282: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+- (eval echo "\"\$as_me:5258: output\"" >&5)
++ (eval echo "\"\$as_me:5285: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+@@ -6460,7 +6487,7 @@
+ ;;
+ *-*-irix6*)
+ # Find out which ABI we are using.
+- echo '#line 6463 "configure"' > conftest.$ac_ext
++ echo '#line 6490 "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+@@ -7736,11 +7763,11 @@
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:7739: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:7766: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+- echo "$as_me:7743: \$? = $ac_status" >&5
++ echo "$as_me:7770: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+@@ -8075,11 +8102,11 @@
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:8078: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:8105: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+- echo "$as_me:8082: \$? = $ac_status" >&5
++ echo "$as_me:8109: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+@@ -8180,11 +8207,11 @@
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:8183: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:8210: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+- echo "$as_me:8187: \$? = $ac_status" >&5
++ echo "$as_me:8214: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+@@ -8235,11 +8262,11 @@
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:8238: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:8265: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+- echo "$as_me:8242: \$? = $ac_status" >&5
++ echo "$as_me:8269: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+@@ -10618,7 +10645,7 @@
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 10621 "configure"
++#line 10648 "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -10714,7 +10741,7 @@
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 10717 "configure"
++#line 10744 "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11804,8 +11831,12 @@
+ fi
fi
- LIBXML_MIN_VERSION="2.6.12"
--LIBXML_CONFIG="xml2-config"
+-LIBXML_MIN_VERSION="2.7.4"
+ LIBXML_CONFIG="xml2-config"
+if test -f "$SOLARVERSION/$INPATH/bin$UPDMINOREXT/xml2-config" ; then
+ LIBXML_CONFIG="$SOLARVERSION/$INPATH/bin$UPDMINOREXT/xml2-config"
+else
@@ -27,7 +452,7 @@
LIBXML_CFLAGS=""
LIBXML_LIBS=""
LIBXML_FOUND="no"
-@@ -25678,12 +25682,26 @@
+@@ -12757,12 +12788,26 @@
XMLSEC_NO_NSS="1"
MOZILLA_MIN_VERSION="1.4"
@@ -56,112 +481,87 @@
NSS_CRYPTO_LIB="$XMLSEC_PACKAGE-nss"
NSS_FOUND="no"
NSPR_PACKAGE=mozilla-nspr
-@@ -25776,6 +25794,104 @@
- else
- PKG_CONFIG_MIN_VERSION=0.9.0
- if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-+ echo "$as_me:$LINENO: checking for $MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION" >&5
-+echo $ECHO_N "checking for $MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION... $ECHO_C" >&6
-+
-+ if $PKG_CONFIG --exists "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION" ; then
-+ echo "$as_me:$LINENO: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
-+ succeeded=yes
-+
-+ echo "$as_me:$LINENO: checking NSS_CFLAGS" >&5
-+echo $ECHO_N "checking NSS_CFLAGS... $ECHO_C" >&6
-+ NSS_CFLAGS=`$PKG_CONFIG --cflags "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION"`
-+ echo "$as_me:$LINENO: result: $NSS_CFLAGS" >&5
-+echo "${ECHO_T}$NSS_CFLAGS" >&6
-+
-+ echo "$as_me:$LINENO: checking NSS_LIBS" >&5
-+echo $ECHO_N "checking NSS_LIBS... $ECHO_C" >&6
-+ NSS_LIBS=`$PKG_CONFIG --libs "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION"`
-+ echo "$as_me:$LINENO: result: $NSS_LIBS" >&5
-+echo "${ECHO_T}$NSS_LIBS" >&6
-+ else
-+ NSS_CFLAGS=""
-+ NSS_LIBS=""
-+ ## If we have a custom action on failure, don't print errors, but
-+ ## do set a variable so people can do so.
-+ NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION"`
-+
-+ fi
-+
+@@ -12811,6 +12856,79 @@
+ pkg_cv_NSS_CFLAGS="$NSS_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$MOZ_FLAVOUR-nspr >= \$MOZILLA_MIN_VERSION \$MOZ_FLAVOUR >= \$MOZILLA_MIN_VERSION\""; } >&5
++ ($PKG_CONFIG --exists --print-errors "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; then
++ pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION" 2>/dev/null`
++else
++ pkg_failed=yes
++fi
++ fi
++else
++ pkg_failed=untried
++fi
++if test -n "$PKG_CONFIG"; then
++ if test -n "$NSS_LIBS"; then
++ pkg_cv_NSS_LIBS="$NSS_LIBS"
++ else
++ if test -n "$PKG_CONFIG" && \
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$MOZ_FLAVOUR-nspr >= \$MOZILLA_MIN_VERSION \$MOZ_FLAVOUR >= \$MOZILLA_MIN_VERSION\""; } >&5
++ ($PKG_CONFIG --exists --print-errors "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; then
++ pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION" 2>/dev/null`
++else
++ pkg_failed=yes
++fi
++ fi
++else
++ pkg_failed=untried
++fi
+
+
-+ else
-+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
-+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
-+ fi
-+ fi
+
-+ if test $succeeded = yes; then
-+ NSS_FOUND=yes NSPR_PACKAGE=$MOZ_FLAVOUR-nspr NSS_PACKAGE=$MOZ_FLAVOUR-nss
-+ else
-+ NSS_FOUND=no
-+ fi
++if test $pkg_failed = yes; then
+
-+ fi
-+ if test "z$NSS_FOUND" = "zno" ; then
-+
-+ succeeded=no
-+
-+ if test -z "$PKG_CONFIG"; then
-+ # Extract the first word of "pkg-config", so it can be a program name with args.
-+set dummy pkg-config; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
++ _pkg_short_errors_supported=yes
+else
-+ case $PKG_CONFIG in
-+ [\\/]* | ?:[\\/]*)
-+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-+ ;;
-+ *)
-+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
-+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
-+ ;;
-+esac
++ _pkg_short_errors_supported=no
+fi
-+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
++ if test $_pkg_short_errors_supported = yes; then
++ NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION"`
++ else
++ NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$MOZ_FLAVOUR-nspr >= $MOZILLA_MIN_VERSION $MOZ_FLAVOUR >= $MOZILLA_MIN_VERSION"`
++ fi
++ # Put the nasty error message in config.log where it belongs
++ echo "$NSS_PKG_ERRORS" >&5
+
-+if test -n "$PKG_CONFIG"; then
-+ echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-+echo "${ECHO_T}$PKG_CONFIG" >&6
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++ NSS_FOUND=no
++elif test $pkg_failed = untried; then
++ NSS_FOUND=no
+else
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
++ NSS_CFLAGS=$pkg_cv_NSS_CFLAGS
++ NSS_LIBS=$pkg_cv_NSS_LIBS
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++ NSS_FOUND=yes NSPR_PACKAGE=$MOZ_FLAVOUR-nspr NSS_PACKAGE=$MOZ_FLAVOUR-nss
+fi
++ fi
++ if test "z$NSS_FOUND" = "zno" ; then
+
-+ fi
++pkg_failed=no
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS" >&5
++$as_echo_n "checking for NSS... " >&6; }
+
-+ if test "$PKG_CONFIG" = "no" ; then
-+ echo "*** The pkg-config script could not be found. Make sure it is"
-+ echo "*** in your path, or set the PKG_CONFIG environment variable"
-+ echo "*** to the full path to pkg-config."
-+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
-+ else
-+ PKG_CONFIG_MIN_VERSION=0.9.0
-+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- echo "$as_me:$LINENO: checking for mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION" >&5
- echo $ECHO_N "checking for mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION... $ECHO_C" >&6
-
-@@ -26026,8 +26142,8 @@
++if test -n "$PKG_CONFIG"; then
++ if test -n "$NSS_CFLAGS"; then
++ pkg_cv_NSS_CFLAGS="$NSS_CFLAGS"
++ else
++ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-nspr >= \$MOZILLA_MIN_VERSION mozilla-nss >= \$MOZILLA_MIN_VERSION\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION") 2>&5
+ ac_status=$?
+@@ -13030,8 +13148,8 @@
ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
fi
@@ -170,9 +570,9 @@
+ ac_nss_lib_dir="${SOLARVERSION}/${INPATH}/lib${UPDMINOREXT}"
+ ac_nss_inc_dir="${SOLARVERSION}/${INPATH}/inc${UPDMINOREXT}/mozilla"
- echo "$as_me:$LINENO: checking for nspr libraries >= $NSPR_MIN_VERSION" >&5
- echo $ECHO_N "checking for nspr libraries >= $NSPR_MIN_VERSION... $ECHO_C" >&6
-@@ -26062,7 +26178,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nspr libraries >= $NSPR_MIN_VERSION" >&5
+ $as_echo_n "checking for nspr libraries >= $NSPR_MIN_VERSION... " >&6; }
+@@ -13066,7 +13184,7 @@
done
for dir in $ac_nss_lib_dir ; do
@@ -181,7 +581,7 @@
if test "z$dir" = "z/usr/lib" ; then
NSPR_LIBS="$NSPR_LIBS_LIST"
else
-@@ -26148,7 +26264,7 @@
+@@ -13148,7 +13266,7 @@
done
for dir in $ac_nss_lib_dir ; do
@@ -190,13 +590,72 @@
if test "z$dir" = "z/usr/lib" ; then
NSS_LIBS="$NSS_LIBS_LIST"
else
---- misc/xmlsec1-1.2.12/configure.in 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/configure.in 2009-10-01 10:28:50.990755126 +0200
-@@ -183,7 +183,11 @@
+@@ -15036,7 +15154,7 @@
+ # values after options handling.
+ ac_log="
+ This file was extended by xmlsec1 $as_me 1.2.14, which was
+-generated by GNU Autoconf 2.64. Invocation command line was
++generated by GNU Autoconf 2.65. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+@@ -15076,6 +15194,7 @@
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
++ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+@@ -15098,10 +15217,11 @@
+
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+ xmlsec1 config.status 1.2.14
+-configured by $0, generated by GNU Autoconf 2.64,
+- with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
++configured by $0, generated by GNU Autoconf 2.65,
++ with options \\"\$ac_cs_config\\"
+
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ This config.status script is free software; the Free Software Foundation
+@@ -15139,6 +15259,8 @@
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
++ --config | --confi | --conf | --con | --co | --c )
++ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+@@ -15606,7 +15728,7 @@
+ t delim
+ :nl
+ h
+-s/\(.\{148\}\).*/\1/
++s/\(.\{148\}\)..*/\1/
+ t more1
+ s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+ p
+@@ -15620,7 +15742,7 @@
+ t nl
+ :delim
+ h
+-s/\(.\{148\}\).*/\1/
++s/\(.\{148\}\)..*/\1/
+ t more2
+ s/["\\]/\\&/g; s/^/"/; s/$/"/
+ p
+--- misc/xmlsec1-1.2.14/configure.in 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/configure.in 2009-10-01 10:28:50.990755126 +0200
+@@ -190,8 +190,12 @@
+ dnl ==========================================================================
dnl find libxml
dnl ==========================================================================
- LIBXML_MIN_VERSION="2.6.12"
--LIBXML_CONFIG="xml2-config"
+-LIBXML_MIN_VERSION="2.7.4"
+ LIBXML_CONFIG="xml2-config"
+if test -f "$SOLARVERSION/$INPATH/bin$UPDMINOREXT/xml2-config" ; then
+ LIBXML_CONFIG="$SOLARVERSION/$INPATH/bin$UPDMINOREXT/xml2-config"
+else
@@ -205,7 +664,7 @@
LIBXML_CFLAGS=""
LIBXML_LIBS=""
LIBXML_FOUND="no"
-@@ -490,12 +494,26 @@
+@@ -555,12 +559,26 @@
XMLSEC_NO_NSS="1"
MOZILLA_MIN_VERSION="1.4"
@@ -234,7 +693,7 @@
NSS_CRYPTO_LIB="$XMLSEC_PACKAGE-nss"
NSS_FOUND="no"
NSPR_PACKAGE=mozilla-nspr
-@@ -521,6 +539,11 @@
+@@ -586,6 +604,11 @@
dnl We are going to try all options
dnl
if test "z$NSS_FOUND" = "zno" ; then
@@ -246,7 +705,7 @@
PKG_CHECK_MODULES(NSS, mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION,
[NSS_FOUND=yes NSPR_PACKAGE=mozilla-nspr NSS_PACKAGE=mozilla-nss],
[NSS_FOUND=no])
-@@ -547,8 +570,8 @@
+@@ -612,8 +635,8 @@
ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
fi
@@ -257,7 +716,7 @@
AC_MSG_CHECKING(for nspr libraries >= $NSPR_MIN_VERSION)
NSPR_INCLUDES_FOUND="no"
-@@ -583,7 +606,7 @@
+@@ -648,7 +671,7 @@
done
for dir in $ac_nss_lib_dir ; do
@@ -266,7 +725,7 @@
dnl do not add -L/usr/lib because compiler does it anyway
if test "z$dir" = "z/usr/lib" ; then
NSPR_LIBS="$NSPR_LIBS_LIST"
-@@ -654,7 +677,7 @@
+@@ -719,7 +742,7 @@
done
for dir in $ac_nss_lib_dir ; do
@@ -275,9 +734,9 @@
dnl do not add -L/usr/lib because compiler does it anyway
if test "z$dir" = "z/usr/lib" ; then
NSS_LIBS="$NSS_LIBS_LIST"
---- misc/xmlsec1-1.2.12/win32/Makefile.msvc 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/win32/Makefile.msvc 2009-10-01 10:28:50.997747312 +0200
-@@ -381,7 +381,7 @@
+--- misc/xmlsec1-1.2.14/win32/Makefile.msvc 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/win32/Makefile.msvc 2009-10-01 10:28:50.997747312 +0200
+@@ -376,7 +376,7 @@
XMLSEC_OPENSSL_SOLIBS = libeay32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib
XMLSEC_OPENSSL_ALIBS = libeay32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib
diff --git a/libxmlsec/xmlsec1-customkeymanage.patch b/libxmlsec/xmlsec1-customkeymanage.patch
index 80cb7de93a70..d5c771a67ab8 100644
--- a/libxmlsec/xmlsec1-customkeymanage.patch
+++ b/libxmlsec/xmlsec1-customkeymanage.patch
@@ -1,5 +1,5 @@
---- misc/xmlsec1-1.2.12/include/xmlsec/mscrypto/Makefile.am 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/include/xmlsec/mscrypto/Makefile.am 2009-09-21 14:02:48.563253008 +0200
+--- misc/xmlsec1-1.2.14/include/xmlsec/mscrypto/Makefile.am 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/include/xmlsec/mscrypto/Makefile.am 2009-09-21 14:02:48.563253008 +0200
@@ -3,6 +3,7 @@
xmlsecmscryptoincdir = $(includedir)/xmlsec1/xmlsec/mscrypto
@@ -8,9 +8,9 @@
app.h \
certkeys.h \
crypto.h \
---- misc/xmlsec1-1.2.12/include/xmlsec/mscrypto/Makefile.in 2009-06-25 22:53:30.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/include/xmlsec/mscrypto/Makefile.in 2009-09-21 14:02:48.571021349 +0200
-@@ -308,6 +308,7 @@
+--- misc/xmlsec1-1.2.14/include/xmlsec/mscrypto/Makefile.in 2009-06-25 22:53:30.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/include/xmlsec/mscrypto/Makefile.in 2009-09-21 14:02:48.571021349 +0200
+@@ -281,6 +281,7 @@
NULL =
xmlsecmscryptoincdir = $(includedir)/xmlsec1/xmlsec/mscrypto
xmlsecmscryptoinc_HEADERS = \
@@ -18,8 +18,8 @@
app.h \
certkeys.h \
crypto.h \
---- misc/xmlsec1-1.2.12/include/xmlsec/mscrypto/akmngr.h 2009-09-21 14:07:19.052318336 +0200
-+++ misc/build/xmlsec1-1.2.12/include/xmlsec/mscrypto/akmngr.h 2009-09-21 14:02:48.504966762 +0200
+--- misc/xmlsec1-1.2.14/include/xmlsec/mscrypto/akmngr.h 2009-09-21 14:07:19.052318336 +0200
++++ misc/build/xmlsec1-1.2.14/include/xmlsec/mscrypto/akmngr.h 2009-09-21 14:02:48.504966762 +0200
@@ -1 +1,71 @@
-dummy
+/**
@@ -93,8 +93,8 @@
+#endif /* __XMLSEC_MSCRYPTO_AKMNGR_H__ */
+
+
---- misc/xmlsec1-1.2.12/include/xmlsec/nss/Makefile.am 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/include/xmlsec/nss/Makefile.am 2009-09-21 14:02:48.577933031 +0200
+--- misc/xmlsec1-1.2.14/include/xmlsec/nss/Makefile.am 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/include/xmlsec/nss/Makefile.am 2009-09-21 14:02:48.577933031 +0200
@@ -10,6 +10,9 @@
keysstore.h \
pkikeys.h \
@@ -105,9 +105,9 @@
$(NULL)
install-exec-hook:
---- misc/xmlsec1-1.2.12/include/xmlsec/nss/Makefile.in 2009-06-25 22:53:31.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/include/xmlsec/nss/Makefile.in 2009-09-21 14:02:48.585376325 +0200
-@@ -315,6 +315,9 @@
+--- misc/xmlsec1-1.2.14/include/xmlsec/nss/Makefile.in 2009-06-25 22:53:31.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/include/xmlsec/nss/Makefile.in 2009-09-21 14:02:48.585376325 +0200
+@@ -288,6 +288,9 @@
keysstore.h \
pkikeys.h \
x509.h \
@@ -117,8 +117,8 @@
$(NULL)
all: all-am
---- misc/xmlsec1-1.2.12/include/xmlsec/nss/akmngr.h 2009-09-21 14:07:19.105517659 +0200
-+++ misc/build/xmlsec1-1.2.12/include/xmlsec/nss/akmngr.h 2009-09-21 14:02:48.510978278 +0200
+--- misc/xmlsec1-1.2.14/include/xmlsec/nss/akmngr.h 2009-09-21 14:07:19.105517659 +0200
++++ misc/build/xmlsec1-1.2.14/include/xmlsec/nss/akmngr.h 2009-09-21 14:02:48.510978278 +0200
@@ -1 +1,56 @@
-dummy
+/**
@@ -177,8 +177,8 @@
+#endif /* __XMLSEC_NSS_AKMNGR_H__ */
+
+
---- misc/xmlsec1-1.2.12/include/xmlsec/nss/app.h 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/include/xmlsec/nss/app.h 2009-09-21 14:02:48.612847068 +0200
+--- misc/xmlsec1-1.2.14/include/xmlsec/nss/app.h 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/include/xmlsec/nss/app.h 2009-09-21 14:02:48.612847068 +0200
@@ -22,6 +22,9 @@
#include <xmlsec/keysmngr.h>
#include <xmlsec/transforms.h>
@@ -198,8 +198,8 @@
XMLSEC_CRYPTO_EXPORT int xmlSecNssAppDefaultKeysMngrSave (xmlSecKeysMngrPtr mngr,
const char* filename,
xmlSecKeyDataType type);
---- misc/xmlsec1-1.2.12/include/xmlsec/nss/ciphers.h 2009-09-21 14:07:19.146496548 +0200
-+++ misc/build/xmlsec1-1.2.12/include/xmlsec/nss/ciphers.h 2009-09-21 14:02:48.516689712 +0200
+--- misc/xmlsec1-1.2.14/include/xmlsec/nss/ciphers.h 2009-09-21 14:07:19.146496548 +0200
++++ misc/build/xmlsec1-1.2.14/include/xmlsec/nss/ciphers.h 2009-09-21 14:02:48.516689712 +0200
@@ -1 +1,35 @@
-dummy
+/**
@@ -237,8 +237,8 @@
+#endif /* __XMLSEC_NSS_CIPHERS_H__ */
+
+
---- misc/xmlsec1-1.2.12/include/xmlsec/nss/keysstore.h 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/include/xmlsec/nss/keysstore.h 2009-09-21 14:02:48.626261748 +0200
+--- misc/xmlsec1-1.2.14/include/xmlsec/nss/keysstore.h 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/include/xmlsec/nss/keysstore.h 2009-09-21 14:02:48.626261748 +0200
@@ -16,6 +16,8 @@
#endif /* __cplusplus */
@@ -257,8 +257,8 @@
XMLSEC_CRYPTO_EXPORT int xmlSecNssKeysStoreLoad (xmlSecKeyStorePtr store,
const char *uri,
xmlSecKeysMngrPtr keysMngr);
---- misc/xmlsec1-1.2.12/include/xmlsec/nss/tokens.h 2009-09-21 14:07:19.172421448 +0200
-+++ misc/build/xmlsec1-1.2.12/include/xmlsec/nss/tokens.h 2009-09-21 14:02:48.522913605 +0200
+--- misc/xmlsec1-1.2.14/include/xmlsec/nss/tokens.h 2009-09-21 14:07:19.172421448 +0200
++++ misc/build/xmlsec1-1.2.14/include/xmlsec/nss/tokens.h 2009-09-21 14:02:48.522913605 +0200
@@ -1 +1,182 @@
-dummy
+/**
@@ -443,8 +443,8 @@
+
+#endif /* __XMLSEC_NSS_TOKENS_H__ */
+
---- misc/xmlsec1-1.2.12/src/mscrypto/akmngr.c 2009-09-21 14:07:19.078910929 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/akmngr.c 2009-09-21 14:02:48.531281225 +0200
+--- misc/xmlsec1-1.2.14/src/mscrypto/akmngr.c 2009-09-21 14:07:19.078910929 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/akmngr.c 2009-09-21 14:02:48.531281225 +0200
@@ -1 +1,235 @@
-dummy
+/**
@@ -682,8 +682,8 @@
+ return( 0 ) ;
+}
+
---- misc/xmlsec1-1.2.12/src/nss/Makefile.am 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/Makefile.am 2009-09-21 14:02:48.591560472 +0200
+--- misc/xmlsec1-1.2.14/src/nss/Makefile.am 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/Makefile.am 2009-09-21 14:02:48.591560472 +0200
@@ -35,6 +35,9 @@
kw_des.c \
kw_aes.c \
@@ -694,9 +694,9 @@
$(NULL)
if SHAREDLIB_HACK
---- misc/xmlsec1-1.2.12/src/nss/Makefile.in 2009-06-25 22:53:33.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/Makefile.in 2009-09-21 14:02:48.599339718 +0200
-@@ -61,7 +61,8 @@
+--- misc/xmlsec1-1.2.14/src/nss/Makefile.in 2009-06-25 22:53:33.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/Makefile.in 2009-09-21 14:02:48.599339718 +0200
+@@ -72,7 +72,8 @@
am__libxmlsec1_nss_la_SOURCES_DIST = app.c bignum.c ciphers.c crypto.c \
digests.c hmac.c pkikeys.c signatures.c symkeys.c x509.c \
x509vfy.c keysstore.c keytrans.c kw_des.c kw_aes.c globals.h \
@@ -706,7 +706,7 @@
am__objects_1 =
@SHAREDLIB_HACK_TRUE@am__objects_2 = libxmlsec1_nss_la-strings.lo
am_libxmlsec1_nss_la_OBJECTS = libxmlsec1_nss_la-app.lo \
-@@ -72,6 +73,8 @@
+@@ -83,6 +84,8 @@
libxmlsec1_nss_la-x509.lo libxmlsec1_nss_la-x509vfy.lo \
libxmlsec1_nss_la-keysstore.lo libxmlsec1_nss_la-keytrans.lo \
libxmlsec1_nss_la-kw_des.lo libxmlsec1_nss_la-kw_aes.lo \
@@ -714,8 +714,8 @@
+ libxmlsec1_nss_la-tokens.lo \
$(am__objects_1) $(am__objects_2)
libxmlsec1_nss_la_OBJECTS = $(am_libxmlsec1_nss_la_OBJECTS)
- DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-@@ -357,6 +360,7 @@
+ libxmlsec1_nss_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+@@ -333,6 +336,7 @@
libxmlsec1_nss_la_SOURCES = app.c bignum.c ciphers.c crypto.c \
digests.c hmac.c pkikeys.c signatures.c symkeys.c x509.c \
x509vfy.c keysstore.c keytrans.c kw_des.c kw_aes.c globals.h \
@@ -723,7 +723,7 @@
$(NULL) $(am__append_1)
libxmlsec1_nss_la_LIBADD = \
../libxmlsec1.la \
-@@ -458,6 +462,9 @@
+@@ -439,6 +443,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libxmlsec1_nss_la-symkeys.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libxmlsec1_nss_la-x509.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libxmlsec1_nss_la-x509vfy.Plo@am__quote@
@@ -732,10 +732,10 @@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libxmlsec1_nss_la-tokens.Plo@am__quote@
.c.o:
- @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@@ -487,6 +494,27 @@
+ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@@ -468,6 +475,27 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- @am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_nss_la-app.lo `test -f 'app.c' || echo '$(srcdir)/'`app.c
+ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_nss_la-app.lo `test -f 'app.c' || echo '$(srcdir)/'`app.c
+libxmlsec1_nss_la-akmngr.lo: akmngr.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_nss_la-akmngr.lo -MD -MP -MF "$(DEPDIR)/libxmlsec1_nss_la-akmngr.Tpo" -c -o libxmlsec1_nss_la-akmngr.lo `test -f 'akmngr.c' || echo '$(srcdir)/'`akmngr.c; \
@@ -759,10 +759,10 @@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_nss_la-tokens.lo `test -f 'tokens.c' || echo '$(srcdir)/'`tokens.c
+
libxmlsec1_nss_la-bignum.lo: bignum.c
- @am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_nss_la-bignum.lo -MD -MP -MF "$(DEPDIR)/libxmlsec1_nss_la-bignum.Tpo" -c -o libxmlsec1_nss_la-bignum.lo `test -f 'bignum.c' || echo '$(srcdir)/'`bignum.c; \
- @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libxmlsec1_nss_la-bignum.Tpo" "$(DEPDIR)/libxmlsec1_nss_la-bignum.Plo"; else rm -f "$(DEPDIR)/libxmlsec1_nss_la-bignum.Tpo"; exit 1; fi
---- misc/xmlsec1-1.2.12/src/nss/akmngr.c 2009-09-21 14:07:19.197249962 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/akmngr.c 2009-09-21 14:02:48.539616129 +0200
+ @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_nss_la-bignum.lo -MD -MP -MF $(DEPDIR)/libxmlsec1_nss_la-bignum.Tpo -c -o libxmlsec1_nss_la-bignum.lo `test -f 'bignum.c' || echo '$(srcdir)/'`bignum.c
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libxmlsec1_nss_la-bignum.Tpo $(DEPDIR)/libxmlsec1_nss_la-bignum.Plo
+--- misc/xmlsec1-1.2.14/src/nss/akmngr.c 2009-09-21 14:07:19.197249962 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/akmngr.c 2009-09-21 14:02:48.539616129 +0200
@@ -1 +1,384 @@
-dummy
+/**
@@ -1149,8 +1149,8 @@
+ return(0) ;
+}
+
---- misc/xmlsec1-1.2.12/src/nss/hmac.c 2009-06-26 06:18:13.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/hmac.c 2009-09-21 14:02:48.649065288 +0200
+--- misc/xmlsec1-1.2.14/src/nss/hmac.c 2009-06-26 06:18:13.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/hmac.c 2009-09-21 14:02:48.649065288 +0200
@@ -23,8 +23,8 @@
#include <xmlsec/transforms.h>
#include <xmlsec/errors.h>
@@ -1159,9 +1159,9 @@
#include <xmlsec/nss/crypto.h>
+#include <xmlsec/nss/tokens.h>
- #define XMLSEC_NSS_MIN_HMAC_SIZE 40
- #define XMLSEC_NSS_MAX_HMAC_SIZE 128
-@@ -284,13 +284,13 @@
+ /* sizes in bits */
+ #define XMLSEC_NSS_MIN_HMAC_SIZE 80
+@@ -286,13 +286,13 @@
keyItem.data = xmlSecBufferGetData(buffer);
keyItem.len = xmlSecBufferGetSize(buffer);
@@ -1178,8 +1178,8 @@
return(-1);
}
---- misc/xmlsec1-1.2.12/src/nss/keysstore.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/keysstore.c 2009-09-21 14:02:48.633533885 +0200
+--- misc/xmlsec1-1.2.14/src/nss/keysstore.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/keysstore.c 2009-09-21 14:02:48.633533885 +0200
@@ -1,36 +1,56 @@
/**
* XMLSec library
@@ -1252,7 +1252,7 @@
#include <xmlsec/errors.h>
#include <xmlsec/xmltree.h>
-@@ -38,82 +58,464 @@
+@@ -38,82 +58,461 @@
#include <xmlsec/nss/crypto.h>
#include <xmlsec/nss/keysstore.h>
@@ -1344,6 +1344,8 @@
+ XMLSEC_ERRORS_NO_MESSAGE ) ;
+ return -1 ;
+ }
++ return 0 ;
++}
- /* data */
- BAD_CAST "NSS-keys-store", /* const xmlChar* name; */
@@ -1357,13 +1359,6 @@
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-+ return 0 ;
-+}
-
--/**
-- * xmlSecNssKeysStoreGetKlass:
-- *
-- * The Nss list based keys store klass.
+int xmlSecNssKeysStoreAdoptKey(
+ xmlSecKeyStorePtr store ,
+ xmlSecKeyPtr key
@@ -1411,7 +1406,11 @@
+ XMLSEC_ERRORS_NO_MESSAGE ) ;
+ return -1 ;
+ }
-+
+
+-/**
+- * xmlSecNssKeysStoreGetKlass:
+- *
+- * The Nss list based keys store klass.
+ return 0 ;
+}
+
@@ -1421,7 +1420,7 @@
+ *
+ * Keys store specific initialization method.
*
-- * Returns Nss list based keys store klass.
+- * Returns: Nss list based keys store klass.
+ * Returns 0 on success or a negative value if an error occurs.
*/
-xmlSecKeyStoreId
@@ -1459,7 +1458,7 @@
- *
- * Adds @key to the @store.
*
-- * Returns 0 on success or a negative value if an error occurs.
+- * Returns: 0 on success or a negative value if an error occurs.
+ * xmlSecKeyStoreFinalizeMethod:
+ * @store: the store.
+ *
@@ -1500,10 +1499,7 @@
+ context->slotList = NULL ;
+ }
+}
-
-- ss = xmlSecNssKeysStoreGetSS(store);
-- xmlSecAssert2(((ss != NULL) && (*ss != NULL) &&
-- (xmlSecKeyStoreCheckId(*ss, xmlSecSimpleKeysStoreId))), -1);
++
+xmlSecKeyPtr
+xmlSecNssKeysStoreFindKeyFromSlot(
+ PK11SlotInfo* slot,
@@ -1639,10 +1635,11 @@
+ }
+ }
-- return (xmlSecSimpleKeysStoreAdoptKey(*ss, key));
-+ return(key);
- }
-
+- ss = xmlSecNssKeysStoreGetSS(store);
+- xmlSecAssert2(((ss != NULL) && (*ss != NULL) &&
+- (xmlSecKeyStoreCheckId(*ss, xmlSecSimpleKeysStoreId))), -1);
++ return(key);
++}
+
+/**
+ * xmlSecKeyStoreFindKeyMethod:
@@ -1750,19 +1747,19 @@
+ NULL ,
+ NULL
+} ;
-+
+
+- return (xmlSecSimpleKeysStoreAdoptKey(*ss, key));
+/**
+ * xmlSecNssKeysStoreGetKlass:
+ *
+ * The simple list based keys store klass.
+ *
-+ * Returns simple list based keys store klass.
+ */
+xmlSecKeyStoreId
+xmlSecNssKeysStoreGetKlass( void ) {
+ return &xmlSecNssKeysStoreKlass ;
-+}
-+
+ }
+
+/**************************
+ * Application routines
+ */
@@ -1770,7 +1767,7 @@
/**
* xmlSecNssKeysStoreLoad:
* @store: the pointer to Nss keys store.
-@@ -252,234 +654,147 @@
+@@ -252,234 +651,147 @@
*/
int
xmlSecNssKeysStoreSave(xmlSecKeyStorePtr store, const char *filename, xmlSecKeyDataType type) {
@@ -1794,26 +1791,26 @@
- ss = xmlSecNssKeysStoreGetSS(store);
- xmlSecAssert2(((ss != NULL) && (*ss != NULL) &&
- (xmlSecKeyStoreCheckId(*ss, xmlSecSimpleKeysStoreId))), -1);
+-
+- return (xmlSecSimpleKeysStoreSave(*ss, filename, type));
+-}
+-
+-static int
+-xmlSecNssKeysStoreInitialize(xmlSecKeyStorePtr store) {
+- xmlSecKeyStorePtr *ss;
+ xmlSecAssert2( xmlSecKeyStoreCheckSize( store , xmlSecNssKeysStoreSize ), -1 ) ;
+ xmlSecAssert2(filename != NULL, -1);
-- return (xmlSecSimpleKeysStoreSave(*ss, filename, type));
--}
+- xmlSecAssert2(xmlSecKeyStoreCheckId(store, xmlSecNssKeysStoreId), -1);
+ context = xmlSecNssKeysStoreGetCtx( store ) ;
+ xmlSecAssert2( context != NULL, -1 );
--static int
--xmlSecNssKeysStoreInitialize(xmlSecKeyStorePtr store) {
-- xmlSecKeyStorePtr *ss;
+- ss = xmlSecNssKeysStoreGetSS(store);
+- xmlSecAssert2((*ss == NULL), -1);
+ list = context->keyList ;
+ xmlSecAssert2( list != NULL, -1 );
+ xmlSecAssert2(xmlSecPtrListCheckId(list, xmlSecKeyPtrListId), -1);
-- xmlSecAssert2(xmlSecKeyStoreCheckId(store, xmlSecNssKeysStoreId), -1);
--
-- ss = xmlSecNssKeysStoreGetSS(store);
-- xmlSecAssert2((*ss == NULL), -1);
--
- *ss = xmlSecKeyStoreCreate(xmlSecSimpleKeysStoreId);
- if(*ss == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
@@ -1832,9 +1829,7 @@
- return(0);
-}
-+ idsList = xmlSecKeyDataIdsGet();
-+ xmlSecAssert2(idsList != NULL, -1);
-
+-
-static void
-xmlSecNssKeysStoreFinalize(xmlSecKeyStorePtr store) {
- xmlSecKeyStorePtr *ss;
@@ -1846,12 +1841,7 @@
-
- xmlSecKeyStoreDestroy(*ss);
-}
-+ keysSize = xmlSecPtrListGetSize(list);
-+ idsSize = xmlSecPtrListGetSize(idsList);
-+ for(i = 0; i < keysSize; ++i) {
-+ key = (xmlSecKeyPtr)xmlSecPtrListGetItem(list, i);
-+ xmlSecAssert2(key != NULL, -1);
-
+-
-static xmlSecKeyPtr
-xmlSecNssKeysStoreFindKey(xmlSecKeyStorePtr store, const xmlChar* name,
- xmlSecKeyInfoCtxPtr keyInfoCtx) {
@@ -1883,7 +1873,9 @@
- if (name == NULL) {
- goto done;
- }
--
++ idsList = xmlSecKeyDataIdsGet();
++ xmlSecAssert2(idsList != NULL, -1);
+
- /* what type of key are we looking for?
- * TBD: For now, we'll look only for public/private keys using the
- * name as a cert nickname. Later on, we can attempt to find
@@ -1896,7 +1888,12 @@
- if (cert == NULL) {
- goto done;
- }
--
++ keysSize = xmlSecPtrListGetSize(list);
++ idsSize = xmlSecPtrListGetSize(idsList);
++ for(i = 0; i < keysSize; ++i) {
++ key = (xmlSecKeyPtr)xmlSecPtrListGetItem(list, i);
++ xmlSecAssert2(key != NULL, -1);
+
- if (keyReq->keyType & xmlSecKeyDataTypePublic) {
- pubkey = CERT_ExtractPublicKey(cert);
- if (pubkey == NULL) {
@@ -2112,8 +2109,8 @@
+ xmlFreeDoc(doc);
+ return(0);
}
---- misc/xmlsec1-1.2.12/src/nss/keywrapers.c 2009-09-21 14:07:19.223802688 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/keywrapers.c 2009-09-21 14:02:48.548869372 +0200
+--- misc/xmlsec1-1.2.14/src/nss/keywrapers.c 2009-09-21 14:07:19.223802688 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/keywrapers.c 2009-09-21 14:02:48.548869372 +0200
@@ -1 +1,1213 @@
-dummy
+/**
@@ -3329,8 +3326,8 @@
+
+#endif /* XMLSEC_NO_DES */
+
---- misc/xmlsec1-1.2.12/src/nss/pkikeys.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/pkikeys.c 2009-09-21 14:02:48.657352624 +0200
+--- misc/xmlsec1-1.2.14/src/nss/pkikeys.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/pkikeys.c 2009-09-21 14:02:48.657352624 +0200
@@ -24,6 +24,7 @@
#include <xmlsec/nss/crypto.h>
#include <xmlsec/nss/bignum.h>
@@ -3520,8 +3517,8 @@
return(8 * SECKEY_PublicKeyStrength(ctx->pubkey));
}
---- misc/xmlsec1-1.2.12/src/nss/symkeys.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/symkeys.c 2009-09-21 14:02:48.620574832 +0200
+--- misc/xmlsec1-1.2.14/src/nss/symkeys.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/symkeys.c 2009-09-21 14:02:48.620574832 +0200
@@ -15,20 +15,41 @@
#include <stdio.h>
#include <string.h>
@@ -4362,8 +4359,8 @@
/* data */
xmlSecNameHMACKeyValue,
---- misc/xmlsec1-1.2.12/src/nss/tokens.c 2009-09-21 14:07:19.249145861 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/tokens.c 2009-09-21 14:02:48.556772442 +0200
+--- misc/xmlsec1-1.2.14/src/nss/tokens.c 2009-09-21 14:07:19.249145861 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/tokens.c 2009-09-21 14:02:48.556772442 +0200
@@ -1 +1,548 @@
-dummy
+/**
@@ -4914,8 +4911,8 @@
+ return(0);
+}
+
---- misc/xmlsec1-1.2.12/src/nss/x509.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/x509.c 2009-09-21 14:02:48.642312431 +0200
+--- misc/xmlsec1-1.2.14/src/nss/x509.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/x509.c 2009-09-21 14:02:48.642312431 +0200
@@ -34,7 +34,6 @@
#include <xmlsec/keys.h>
#include <xmlsec/keyinfo.h>
@@ -5651,8 +5648,8 @@
static void
xmlSecNssX509CertDebugDump(CERTCertificate* cert, FILE* output) {
SECItem *sn;
---- misc/xmlsec1-1.2.12/src/nss/x509vfy.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/x509vfy.c 2009-09-21 14:02:48.669245207 +0200
+--- misc/xmlsec1-1.2.14/src/nss/x509vfy.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/x509vfy.c 2009-09-21 14:02:48.669245207 +0200
@@ -30,6 +30,7 @@
#include <xmlsec/keyinfo.h>
#include <xmlsec/keysmngr.h>
@@ -5680,7 +5677,7 @@
static xmlSecKeyDataStoreKlass xmlSecNssX509StoreKlass = {
sizeof(xmlSecKeyDataStoreKlass),
-@@ -343,40 +334,28 @@
+@@ -339,40 +330,28 @@
xmlSecNssX509FindCert(xmlChar *subjectName, xmlChar *issuerName,
xmlChar *issuerSerial, xmlChar *ski) {
CERTCertificate *cert = NULL;
@@ -5724,7 +5721,7 @@
goto done;
}
-@@ -398,34 +377,23 @@
+@@ -394,34 +373,23 @@
if((issuerName != NULL) && (issuerSerial != NULL)) {
CERTIssuerAndSN issuerAndSN;
@@ -5762,7 +5759,7 @@
goto done;
}
-@@ -445,8 +413,15 @@
+@@ -441,8 +409,15 @@
issuerAndSN.derIssuer.data = nameitem->data;
issuerAndSN.derIssuer.len = nameitem->len;
@@ -5780,7 +5777,7 @@
cert = CERT_FindCertByIssuerAndSN(CERT_GetDefaultCertDB(),
&issuerAndSN);
-@@ -477,9 +452,6 @@
+@@ -473,9 +448,6 @@
}
done:
@@ -5790,13 +5787,10 @@
if (arena != NULL) {
PORT_FreeArena(arena, PR_FALSE);
}
-@@ -490,226 +462,76 @@
+@@ -486,176 +458,6 @@
return(cert);
}
--/**
-- * xmlSecNssX509NameRead:
-- */
-static xmlSecByte *
-xmlSecNssX509NameRead(xmlSecByte *str, int len) {
- xmlSecByte name[256];
@@ -5804,15 +5798,7 @@
- xmlSecByte *retval = NULL;
- xmlSecByte *p = NULL;
- int nameLen, valueLen;
-+static int
-+xmlSecNssIntegerToItem(
-+ const xmlChar* integer ,
-+ SECItem *item
-+) {
-+ xmlSecBn bn ;
-+ xmlSecSize i, length ;
-+ const xmlSecByte* bnInteger ;
-
+-
- xmlSecAssert2(str != NULL, NULL);
-
- /* return string should be no longer than input string */
@@ -5832,20 +5818,14 @@
- while((len > 0) && isspace(*str)) {
- ++str; --len;
- }
-+ xmlSecAssert2( integer != NULL, -1 ) ;
-+ xmlSecAssert2( item != NULL, -1 ) ;
-
+-
- nameLen = xmlSecNssX509NameStringRead(&str, &len, name, sizeof(name), '=', 0);
- if(nameLen < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
-+ if( xmlSecBnInitialize( &bn, 0 ) < 0 ) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
+- NULL,
- "xmlSecNssX509NameStringRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ "xmlSecBnInitialize",
-+ XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
+- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
- memcpy(p, name, nameLen);
@@ -5857,17 +5837,11 @@
- valueLen = xmlSecNssX509NameStringRead(&str, &len,
- value, sizeof(value), '"', 1);
- if(valueLen < 0) {
-+ return -1 ;
-+ }
-+
-+ if( xmlSecBnFromDecString( &bn, integer ) < 0 ) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
+- xmlSecError(XMLSEC_ERRORS_HERE,
+- NULL,
- "xmlSecNssX509NameStringRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ "xmlSecBnFromDecString",
-+ XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
+- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
- /* skip spaces before comma or semicolon */
@@ -5875,17 +5849,10 @@
- ++str; --len;
- }
- if((len > 0) && ((*str) != ',')) {
-+ xmlSecBnFinalize( &bn ) ;
-+ return -1 ;
-+ }
-+
-+ length = xmlSecBnGetSize( &bn ) ;
-+ if( length <= 0 ) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
+- xmlSecError(XMLSEC_ERRORS_HERE,
+- NULL,
- NULL,
-+ "xmlSecBnGetSize",
- XMLSEC_ERRORS_R_INVALID_DATA,
+- XMLSEC_ERRORS_R_INVALID_DATA,
- "comma is expected");
- goto done;
- }
@@ -5912,7 +5879,7 @@
- NULL,
- "xmlSecNssX509NameStringRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
+- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
- memcpy(p, value, valueLen);
@@ -5926,8 +5893,8 @@
- if(len > 0) {
- ++str; --len;
- }
- }
-
+- }
+-
- *p = 0;
- return(retval);
-
@@ -5936,11 +5903,6 @@
- return (NULL);
-}
-
--
--
--/**
-- * xmlSecNssX509NameStringRead:
-- */
-static int
-xmlSecNssX509NameStringRead(xmlSecByte **str, int *strLen,
- xmlSecByte *res, int resLen,
@@ -5964,13 +5926,10 @@
- nonSpace = q;
- if(xmlSecIsHex((*p))) {
- if((p - (*str) + 1) >= (*strLen)) {
-+ bnInteger = xmlSecBnGetData( &bn ) ;
-+ if( bnInteger == NULL ) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
+- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
-+ "xmlSecBnGetData",
- XMLSEC_ERRORS_R_INVALID_DATA,
+- NULL,
+- XMLSEC_ERRORS_R_INVALID_DATA,
- "two hex digits expected");
- return(-1);
- }
@@ -5978,28 +5937,17 @@
- p += 2;
- } else {
- if(((++p) - (*str)) >= (*strLen)) {
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecBnFinalize( &bn ) ;
-+ return -1 ;
-+ }
-+
-+ item->data = ( unsigned char * )PORT_Alloc( length );
-+ if( item->data == NULL ) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
+- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
-+ "PORT_Alloc",
- XMLSEC_ERRORS_R_INVALID_DATA,
+- NULL,
+- XMLSEC_ERRORS_R_INVALID_DATA,
- "escaped symbol missed");
- return(-1);
- }
- *(q++) = *(p++);
- }
- }
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecBnFinalize( &bn ) ;
-+ return -1 ;
- }
+- }
- if(((p - (*str)) < (*strLen)) && ((*p) != delim)) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
@@ -6012,61 +5960,91 @@
- (*str) = p;
- return((ingoreTrailingSpaces) ? nonSpace - res + 1 : q - res);
-}
-
--/* code lifted from NSS */
--static void
--xmlSecNssNumToItem(SECItem *it, unsigned long ui)
--{
-- unsigned char bb[5];
-- int len;
--
-- bb[0] = 0;
-- bb[1] = (unsigned char) (ui >> 24);
-- bb[2] = (unsigned char) (ui >> 16);
-- bb[3] = (unsigned char) (ui >> 8);
-- bb[4] = (unsigned char) (ui);
-
-- /*
-- ** Small integers are encoded in a single byte. Larger integers
-- ** require progressively more space.
-- */
-- if (ui > 0x7f) {
-- if (ui > 0x7fff) {
-- if (ui > 0x7fffffL) {
-- if (ui >= 0x80000000L) {
-- len = 5;
-- } else {
-- len = 4;
-- }
-- } else {
-- len = 3;
-- }
-- } else {
-- len = 2;
-- }
-- } else {
-- len = 1;
-- }
+ /* code lifted from NSS */
+ static void
+ xmlSecNssNumToItem(SECItem *it, unsigned long ui)
+@@ -699,6 +501,77 @@
+ it->len = len;
+ PORT_Memcpy(it->data, bb + (sizeof(bb) - len), len);
+ }
++
++static int
++xmlSecNssIntegerToItem(
++ const xmlChar* integer ,
++ SECItem *item
++) {
++ xmlSecBn bn ;
++ xmlSecSize i, length ;
++ const xmlSecByte* bnInteger ;
++
++ xmlSecAssert2( integer != NULL, -1 ) ;
++ xmlSecAssert2( item != NULL, -1 ) ;
++
++ if( xmlSecBnInitialize( &bn, 0 ) < 0 ) {
++ xmlSecError(XMLSEC_ERRORS_HERE,
++ NULL,
++ "xmlSecBnInitialize",
++ XMLSEC_ERRORS_R_INVALID_DATA,
++ XMLSEC_ERRORS_NO_MESSAGE);
++ return -1 ;
++ }
++
++ if( xmlSecBnFromDecString( &bn, integer ) < 0 ) {
++ xmlSecError(XMLSEC_ERRORS_HERE,
++ NULL,
++ "xmlSecBnFromDecString",
++ XMLSEC_ERRORS_R_INVALID_DATA,
++ XMLSEC_ERRORS_NO_MESSAGE);
++ xmlSecBnFinalize( &bn ) ;
++ return -1 ;
++ }
++
++ length = xmlSecBnGetSize( &bn ) ;
++ if( length <= 0 ) {
++ xmlSecError(XMLSEC_ERRORS_HERE,
++ NULL,
++ "xmlSecBnGetSize",
++ XMLSEC_ERRORS_R_INVALID_DATA,
++ XMLSEC_ERRORS_NO_MESSAGE);
++ }
++
++ bnInteger = xmlSecBnGetData( &bn ) ;
++ if( bnInteger == NULL ) {
++ xmlSecError(XMLSEC_ERRORS_HERE,
++ NULL,
++ "xmlSecBnGetData",
++ XMLSEC_ERRORS_R_INVALID_DATA,
++ XMLSEC_ERRORS_NO_MESSAGE ) ;
++ xmlSecBnFinalize( &bn ) ;
++ return -1 ;
++ }
++
++ item->data = ( unsigned char * )PORT_Alloc( length );
++ if( item->data == NULL ) {
++ xmlSecError(XMLSEC_ERRORS_HERE,
++ NULL,
++ "PORT_Alloc",
++ XMLSEC_ERRORS_R_INVALID_DATA,
++ XMLSEC_ERRORS_NO_MESSAGE ) ;
++ xmlSecBnFinalize( &bn ) ;
++ return -1 ;
++ }
++
+ item->len = length;
-
-- it->data = (unsigned char *)PORT_Alloc(len);
-- if (it->data == NULL) {
-- return;
-- }
+ for( i = 0 ; i < length ; i ++ )
+ item->data[i] = *( bnInteger + i ) ;
+
+ xmlSecBnFinalize( &bn ) ;
-
-- it->len = len;
-- PORT_Memcpy(it->data, bb + (sizeof(bb) - len), len);
++
+ return 0 ;
- }
++}
#endif /* XMLSEC_NO_X509 */
---- misc/xmlsec1-1.2.12/win32/Makefile.msvc 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/win32/Makefile.msvc 2009-09-21 14:02:48.607277908 +0200
-@@ -223,6 +223,9 @@
+
+--- misc/xmlsec1-1.2.14/win32/Makefile.msvc 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/win32/Makefile.msvc 2009-09-21 14:02:48.607277908 +0200
+@@ -218,6 +218,9 @@
$(XMLSEC_OPENSSL_INTDIR_A)\x509vfy.obj
XMLSEC_NSS_OBJS = \
@@ -6076,7 +6054,7 @@
$(XMLSEC_NSS_INTDIR)\app.obj\
$(XMLSEC_NSS_INTDIR)\bignum.obj\
$(XMLSEC_NSS_INTDIR)\ciphers.obj \
-@@ -258,6 +261,7 @@
+@@ -253,6 +256,7 @@
$(XMLSEC_NSS_INTDIR_A)\strings.obj
XMLSEC_MSCRYPTO_OBJS = \
diff --git a/libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch b/libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch
index 87a4bb55d1a2..8c6349a63c5f 100644
--- a/libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch
+++ b/libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch
@@ -1,5 +1,5 @@
---- misc/xmlsec1-1.2.12/src/mscrypto/Makefile.am 2009-06-26 05:53:18.000000000 +0900
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/Makefile.am 2009-09-30 18:53:05.373000000 +0900
+--- misc/xmlsec1-1.2.14/src/mscrypto/Makefile.am 2009-06-26 05:53:18.000000000 +0900
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/Makefile.am 2009-09-30 18:53:05.373000000 +0900
@@ -35,6 +35,7 @@
csp_oid.h \
globals.h \
@@ -8,9 +8,9 @@
$(NULL)
if SHAREDLIB_HACK
---- misc/xmlsec1-1.2.12/src/mscrypto/Makefile.in 2009-06-26 05:53:32.000000000 +0900
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/Makefile.in 2009-09-30 19:00:50.107375000 +0900
-@@ -61,7 +61,8 @@
+--- misc/xmlsec1-1.2.14/src/mscrypto/Makefile.in 2009-06-26 05:53:32.000000000 +0900
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/Makefile.in 2009-09-30 19:00:50.107375000 +0900
+@@ -72,7 +72,8 @@
am__libxmlsec1_mscrypto_la_SOURCES_DIST = app.c certkeys.c ciphers.c \
crypto.c digests.c keysstore.c kt_rsa.c signatures.c symkeys.c \
x509.c x509vfy.c csp_calg.h csp_oid.h globals.h xmlsec-mingw.h \
@@ -20,7 +20,7 @@
am__objects_1 =
@SHAREDLIB_HACK_TRUE@am__objects_2 = \
@SHAREDLIB_HACK_TRUE@ libxmlsec1_mscrypto_la-strings.lo
-@@ -75,7 +76,8 @@
+@@ -86,7 +87,8 @@
libxmlsec1_mscrypto_la-signatures.lo \
libxmlsec1_mscrypto_la-symkeys.lo \
libxmlsec1_mscrypto_la-x509.lo \
@@ -29,8 +29,8 @@
+ libxmlsec1_mscrypto_la-akmngr.lo $(am__objects_1) \
$(am__objects_2)
libxmlsec1_mscrypto_la_OBJECTS = $(am_libxmlsec1_mscrypto_la_OBJECTS)
- DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-@@ -362,6 +364,7 @@
+ libxmlsec1_mscrypto_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+@@ -338,6 +340,7 @@
libxmlsec1_mscrypto_la_SOURCES = app.c certkeys.c ciphers.c crypto.c \
digests.c keysstore.c kt_rsa.c signatures.c symkeys.c x509.c \
x509vfy.c csp_calg.h csp_oid.h globals.h xmlsec-mingw.h \
@@ -38,17 +38,17 @@
$(NULL) $(am__append_1)
libxmlsec1_mscrypto_la_LIBADD = \
../libxmlsec1.la \
-@@ -460,6 +463,7 @@
+@@ -441,6 +444,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libxmlsec1_mscrypto_la-symkeys.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libxmlsec1_mscrypto_la-x509.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libxmlsec1_mscrypto_la-x509vfy.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libxmlsec1_mscrypto_la-akmngr.Plo@am__quote@
.c.o:
- @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@@ -489,6 +493,13 @@
+ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@@ -470,6 +474,13 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- @am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_mscrypto_la-app.lo `test -f 'app.c' || echo '$(srcdir)/'`app.c
+ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_mscrypto_la-app.lo `test -f 'app.c' || echo '$(srcdir)/'`app.c
+libxmlsec1_mscrypto_la-akmngr.lo: akmngr.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_mscrypto_la-akmngr.lo -MD -MP -MF "$(DEPDIR)/libxmlsec1_mscrypto_la-akmngr.Tpo" -c -o libxmlsec1_mscrypto_la-akmngr.lo `test -f 'akmngr.c' || echo '$(srcdir)/'`akmngr.c; \
@@ -58,5 +58,5 @@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_mscrypto_la-akmngr.lo `test -f 'akmngr.c' || echo '$(srcdir)/'`akmngr.c
+
libxmlsec1_mscrypto_la-certkeys.lo: certkeys.c
- @am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_mscrypto_la-certkeys.lo -MD -MP -MF "$(DEPDIR)/libxmlsec1_mscrypto_la-certkeys.Tpo" -c -o libxmlsec1_mscrypto_la-certkeys.lo `test -f 'certkeys.c' || echo '$(srcdir)/'`certkeys.c; \
- @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libxmlsec1_mscrypto_la-certkeys.Tpo" "$(DEPDIR)/libxmlsec1_mscrypto_la-certkeys.Plo"; else rm -f "$(DEPDIR)/libxmlsec1_mscrypto_la-certkeys.Tpo"; exit 1; fi
+ @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_mscrypto_la-certkeys.lo -MD -MP -MF $(DEPDIR)/libxmlsec1_mscrypto_la-certkeys.Tpo -c -o libxmlsec1_mscrypto_la-certkeys.lo `test -f 'certkeys.c' || echo '$(srcdir)/'`certkeys.c
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libxmlsec1_mscrypto_la-certkeys.Tpo $(DEPDIR)/libxmlsec1_mscrypto_la-certkeys.Plo
diff --git a/libxmlsec/xmlsec1-mingw32.patch b/libxmlsec/xmlsec1-mingw32.patch
index d2ff676facb1..3aaf19fe5a5c 100644
--- a/libxmlsec/xmlsec1-mingw32.patch
+++ b/libxmlsec/xmlsec1-mingw32.patch
@@ -1,57 +1,6 @@
---- misc/xmlsec1-1.2.12/aclocal.m4 2009-06-25 22:53:24.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/aclocal.m4 2009-09-29 15:49:39.550158665 +0200
-@@ -6219,6 +6219,10 @@
- AC_SUBST(LIBADD_DL)
- AC_LANG_PUSH([C])
-
-+case $host_os in
-+mingw*)
-+;;
-+*)
- AC_CHECK_FUNC([shl_load],
- [AC_DEFINE([HAVE_SHL_LOAD], [1],
- [Define if you have the shl_load function.])],
-@@ -6254,6 +6258,8 @@
- ])
- ])
- ])
-+;;
-+esac
-
- if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes
- then
---- misc/xmlsec1-1.2.12/configure 2009-09-29 15:55:33.269924586 +0200
-+++ misc/build/xmlsec1-1.2.12/configure 2009-09-29 15:55:08.838176411 +0200
-@@ -21883,6 +21883,10 @@
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-+case $host_os in
-+mingw*)
-+;;
-+*)
- echo "$as_me:$LINENO: checking for shl_load" >&5
- echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
- if test "${ac_cv_func_shl_load+set}" = set; then
-@@ -22434,6 +22438,8 @@
-
- fi
-
-+;;
-+esac
-
- if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes
- then
-@@ -22614,7 +22620,7 @@
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<EOF
--#line 22617 "configure"
-+#line 22623 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -26178,7 +26184,9 @@
+--- misc/xmlsec1-1.2.14/configure 2009-09-29 15:55:33.269924586 +0200
++++ misc/build/xmlsec1-1.2.14/configure 2009-09-29 15:55:08.838176411 +0200
+@@ -13184,7 +13184,9 @@
done
for dir in $ac_nss_lib_dir ; do
@@ -62,7 +11,7 @@
if test "z$dir" = "z/usr/lib" ; then
NSPR_LIBS="$NSPR_LIBS_LIST"
else
-@@ -26191,6 +26199,25 @@
+@@ -13197,6 +13199,25 @@
NSPR_LIBS_FOUND="yes"
break
fi
@@ -88,7 +37,7 @@
done
fi
-@@ -26264,6 +26291,24 @@
+@@ -13266,6 +13287,24 @@
done
for dir in $ac_nss_lib_dir ; do
@@ -113,7 +62,7 @@
if test -f $dir/libnss3.so -o -f $dir/libnss3.dylib ; then
if test "z$dir" = "z/usr/lib" ; then
NSS_LIBS="$NSS_LIBS_LIST"
-@@ -26277,6 +26322,8 @@
+@@ -13279,6 +13318,8 @@
NSS_LIBS_FOUND="yes"
break
fi
@@ -122,16 +71,16 @@
done
fi
-@@ -26769,7 +26816,7 @@
- echo "${ECHO_T}$MSCRYPTO_ENABLE" >&6
+@@ -13684,7 +13725,7 @@
+ $as_echo "$MSCRYPTO_ENABLE" >&6; }
else
LIBS_SAVE="$LIBS"
- LIBS="$LIBS -lcrypt32"
+ LIBS="$LIBS ${PSDK_HOME}/lib/crypt32.lib"
- echo "$as_me:$LINENO: checking for mscrypto libraries" >&5
- echo $ECHO_N "checking for mscrypto libraries... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
-@@ -26819,13 +26866,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mscrypto libraries" >&5
+ $as_echo_n "checking for mscrypto libraries... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -13711,13 +13752,7 @@
XMLSEC_NO_MSCRYPTO="0"
MSCRYPTO_CFLAGS="$MSCRYPTO_CFLAGS -DXMLSEC_CRYPTO_MSCRYPTO=1"
@@ -146,9 +95,9 @@
if test "z$XMLSEC_CRYPTO" = "z" ; then
XMLSEC_CRYPTO="mscrypto"
XMLSEC_CRYPTO_LIB="$MSCRYPTO_CRYPTO_LIB"
---- misc/xmlsec1-1.2.12/configure.in 2009-09-29 15:55:33.282288142 +0200
-+++ misc/build/xmlsec1-1.2.12/configure.in 2009-09-29 15:49:39.614223428 +0200
-@@ -606,7 +606,9 @@
+--- misc/xmlsec1-1.2.14/configure.in 2009-09-29 15:55:33.282288142 +0200
++++ misc/build/xmlsec1-1.2.14/configure.in 2009-09-29 15:49:39.614223428 +0200
+@@ -671,7 +671,9 @@
done
for dir in $ac_nss_lib_dir ; do
@@ -159,7 +108,7 @@
dnl do not add -L/usr/lib because compiler does it anyway
if test "z$dir" = "z/usr/lib" ; then
NSPR_LIBS="$NSPR_LIBS_LIST"
-@@ -620,6 +622,26 @@
+@@ -685,6 +687,26 @@
NSPR_LIBS_FOUND="yes"
break
fi
@@ -186,7 +135,7 @@
done
fi
-@@ -677,6 +699,25 @@
+@@ -742,6 +764,25 @@
done
for dir in $ac_nss_lib_dir ; do
@@ -212,7 +161,7 @@
if test -f $dir/libnss3.so -o -f $dir/libnss3.dylib ; then
dnl do not add -L/usr/lib because compiler does it anyway
if test "z$dir" = "z/usr/lib" ; then
-@@ -691,6 +732,8 @@
+@@ -756,6 +797,8 @@
NSS_LIBS_FOUND="yes"
break
fi
@@ -221,7 +170,7 @@
done
fi
-@@ -861,7 +904,7 @@
+@@ -926,7 +969,7 @@
dnl cannot detect __stdcall functions
dnl AC_CHECK_LIB(crypt32, CertOpenStore, ....
LIBS_SAVE="$LIBS"
@@ -230,7 +179,7 @@
AC_MSG_CHECKING(for mscrypto libraries)
AC_LINK_IFELSE([
#include <windows.h>
-@@ -878,15 +921,7 @@
+@@ -943,15 +986,7 @@
XMLSEC_NO_MSCRYPTO="0"
MSCRYPTO_CFLAGS="$MSCRYPTO_CFLAGS -DXMLSEC_CRYPTO_MSCRYPTO=1"
@@ -247,9 +196,9 @@
dnl first crypto library is default one
if test "z$XMLSEC_CRYPTO" = "z" ; then
XMLSEC_CRYPTO="mscrypto"
---- misc/xmlsec1-1.2.12/ltmain.sh 2009-06-25 22:53:19.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/ltmain.sh 2009-09-29 15:49:39.628349554 +0200
-@@ -1661,6 +1661,11 @@
+--- misc/xmlsec1-1.2.14/ltmain.sh 2009-06-25 22:53:19.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/ltmain.sh 2009-09-29 15:49:39.628349554 +0200
+@@ -4868,6 +4868,11 @@
fi
;;
@@ -261,7 +210,7 @@
*.$libext)
# An archive.
deplibs="$deplibs $arg"
-@@ -1974,6 +1979,10 @@
+@@ -5213,6 +5218,10 @@
continue
;;
*.la) lib="$deplib" ;;
@@ -272,9 +221,9 @@
*.$libext)
if test "$pass" = conv; then
deplibs="$deplib $deplibs"
---- misc/xmlsec1-1.2.12/src/mscrypto/certkeys.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/certkeys.c 2009-09-29 15:49:39.643186151 +0200
-@@ -938,7 +938,11 @@
+--- misc/xmlsec1-1.2.14/src/mscrypto/certkeys.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/certkeys.c 2009-09-29 15:49:39.643186151 +0200
+@@ -947,7 +947,11 @@
static void xmlSecMSCryptoKeyDataRsaDebugDump(xmlSecKeyDataPtr data, FILE* output);
static void xmlSecMSCryptoKeyDataRsaDebugXmlDump(xmlSecKeyDataPtr data, FILE* output);
@@ -286,7 +235,7 @@
sizeof(xmlSecKeyDataKlass),
xmlSecMSCryptoKeyDataSize,
-@@ -1649,7 +1653,11 @@
+@@ -1658,7 +1662,11 @@
static void xmlSecMSCryptoKeyDataDsaDebugXmlDump(xmlSecKeyDataPtr data,
FILE* output);
@@ -298,8 +247,8 @@
sizeof(xmlSecKeyDataKlass),
xmlSecMSCryptoKeyDataSize,
---- misc/xmlsec1-1.2.12/src/mscrypto/ciphers.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/ciphers.c 2009-09-29 15:49:39.652528324 +0200
+--- misc/xmlsec1-1.2.14/src/mscrypto/ciphers.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/ciphers.c 2009-09-29 15:49:39.652528324 +0200
@@ -802,7 +802,11 @@
* AES CBC cipher transforms
*
@@ -348,8 +297,8 @@
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* size_t klassSize */
xmlSecMSCryptoBlockCipherSize, /* size_t objSize */
---- misc/xmlsec1-1.2.12/src/mscrypto/digests.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/digests.c 2009-09-29 15:49:39.660554904 +0200
+--- misc/xmlsec1-1.2.14/src/mscrypto/digests.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/digests.c 2009-09-29 15:49:39.660554904 +0200
@@ -329,7 +329,11 @@
* SHA1
*
@@ -362,8 +311,8 @@
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* size_t klassSize */
xmlSecMSCryptoDigestSize, /* size_t objSize */
---- misc/xmlsec1-1.2.12/src/mscrypto/keysstore.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/keysstore.c 2009-09-29 15:49:39.667289994 +0200
+--- misc/xmlsec1-1.2.14/src/mscrypto/keysstore.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/keysstore.c 2009-09-29 15:49:39.667289994 +0200
@@ -66,7 +66,11 @@
const xmlChar* name,
xmlSecKeyInfoCtxPtr keyInfoCtx);
@@ -376,8 +325,8 @@
sizeof(xmlSecKeyStoreKlass),
xmlSecMSCryptoKeysStoreSize,
---- misc/xmlsec1-1.2.12/src/mscrypto/kt_rsa.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/kt_rsa.c 2009-09-29 15:49:39.674284044 +0200
+--- misc/xmlsec1-1.2.14/src/mscrypto/kt_rsa.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/kt_rsa.c 2009-09-29 15:49:39.674284044 +0200
@@ -66,7 +66,11 @@
static int xmlSecMSCryptoRsaPkcs1Process (xmlSecTransformPtr transform,
xmlSecTransformCtxPtr transformCtx);
@@ -390,8 +339,8 @@
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecMSCryptoRsaPkcs1Size, /* xmlSecSize objSize */
---- misc/xmlsec1-1.2.12/src/mscrypto/signatures.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/signatures.c 2009-09-29 15:49:39.682580497 +0200
+--- misc/xmlsec1-1.2.14/src/mscrypto/signatures.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/signatures.c 2009-09-29 15:49:39.682580497 +0200
@@ -524,7 +524,11 @@
* RSA-SHA1 signature transform
*
@@ -416,8 +365,8 @@
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecMSCryptoSignatureSize, /* xmlSecSize objSize */
---- misc/xmlsec1-1.2.12/src/mscrypto/symkeys.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/symkeys.c 2009-09-29 15:49:39.691081347 +0200
+--- misc/xmlsec1-1.2.14/src/mscrypto/symkeys.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/symkeys.c 2009-09-29 15:49:39.691081347 +0200
@@ -72,7 +72,11 @@
* <xmlsec:AESKeyValue> processing
*
@@ -442,8 +391,8 @@
sizeof(xmlSecKeyDataKlass),
xmlSecKeyDataBinarySize,
---- misc/xmlsec1-1.2.12/src/mscrypto/x509.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/x509.c 2009-09-29 15:49:39.699931741 +0200
+--- misc/xmlsec1-1.2.14/src/mscrypto/x509.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/x509.c 2009-09-29 15:49:39.699931741 +0200
@@ -243,7 +243,11 @@
@@ -456,7 +405,7 @@
sizeof(xmlSecKeyDataKlass),
xmlSecMSCryptoX509DataSize,
-@@ -2148,7 +2152,11 @@
+@@ -2159,7 +2163,11 @@
xmlSecSize bufSize,
xmlSecKeyInfoCtxPtr keyInfoCtx);
@@ -468,8 +417,8 @@
sizeof(xmlSecKeyDataKlass),
sizeof(xmlSecKeyData),
---- misc/xmlsec1-1.2.12/src/mscrypto/x509vfy.c 2009-09-29 15:55:33.502779834 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/x509vfy.c 2009-09-29 15:49:39.708831697 +0200
+--- misc/xmlsec1-1.2.14/src/mscrypto/x509vfy.c 2009-09-29 15:55:33.502779834 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/x509vfy.c 2009-09-29 15:49:39.708831697 +0200
@@ -67,7 +67,11 @@
static int xmlSecMSCryptoX509StoreInitialize (xmlSecKeyDataStorePtr store);
static void xmlSecMSCryptoX509StoreFinalize (xmlSecKeyDataStorePtr store);
@@ -482,8 +431,8 @@
sizeof(xmlSecKeyDataStoreKlass),
xmlSecMSCryptoX509StoreSize,
---- misc/xmlsec1-1.2.12/src/nss/ciphers.c 2009-09-29 15:55:33.488430535 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/ciphers.c 2009-09-29 15:49:39.717511164 +0200
+--- misc/xmlsec1-1.2.14/src/nss/ciphers.c 2009-09-29 15:55:33.488430535 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/ciphers.c 2009-09-29 15:49:39.717511164 +0200
@@ -777,7 +777,11 @@
* AES CBC cipher transforms
*
@@ -532,8 +481,8 @@
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecNssBlockCipherSize, /* xmlSecSize objSize */
---- misc/xmlsec1-1.2.12/src/nss/digests.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/digests.c 2009-09-29 15:49:39.725650968 +0200
+--- misc/xmlsec1-1.2.14/src/nss/digests.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/digests.c 2009-09-29 15:49:39.725650968 +0200
@@ -285,7 +285,11 @@
* SHA1 Digest transforms
*
@@ -546,9 +495,9 @@
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecNssDigestSize, /* xmlSecSize objSize */
---- misc/xmlsec1-1.2.12/src/nss/hmac.c 2009-09-29 15:55:33.409285968 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/hmac.c 2009-09-29 15:49:39.733673690 +0200
-@@ -502,7 +502,11 @@
+--- misc/xmlsec1-1.2.14/src/nss/hmac.c 2009-09-29 15:55:33.409285968 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/hmac.c 2009-09-29 15:49:39.733673690 +0200
+@@ -504,7 +504,11 @@
/**
* HMAC SHA1
*/
@@ -560,7 +509,7 @@
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecNssHmacSize, /* xmlSecSize objSize */
-@@ -544,7 +548,11 @@
+@@ -546,7 +550,11 @@
/**
* HMAC Ripemd160
*/
@@ -572,7 +521,7 @@
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecNssHmacSize, /* xmlSecSize objSize */
-@@ -586,7 +594,11 @@
+@@ -588,7 +596,11 @@
/**
* HMAC Md5
*/
@@ -584,9 +533,9 @@
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecNssHmacSize, /* xmlSecSize objSize */
---- misc/xmlsec1-1.2.12/src/nss/keysstore.c 2009-09-29 15:55:33.422265895 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/keysstore.c 2009-09-29 15:49:39.741628057 +0200
-@@ -489,7 +489,11 @@
+--- misc/xmlsec1-1.2.14/src/nss/keysstore.c 2009-09-29 15:55:33.422265895 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/keysstore.c 2009-09-29 15:49:39.741628057 +0200
+@@ -487,7 +487,11 @@
return NULL ;
}
@@ -598,8 +547,8 @@
sizeof( xmlSecKeyStoreKlass ) ,
xmlSecNssKeysStoreSize ,
BAD_CAST "implicit_nss_keys_store" ,
---- misc/xmlsec1-1.2.12/src/nss/keywrapers.c 2009-09-29 15:55:33.430875248 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/keywrapers.c 2009-09-29 15:49:39.749963247 +0200
+--- misc/xmlsec1-1.2.14/src/nss/keywrapers.c 2009-09-29 15:55:33.430875248 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/keywrapers.c 2009-09-29 15:49:39.749963247 +0200
@@ -1126,6 +1126,7 @@
NULL, /* void* reserved1; */
};
@@ -632,8 +581,8 @@
#endif /* XMLSEC_NO_DES */
---- misc/xmlsec1-1.2.12/src/nss/pkikeys.c 2009-09-29 15:55:33.440002568 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/pkikeys.c 2009-09-29 15:49:39.757984523 +0200
+--- misc/xmlsec1-1.2.14/src/nss/pkikeys.c 2009-09-29 15:55:33.440002568 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/pkikeys.c 2009-09-29 15:49:39.757984523 +0200
@@ -491,7 +491,11 @@
static void xmlSecNssKeyDataDsaDebugXmlDump (xmlSecKeyDataPtr data,
FILE* output);
@@ -658,8 +607,8 @@
sizeof(xmlSecKeyDataKlass),
xmlSecNssPKIKeyDataSize,
---- misc/xmlsec1-1.2.12/src/nss/signatures.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/signatures.c 2009-09-29 15:49:39.765851110 +0200
+--- misc/xmlsec1-1.2.14/src/nss/signatures.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/signatures.c 2009-09-29 15:49:39.765851110 +0200
@@ -459,7 +459,11 @@
*
***************************************************************************/
@@ -684,8 +633,8 @@
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecNssSignatureSize, /* xmlSecSize objSize */
---- misc/xmlsec1-1.2.12/src/nss/symkeys.c 2009-09-29 15:55:33.448817761 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/symkeys.c 2009-09-29 15:49:39.773211741 +0200
+--- misc/xmlsec1-1.2.14/src/nss/symkeys.c 2009-09-29 15:55:33.448817761 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/symkeys.c 2009-09-29 15:49:39.773211741 +0200
@@ -856,7 +856,11 @@
* <xmlsec:AESKeyValue> processing
*
@@ -722,8 +671,8 @@
sizeof(xmlSecKeyDataKlass),
xmlSecNssSymKeyDataSize,
---- misc/xmlsec1-1.2.12/src/nss/x509.c 2009-09-29 15:55:33.465839785 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/x509.c 2009-09-29 15:49:39.784408301 +0200
+--- misc/xmlsec1-1.2.14/src/nss/x509.c 2009-09-29 15:55:33.465839785 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/x509.c 2009-09-29 15:49:39.784408301 +0200
@@ -235,7 +235,11 @@
@@ -736,7 +685,7 @@
sizeof(xmlSecKeyDataKlass),
xmlSecNssX509DataSize,
-@@ -1779,7 +1783,11 @@
+@@ -1785,7 +1789,11 @@
xmlSecSize bufSize,
xmlSecKeyInfoCtxPtr keyInfoCtx);
@@ -748,8 +697,8 @@
sizeof(xmlSecKeyDataKlass),
sizeof(xmlSecKeyData),
---- misc/xmlsec1-1.2.12/src/nss/x509vfy.c 2009-09-29 15:55:33.510337681 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/x509vfy.c 2009-09-29 15:49:39.791239957 +0200
+--- misc/xmlsec1-1.2.14/src/nss/x509vfy.c 2009-09-29 15:55:33.510337681 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/x509vfy.c 2009-09-29 15:49:39.791239957 +0200
@@ -64,7 +64,11 @@
static void xmlSecNssX509StoreFinalize (xmlSecKeyDataStorePtr store);
static int xmlSecNssIntegerToItem( const xmlChar* integer , SECItem *it ) ;
diff --git a/libxmlsec/xmlsec1-noverify.patch b/libxmlsec/xmlsec1-noverify.patch
index 0015c8e62e7a..c51540caa2aa 100644
--- a/libxmlsec/xmlsec1-noverify.patch
+++ b/libxmlsec/xmlsec1-noverify.patch
@@ -1,6 +1,6 @@
---- misc/xmlsec1-1.2.12/src/mscrypto/x509vfy.c 2009-06-25 22:53:18.000000000 +0200
-+++ misc/build/xmlsec1-1.2.12/src/mscrypto/x509vfy.c 2009-09-23 10:01:07.237316078 +0200
-@@ -559,9 +559,16 @@
+--- misc/xmlsec1-1.2.14/src/mscrypto/x509vfy.c 2009-06-25 22:53:18.000000000 +0200
++++ misc/build/xmlsec1-1.2.14/src/mscrypto/x509vfy.c 2009-09-23 10:01:07.237316078 +0200
+@@ -567,9 +567,16 @@
CertFreeCertificateContext(nextCert);
}
@@ -20,8 +20,8 @@
}
return (NULL);
---- misc/xmlsec1-1.2.12/src/nss/x509vfy.c 2009-09-23 10:06:52.989793254 +0200
-+++ misc/build/xmlsec1-1.2.12/src/nss/x509vfy.c 2009-09-23 10:05:03.183042205 +0200
+--- misc/xmlsec1-1.2.14/src/nss/x509vfy.c 2009-09-23 10:06:52.989793254 +0200
++++ misc/build/xmlsec1-1.2.14/src/nss/x509vfy.c 2009-09-23 10:05:03.183042205 +0200
@@ -191,13 +191,27 @@
continue;
}
diff --git a/libxmlsec/xmlsec1-nssdisablecallbacks.patch b/libxmlsec/xmlsec1-nssdisablecallbacks.patch
index 48b0b552441b..c6ed83a2c54d 100644
--- a/libxmlsec/xmlsec1-nssdisablecallbacks.patch
+++ b/libxmlsec/xmlsec1-nssdisablecallbacks.patch
@@ -1,5 +1,5 @@
---- misc/xmlsec1-1.2.12.orig/src/nss/crypto.c 2009-09-10 07:06:17.000000000 -0400
-+++ misc/build/xmlsec1-1.2.12/src/nss/crypto.c 2009-09-10 07:08:24.000000000 -0400
+--- misc/xmlsec1-1.2.14.orig/src/nss/crypto.c 2009-09-10 07:06:17.000000000 -0400
++++ misc/build/xmlsec1-1.2.14/src/nss/crypto.c 2009-09-10 07:08:24.000000000 -0400
@@ -136,6 +136,7 @@
/**
* High level routines form xmlsec command line utility
diff --git a/libxmlsec/xmlsec1-nssmangleciphers.patch b/libxmlsec/xmlsec1-nssmangleciphers.patch
index 6d64914859a7..96f5049f68ae 100644
--- a/libxmlsec/xmlsec1-nssmangleciphers.patch
+++ b/libxmlsec/xmlsec1-nssmangleciphers.patch
@@ -1,5 +1,5 @@
---- misc/xmlsec1-1.2.12/src/nss/ciphers.c 2009-09-10 05:16:27.000000000 -0400
-+++ misc/build/xmlsec1-1.2.12/src/nss/ciphers.c 2009-09-10 06:59:39.000000000 -0400
+--- misc/xmlsec1-1.2.14/src/nss/ciphers.c 2009-09-10 05:16:27.000000000 -0400
++++ misc/build/xmlsec1-1.2.14/src/nss/ciphers.c 2009-09-10 06:59:39.000000000 -0400
@@ -11,180 +11,421 @@
#include <string.h>
diff --git a/libxmlsec/xmlsec1-olderlibxml2.patch b/libxmlsec/xmlsec1-olderlibxml2.patch
new file mode 100644
index 000000000000..b5f3d5747586
--- /dev/null
+++ b/libxmlsec/xmlsec1-olderlibxml2.patch
@@ -0,0 +1,23 @@
+--- misc/xmlsec1-1.2.14/src/c14n.c 2010-03-02 15:46:05.000000000 +0000
++++ misc/build/xmlsec1-1.2.14/src/c14n.c 2010-03-02 15:50:35.000000000 +0000
+@@ -406,6 +406,20 @@
+ return(0);
+ }
+
++#if !defined(LIBXML_VERSION) || LIBXML_VERSION < 20706
++/*
++ * xmlC14NMode:
++ *
++ * Predefined values for C14N modes
++ *
++ */
++typedef enum {
++ XML_C14N_1_0 = 0, /* Origianal C14N 1.0 spec */
++ XML_C14N_EXCLUSIVE_1_0 = 1, /* Exclusive C14N 1.0 spec */
++ XML_C14N_1_1 = 2 /* C14N 1.1 spec */
++} xmlC14NMode;
++#endif
++
+ static int
+ xmlSecTransformC14NExecute(xmlSecTransformId id, xmlSecNodeSetPtr nodes, xmlChar** nsList,
+ xmlOutputBufferPtr buf) {
diff --git a/libxslt/libxslt-1.1.24.patch b/libxslt/libxslt-configure.patch
index f30773fe7cef..bfa0b512824e 100644
--- a/libxslt/libxslt-1.1.24.patch
+++ b/libxslt/libxslt-configure.patch
@@ -1,6 +1,6 @@
---- misc/libxslt-1.1.24/ltmain.sh Wed Aug 29 14:28:46 2007
-+++ misc/build/libxslt-1.1.24/ltmain.sh Wed Jun 25 13:06:05 2008
-@@ -3234,9 +3234,9 @@
+--- misc/libxslt-1.1.26/ltmain.sh Wed Aug 29 14:28:46 2007
++++ misc/build/libxslt-1.1.26/ltmain.sh Wed Jun 25 13:06:05 2008
+@@ -6195,9 +6195,9 @@
revision="$number_revision"
;;
freebsd-aout|freebsd-elf|sunos)
@@ -12,20 +12,20 @@
+ revision="$number_revision"
;;
irix|nonstopux)
- current=`expr $number_major + $number_minor`
-@@ -3311,8 +3311,8 @@
+ func_arith $number_major + $number_minor
+@@ -6271,8 +6271,8 @@
;;
freebsd-elf)
- major=".$current"
-- versuffix=".$current";
+- versuffix=".$current"
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
;;
irix | nonstopux)
---- misc/libxslt-1.1.24/xslt-config.in Wed Jan 17 14:18:26 2007
-+++ misc/build/libxslt-1.1.24/xslt-config.in Wed Jun 25 13:06:05 2008
+--- misc/libxslt-1.1.26/xslt-config.in Wed Jan 17 14:18:26 2007
++++ misc/build/libxslt-1.1.26/xslt-config.in Wed Jun 25 13:06:05 2008
@@ -1,10 +1,16 @@
#! /bin/sh
@@ -57,9 +57,9 @@
if test "$includedir" != "/usr/include"; then
the_flags="$the_flags -I$includedir `@XML_CONFIG@ --cflags`"
else
---- misc/libxslt-1.1.24/configure 2008-05-14 00:40:54.000000000 +0900
-+++ misc/build/libxslt-1.1.24/configure 2008-07-17 22:12:38.097000000 +0900
-@@ -5730,7 +5730,7 @@
+--- misc/libxslt-1.1.26/configure 2008-05-14 00:40:54.000000000 +0900
++++ misc/build/libxslt-1.1.26/configure 2008-07-17 22:12:38.097000000 +0900
+@@ -7437,7 +7437,7 @@
cygwin*)
# func_win32_libid is a shell function defined in ltmain.sh
@@ -68,7 +68,7 @@
lt_cv_file_magic_cmd='func_win32_libid'
;;
-@@ -5739,7 +5739,7 @@
+@@ -7446,7 +7446,7 @@
# func_win32_libid shell function, so use a weaker test based on 'objdump',
# unless we find 'file', for example because we are cross-compiling.
if ( file / ) >/dev/null 2>&1; then
diff --git a/libxslt/libxslt-gnome602728.patch b/libxslt/libxslt-gnome602728.patch
new file mode 100644
index 000000000000..182855bf9486
--- /dev/null
+++ b/libxslt/libxslt-gnome602728.patch
@@ -0,0 +1,11 @@
+--- misc/libxslt-1.1.26.orig/configure 2009-12-21 10:07:14.000000000 +0000
++++ misc/build/libxslt-1.1.26/configure 2009-12-21 10:07:42.000000000 +0000
+@@ -13402,7 +13402,7 @@
+ $(/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null) && \
+ VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+ test "`uname`" == "SunOS" && \
+- VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
++ VERSION_SCRIPT_FLAGS=""
+
+ if test -n "$VERSION_SCRIPT_FLAGS"; then
+ USE_VERSION_SCRIPT_TRUE=
diff --git a/libxslt/libxslt-1.1.24_win_manifest.patch b/libxslt/libxslt-win_manifest.patch
index 40f07324ccff..43c14eb70b8b 100644
--- a/libxslt/libxslt-1.1.24_win_manifest.patch
+++ b/libxslt/libxslt-win_manifest.patch
@@ -1,6 +1,6 @@
---- misc/libxslt-1.1.24/win32/configure.js 2007-08-03 15:41:02.000000000 +0200
-+++ misc/build/libxslt-1.1.24/win32/configure.js 2009-05-07 13:09:42.294993200 +0200
-@@ -51,7 +51,7 @@
+--- misc/libxslt-1.1.26/win32/configure.js 2007-08-03 15:41:02.000000000 +0200
++++ misc/build/libxslt-1.1.26/win32/configure.js 2009-05-07 13:09:42.294993200 +0200
+@@ -52,7 +52,7 @@
var dirSep = "\\";
var compiler = "msvc";
var cruntime = "/MD";
diff --git a/libxslt/libxsltversion.mk b/libxslt/libxsltversion.mk
index 94c8220336fe..c80c0e9535b0 100644
--- a/libxslt/libxsltversion.mk
+++ b/libxslt/libxsltversion.mk
@@ -29,5 +29,5 @@ LIBXSLT_MAJOR=1
# minor
LIBXSLT_MINOR=1
# micro
-LIBXSLT_MICRO=24
+LIBXSLT_MICRO=26
diff --git a/libxslt/makefile.mk b/libxslt/makefile.mk
index 3cde964e53c4..b3f9ed203653 100644
--- a/libxslt/makefile.mk
+++ b/libxslt/makefile.mk
@@ -49,8 +49,10 @@ all:
LIBXSLTVERSION=$(LIBXSLT_MAJOR).$(LIBXSLT_MINOR).$(LIBXSLT_MICRO)
TARFILE_NAME=$(PRJNAME)-$(LIBXSLTVERSION)
-TARFILE_MD5=e83ec5d27fc4c10c6f612879bea9a153
-PATCH_FILES=$(TARFILE_NAME).patch $(TARFILE_NAME)_win_manifest.patch
+TARFILE_MD5=e61d0364a30146aaa3001296f853b2b9
+PATCH_FILES=libxslt-configure.patch \
+ libxslt-win_manifest.patch \
+ libxslt-gnome602728.patch
# This is only for UNX environment now
.IF "$(OS)"=="WNT"
diff --git a/np_sdk/mozsrc/npunix.c b/np_sdk/mozsrc/npunix.c
index bac0a38f10d4..55d0fa5316d2 100644
--- a/np_sdk/mozsrc/npunix.c
+++ b/np_sdk/mozsrc/npunix.c
@@ -1,25 +1,41 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
- * 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. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
+ * ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
+ * 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. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
*
* The Original Code is mozilla.org code.
*
- * The Initial Developer of the Original Code is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
*
* Contributor(s):
- * Stephen Mak <smak@sun.com>
- */
+ * Stephen Mak <smak@sun.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
/*
* npunix.c
@@ -223,8 +239,6 @@ NPN_ForceRedraw(NPP instance)
CallNPN_ForceRedrawProc(gNetscapeFuncs.forceredraw, instance);
}
-
-
/***********************************************************************
*
* Wrapper functions : Netscape Navigator -> plugin
@@ -364,7 +378,7 @@ NP_GetMIMEDescription(void)
* that the navigator needs.
*/
NPError
-NP_GetValue(NPP future, NPPVariable variable, void *value)
+NP_GetValue(void* future, NPPVariable variable, void *value)
{
return NPP_GetValue(future, variable, value);
}
diff --git a/odk/cfgWin.js b/odk/cfgWin.js
index 1cc7836d7414..0dc23d22aa25 100644
--- a/odk/cfgWin.js
+++ b/odk/cfgWin.js
@@ -846,7 +846,7 @@ function writeBatFile(fdir, file)
"REM if exist \"%OO_SDK_HOME%\\windows\\lib\\stlport_vc71_stldebug.lib\". (\n" +
"REM set STLDEBUG=_stldebug\n" +
"REM )\n\n" +
- "REM Check installation path for the StarOffice Development Kit.\n" +
+ "REM Check installation path for the Office Development Kit.\n" +
"if not defined OO_SDK_HOME (\n" +
" echo Error: the variable OO_SDK_HOME is missing!\n" +
" goto :error\n" +
diff --git a/odk/configure.pl b/odk/configure.pl
index 968ebc589640..789cfac7cd76 100644..100755
--- a/odk/configure.pl
+++ b/odk/configure.pl
@@ -37,6 +37,7 @@ if ( $main::operatingSystem =~ m/darwin/ )
} else {
$main::OO_SDK_URE_HOME = `cd $main::sdkpath/../../ure && pwd`;
}
+chomp($main::OO_SDK_URE_HOME);
$main::OO_SDK_MAKE_HOME = "";
$main::makeName = "make";
@@ -625,6 +626,9 @@ sub searchMacOffice
if (-d "/Applications/OpenOffice.org.app" ) {
return "/Applications/OpenOffice.org.app"
}
+ if (-d "/Applications/Oracle Open Office.app" ) {
+ return "/Applications/Oracle Open Office.app";
+ }
if (-d "/Applications/StarOffice.app" ) {
return "/Applications/StarOffice.app";
}
@@ -650,6 +654,16 @@ sub searchoffice
return $officepath;
}
# fallback
+ my $tmpversion = $main::OO_MAJORVERSION;
+# if ( $main::OO_MINORVERSION > 0) {
+# $tmpversion = "$tmpversion.$main::OO_MINORVERSION";
+# }
+
+ $officepath = "$tmpOffice/oracle_open_office$tmpversion";
+ if (-d $officepath && -e "$officepath/program/soffice") {
+ return $officepath;
+ }
+
my $tmpversion = $main::OO_MAJORVERSION + 6;
if ( $main::OO_MINORVERSION > 0) {
$tmpversion = "$tmpversion.$main::OO_MINORVERSION";
diff --git a/odk/setsdkenv_unix.csh.in b/odk/setsdkenv_unix.csh.in
index 82a39e38aba4..ef513d4ef515 100644
--- a/odk/setsdkenv_unix.csh.in
+++ b/odk/setsdkenv_unix.csh.in
@@ -9,16 +9,16 @@ setenv OO_SDK_NAME @OO_SDK_NAME@
# Installation directory of the Software Development Kit.
# Example: setenv OO_SDK_HOME /opt/openoffice.org/basis3.0/sdk
-setenv OO_SDK_HOME @OO_SDK_HOME@
+setenv OO_SDK_HOME '@OO_SDK_HOME@'
# Office installation directory.
# Example: set OFFICE_HOME=/opt/openoffice.org3
-set OFFICE_HOME=@OFFICE_HOME@
-OFFICE_BASE_HOME=@OFFICE_BASE_HOME@
+set OFFICE_HOME='@OFFICE_HOME@'
+OFFICE_BASE_HOME='@OFFICE_BASE_HOME@'
# URE installation directory.
# Example: setenv OO_SDK_URE_HOME /opt/openoffice.org/ure
-setenv OO_SDK_URE_HOME @OO_SDK_URE_HOME@
+setenv OO_SDK_URE_HOME '@OO_SDK_URE_HOME@'
# Directory of the make command.
# Example: setenv OO_SDK_MAKE_HOME /usr/bin
diff --git a/odk/setsdkenv_unix.sh.in b/odk/setsdkenv_unix.sh.in
index 0f6ef22519cd..96365481c104 100644
--- a/odk/setsdkenv_unix.sh.in
+++ b/odk/setsdkenv_unix.sh.in
@@ -10,16 +10,16 @@ export OO_SDK_NAME
# Installation directory of the Software Development Kit.
# Example: OO_SDK_HOME=/opt/openoffice.org/basis3.0/sdk
-OO_SDK_HOME=@OO_SDK_HOME@
+OO_SDK_HOME='@OO_SDK_HOME@'
# Office installation directory.
# Example: OFFICE_HOME=/opt/openoffice.org3
-OFFICE_HOME=@OFFICE_HOME@
-OFFICE_BASE_HOME=@OFFICE_BASE_HOME@
+OFFICE_HOME='@OFFICE_HOME@'
+OFFICE_BASE_HOME='@OFFICE_BASE_HOME@'
# URE installation directory.
# Example: OO_SDK_URE_HOME=/opt/openoffice.org/ure
-OO_SDK_URE_HOME=@OO_SDK_URE_HOME@
+OO_SDK_URE_HOME='@OO_SDK_URE_HOME@'
export OO_SDK_URE_HOME
# Directory of the make command.
diff --git a/odk/settings/settings.mk b/odk/settings/settings.mk
index 3f84612e48c3..74c1393496b2 100644
--- a/odk/settings/settings.mk
+++ b/odk/settings/settings.mk
@@ -443,12 +443,12 @@ SALHELPERLIB=-luno_salhelper$(COMID)
REGLIB=-lreg
STORELIB=-lstore
-SALDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libuno_sal.dylib.3:$(OO_SDK_URE_LIB_DIR)/libuno_sal.dylib
-CPPUDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libuno_cppu.dylib.3:$(OO_SDK_URE_LIB_DIR)/libuno_cppu.dylib
-CPPUHELPERDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libuno_cppuhelper$(COMID).dylib.3:$(OO_SDK_URE_LIB_DIR)/libuno_cppuhelper$(COMID).dylib
-SALHELPERDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libuno_salhelper$(COMID).dylib.3:$(OO_SDK_URE_LIB_DIR)/libuno_salhelper$(COMID).dylib
-REGDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libreg.dylib.3:$(OO_SDK_URE_LIB_DIR)/libreg.dylib
-STOREDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libstore.dylib.3:$(OO_SDK_URE_LIB_DIR)/libstore.dylib
+SALDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libuno_sal.dylib.3:'$(OO_SDK_URE_LIB_DIR)/libuno_sal.dylib'
+CPPUDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libuno_cppu.dylib.3:'$(OO_SDK_URE_LIB_DIR)/libuno_cppu.dylib'
+CPPUHELPERDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libuno_cppuhelper'$(COMID).dylib.3:$(OO_SDK_URE_LIB_DIR)/libuno_cppuhelper$(COMID).dylib'
+SALHELPERDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libuno_salhelper$(COMID).dylib.3:'$(OO_SDK_URE_LIB_DIR)/libuno_salhelper$(COMID).dylib'
+REGDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libreg.dylib.3:'$(OO_SDK_URE_LIB_DIR)/libreg.dylib'
+STOREDYLIB=-Wl,-dylib_file,@__________________________________________________URELIB/libstore.dylib.3:'$(OO_SDK_URE_LIB_DIR)/libstore.dylib'
INSTALL_NAME_URELIBS=install_name_tool -change @__________________________________________________URELIB/libuno_sal.dylib.3 @executable_path/urelibs/libuno_sal.dylib.3 -change @__________________________________________________URELIB/libuno_cppu.dylib.3 @executable_path/urelibs/libuno_cppu.dylib.3 -change @__________________________________________________URELIB/libuno_cppuhelper$(COMID).dylib.3 @executable_path/urelibs/libuno_cppuhelper$(COMID).dylib.3 -change @__________________________________________________URELIB/libuno_salhelper$(COMID).dylib.3 @executable_path/urelibs/libuno_salhelper$(COMID).dylib.3 -change @__________________________________________________URELIB/libreg.dylib.3 @executable_path/urelibs/libreg.dylib.3 -change @__________________________________________________URELIB/libstore.dylib.3 @executable_path/urelibs/libstore.dylib.3
diff --git a/configmgr/inc/configmgr/detail/configmgrdllapi.hxx b/offapi/com/sun/star/configuration/Update.idl
index 6eb2ea7bc9d9..790a4bb40235 100644
--- a/configmgr/inc/configmgr/detail/configmgrdllapi.hxx
+++ b/offapi/com/sun/star/configuration/Update.idl
@@ -25,17 +25,21 @@
*
************************************************************************/
-#ifndef INCLUDED_CONFIGMGR_DETAIL_CONFIGMGRDLLAPI_HXX
-#define INCLUDED_CONFIGMGR_DETAIL_CONFIGMGRDLLAPI_HXX
+#ifndef __com_sun_star_configuration_Update_idl__
+#define __com_sun_star_configuration_Update_idl__
-#include "sal/config.h"
+#include "com/sun/star/configuration/XUpdate.idl"
-#include "sal/types.h"
+module com { module sun { module star { module configuration {
-#if defined OOO_DLLIMPLEMENTATION_CONFIGMGR
-#define OOO_DLLPUBLIC_CONFIGMGR SAL_DLLPUBLIC_EXPORT
-#else
-#define OOO_DLLPUBLIC_CONFIGMGR SAL_DLLPUBLIC_IMPORT
-#endif
+/* Provides access to internal update features of the configuration provider.
+
+ <p>This singleton is unpublished and unstable.</p>
+
+ @since OOo 3.3.0
+*/
+singleton Update: XUpdate;
+
+}; }; }; };
#endif
diff --git a/configmgr/inc/configmgr/update.hxx b/offapi/com/sun/star/configuration/XUpdate.idl
index 3a152959342b..7514cbcb1b7f 100644
--- a/configmgr/inc/configmgr/update.hxx
+++ b/offapi/com/sun/star/configuration/XUpdate.idl
@@ -25,34 +25,27 @@
*
************************************************************************/
-#ifndef INCLUDED_CONFIGMGR_UPDATE_HXX
-#define INCLUDED_CONFIGMGR_UPDATE_HXX
+#ifndef __com_sun_star_configuration_XUpdate_idl__
+#define __com_sun_star_configuration_XUpdate_idl__
-#include "sal/config.h"
+#include "com/sun/star/uno/XInterface.idl"
-#include <set>
+module com { module sun { module star { module configuration {
-#include "configmgr/detail/configmgrdllapi.hxx"
+/* Provides access to internal update features of the configuration provider.
-namespace rtl { class OUString; }
+ <p>This interface is unpublished and unstable.</p>
-namespace configmgr {
+ @since OOo 3.3.0
+*/
+interface XUpdate {
+ void insertExtensionXcsFile([in] boolean shared, [in] string fileUri);
+ void insertExtensionXcuFile([in] boolean shared, [in] string fileUri);
+ void insertModificationXcuFile(
+ [in] string fileUri, [in] sequence< string > includedPaths,
+ [in] sequence< string > excludedPaths);
+};
-namespace update {
-
-OOO_DLLPUBLIC_CONFIGMGR void insertExtensionXcsFile(
- bool shared, rtl::OUString const & fileUri);
-
-OOO_DLLPUBLIC_CONFIGMGR void insertExtensionXcuFile(
- bool shared, rtl::OUString const & fileUri);
-
-OOO_DLLPUBLIC_CONFIGMGR void insertModificationXcuFile(
- rtl::OUString const & fileUri,
- std::set< rtl::OUString > const & includedPaths,
- std::set< rtl::OUString > const & excludedPaths);
-
-}
-
-}
+}; }; }; };
#endif
diff --git a/offapi/com/sun/star/configuration/makefile.mk b/offapi/com/sun/star/configuration/makefile.mk
index 0dc3a42df9ab..00525e9ba355 100644
--- a/offapi/com/sun/star/configuration/makefile.mk
+++ b/offapi/com/sun/star/configuration/makefile.mk
@@ -65,6 +65,8 @@ IDLFILES=\
PropertyHierarchy.idl\
XTemplateContainer.idl\
XTemplateInstance.idl\
+ Update.idl \
+ XUpdate.idl
# ------------------------------------------------------------------
diff --git a/offapi/com/sun/star/document/DocumentProperties.idl b/offapi/com/sun/star/document/DocumentProperties.idl
index c8e0ee9ca493..5b00f6c9a8e2 100755
--- a/offapi/com/sun/star/document/DocumentProperties.idl
+++ b/offapi/com/sun/star/document/DocumentProperties.idl
@@ -49,7 +49,7 @@ module com { module sun { module star { module document {
@see XDocumentProperties
@see XDocumentPropertiesSupplier
*/
-service DocumentProperties : XDocumentProperties
+published service DocumentProperties : XDocumentProperties
{
/** constructs default-initialized instance
*/
diff --git a/offapi/com/sun/star/document/OfficeDocument.idl b/offapi/com/sun/star/document/OfficeDocument.idl
index 98d3b09e39e3..4a3418e4da64 100644
--- a/offapi/com/sun/star/document/OfficeDocument.idl
+++ b/offapi/com/sun/star/document/OfficeDocument.idl
@@ -71,6 +71,10 @@
#include <com/sun/star/document/XEmbeddedScripts.idl>
#endif
+#ifndef __com_sun_star_document_XDocumentPropertiesSupplier_idl__
+#include <com/sun/star/document/XDocumentPropertiesSupplier.idl>
+#endif
+
//=============================================================================
module com { module sun { module star { module document {
@@ -158,6 +162,8 @@ published service OfficeDocument
Instead of the <type>StandaloneDocumentInfo</type> service the <type>DocumentInfo</type>
will be available on an already opened document only.
</p>
+
+ @deprecated Use <type>XDocumentPropertiesSupplier</type> instead.
*/
[optional] interface XDocumentInfoSupplier;
@@ -180,6 +186,13 @@ published service OfficeDocument
[optional] interface XEmbeddedScripts;
//-------------------------------------------------------------------------
+ /** access to the <type>DocumentProperties</type>.
+
+ @since OOo 3.0
+ */
+ [optional] interface XDocumentPropertiesSupplier;
+
+ //-------------------------------------------------------------------------
/** controls the focus behaviour of the form controls in the document
<p>
diff --git a/offapi/com/sun/star/document/XDocumentProperties.idl b/offapi/com/sun/star/document/XDocumentProperties.idl
index 943fbd586f8f..8a3b2c1843aa 100755
--- a/offapi/com/sun/star/document/XDocumentProperties.idl
+++ b/offapi/com/sun/star/document/XDocumentProperties.idl
@@ -88,7 +88,7 @@ module com { module sun { module star { module document {
for getting access to an instance from a loaded document
@see DocumentProperties for a service that implements this interface
*/
-interface XDocumentProperties
+published interface XDocumentProperties
{
//-------------------------------------------------------------------------
/** contains the initial author of the document.
@@ -352,8 +352,6 @@ interface XDocumentProperties
if thrown when trying to open a stream in the given storage
@throws com::sun::star::io::IOException
if thrown when trying to open a stream in the given storage
- @throws com::sun::star::uno::Exception
- in various unspecified circumstances
*/
void loadFromStorage( [in] com::sun::star::embed::XStorage Storage,
@@ -361,15 +359,10 @@ interface XDocumentProperties
raises( com::sun::star::lang::IllegalArgumentException,
com::sun::star::io::WrongFormatException,
com::sun::star::lang::WrappedTargetException,
- com::sun::star::io::IOException,
- com::sun::star::uno::Exception );
+ com::sun::star::io::IOException );
//-------------------------------------------------------------------------
/** loads document properties from an ODF package or an OLE container.
- <p>
- For compatibility reasons this method also supports the import from
- former StarOffice binary file formats.
- </p>
@param URL
the URL of the source document
@@ -389,16 +382,13 @@ interface XDocumentProperties
if thrown when trying to open a stream in the given storage
@throws com::sun::star::io::IOException
if thrown when trying to open a stream in the given storage
- @throws com::sun::star::uno::Exception
- in various unspecified circumstances
*/
void loadFromMedium( [in] string URL,
[in] sequence < com::sun::star::beans::PropertyValue > Medium )
raises( com::sun::star::io::WrongFormatException,
com::sun::star::lang::WrappedTargetException,
- com::sun::star::io::IOException,
- com::sun::star::uno::Exception );
+ com::sun::star::io::IOException );
//-------------------------------------------------------------------------
/** stores document properties to an ODF package.
@@ -428,23 +418,16 @@ interface XDocumentProperties
if thrown when trying to open a stream in the given storage
@throws com::sun::star::io::IOException
if thrown when writing to the storage
- @throws com::sun::star::uno::Exception
- in various unspecified circumstances
*/
void storeToStorage( [in] com::sun::star::embed::XStorage Storage,
[in] sequence < com::sun::star::beans::PropertyValue > Medium )
raises( com::sun::star::lang::IllegalArgumentException,
com::sun::star::lang::WrappedTargetException,
- com::sun::star::io::IOException,
- com::sun::star::uno::Exception );
+ com::sun::star::io::IOException );
//-------------------------------------------------------------------------
/** stores document properties to an ODF package or an OLE container.
- <p>
- For compatibility reasons this method also supports the export to former
- StarOffice binary file formats.
- </p>
@param URL
the URL of the target document
@@ -462,15 +445,12 @@ interface XDocumentProperties
if thrown when trying to open a stream in the given storage
@throws com::sun::star::io::IOException
if thrown when writing to the storage
- @throws com::sun::star::uno::Exception
- in various unspecified circumstances
*/
void storeToMedium( [in] string URL,
[in] sequence < com::sun::star::beans::PropertyValue > Medium )
raises( com::sun::star::lang::WrappedTargetException,
- com::sun::star::io::IOException,
- com::sun::star::uno::Exception );
+ com::sun::star::io::IOException );
};
//=============================================================================
diff --git a/offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl b/offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl
index 52fa61aa5f12..811513d7a026 100644
--- a/offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl
+++ b/offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl
@@ -52,7 +52,7 @@ module com { module sun { module star { module document {
@see XDocumentProperties
@see DocumentProperties
*/
-interface XDocumentPropertiesSupplier
+published interface XDocumentPropertiesSupplier
{
//-------------------------------------------------------------------------
/** provides the document properties object.
diff --git a/offapi/com/sun/star/embed/Actions.idl b/offapi/com/sun/star/embed/Actions.idl
index a65766a4ed79..48ad78eb0ab2 100644
--- a/offapi/com/sun/star/embed/Actions.idl
+++ b/offapi/com/sun/star/embed/Actions.idl
@@ -35,7 +35,7 @@ module com { module sun { module star { module embed {
/** This constant set contains possible actions that could be approved by
<type>ActionsApproval</type> implementation.
*/
-constants Actions
+published constants Actions
{
//------------------------------------------------------------------------
/** "Prevent Close" - throws veto excetion if target object is going to
diff --git a/offapi/com/sun/star/embed/Aspects.idl b/offapi/com/sun/star/embed/Aspects.idl
index 3b0d13ba50c8..28431b60f87e 100644
--- a/offapi/com/sun/star/embed/Aspects.idl
+++ b/offapi/com/sun/star/embed/Aspects.idl
@@ -49,7 +49,7 @@ module com { module sun { module star { module embed {
@see XEmbeddedObject
*/
-constants Aspects
+published constants Aspects
{
// MS OLE aspects
diff --git a/offapi/com/sun/star/embed/BaseStorage.idl b/offapi/com/sun/star/embed/BaseStorage.idl
index 776e9b992cbe..81df39792b75 100644
--- a/offapi/com/sun/star/embed/BaseStorage.idl
+++ b/offapi/com/sun/star/embed/BaseStorage.idl
@@ -44,7 +44,7 @@
//============================================================================
/** This is a service that allows to get access to a storage hierarchy.
*/
-service BaseStorage
+published service BaseStorage
{
// -----------------------------------------------------------------------
/** This is a general interface representing storage functionality.
diff --git a/offapi/com/sun/star/embed/DocumentCloser.idl b/offapi/com/sun/star/embed/DocumentCloser.idl
index 89c020c8caa6..9b0eaf617527 100644
--- a/offapi/com/sun/star/embed/DocumentCloser.idl
+++ b/offapi/com/sun/star/embed/DocumentCloser.idl
@@ -65,7 +65,7 @@ module com { module sun { module star { module embed {
from the container system window.
</p>
*/
-service DocumentCloser : com::sun::star::lang::XComponent
+published service DocumentCloser : com::sun::star::lang::XComponent
{
/** is used to initialize the object on it's creation.
diff --git a/offapi/com/sun/star/embed/ElementModes.idl b/offapi/com/sun/star/embed/ElementModes.idl
index d579c7f67be3..314036fd45ec 100644
--- a/offapi/com/sun/star/embed/ElementModes.idl
+++ b/offapi/com/sun/star/embed/ElementModes.idl
@@ -43,7 +43,7 @@ module com { module sun { module star { module embed {
@see <type>XStorage</type>
*/
-constants ElementModes
+published constants ElementModes
{
//------------------------------------------------------------------------
/** specifies opening of an element for reading.
diff --git a/offapi/com/sun/star/embed/EmbedMapUnits.idl b/offapi/com/sun/star/embed/EmbedMapUnits.idl
index 7888eea876b7..ff8a3cebada5 100644
--- a/offapi/com/sun/star/embed/EmbedMapUnits.idl
+++ b/offapi/com/sun/star/embed/EmbedMapUnits.idl
@@ -37,7 +37,7 @@ module com { module sun { module star { module embed {
@see XVisualObject
*/
-constants EmbedMapUnits
+published constants EmbedMapUnits
{
// ----------------------------------------------------------------------
/** In this type of map mode one logical point is equal to one-hundredth
diff --git a/offapi/com/sun/star/embed/EmbedMisc.idl b/offapi/com/sun/star/embed/EmbedMisc.idl
index 1fa8204a44b0..a1e05224b00b 100644
--- a/offapi/com/sun/star/embed/EmbedMisc.idl
+++ b/offapi/com/sun/star/embed/EmbedMisc.idl
@@ -47,7 +47,7 @@ module com { module sun { module star { module embed {
@see XEmbeddedObject
*/
-constants EmbedMisc
+published constants EmbedMisc
{
// analog of the MS OLEMISC enum
diff --git a/offapi/com/sun/star/embed/EmbedStates.idl b/offapi/com/sun/star/embed/EmbedStates.idl
index 3f63bec2e607..df94cfa045a5 100644
--- a/offapi/com/sun/star/embed/EmbedStates.idl
+++ b/offapi/com/sun/star/embed/EmbedStates.idl
@@ -36,7 +36,7 @@ module com { module sun { module star { module embed {
/** This constant set contains possible states for
<type>EmbeddedObject</type>.
*/
-constants EmbedStates
+published constants EmbedStates
{
//------------------------------------------------------------------------
/** "Loaded" - the persistent representation of the object is loaded in
diff --git a/offapi/com/sun/star/embed/EmbedUpdateModes.idl b/offapi/com/sun/star/embed/EmbedUpdateModes.idl
index 17213598d92a..9060aa965909 100644
--- a/offapi/com/sun/star/embed/EmbedUpdateModes.idl
+++ b/offapi/com/sun/star/embed/EmbedUpdateModes.idl
@@ -37,7 +37,7 @@ module com { module sun { module star { module embed {
@see XEmbeddedObject
*/
-constants EmbedUpdateModes
+published constants EmbedUpdateModes
{
// -----------------------------------------------------------------------
/** An object representation should be updated as often as possible.
diff --git a/offapi/com/sun/star/embed/EmbedVerbs.idl b/offapi/com/sun/star/embed/EmbedVerbs.idl
index cc92013b83d5..5d34fb1e8153 100644
--- a/offapi/com/sun/star/embed/EmbedVerbs.idl
+++ b/offapi/com/sun/star/embed/EmbedVerbs.idl
@@ -37,7 +37,7 @@ module com { module sun { module star { module embed {
@see XEmbeddedObject
*/
-constants EmbedVerbs
+published constants EmbedVerbs
{
//------------------------------------------------------------------------
/** lets the object do default activation, as by doubleclick.
diff --git a/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl b/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl
index 733db10e61b1..5a47c8f8fafc 100644
--- a/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl
+++ b/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl
@@ -71,7 +71,7 @@ module com { module sun { module star { module embed {
@see com::sun::star::beans::PropertyValue
*/
-service EmbeddedObjectDescriptor
+published service EmbeddedObjectDescriptor
{
//------------------------------------------------------------------------
/** lets the graphical representation of embedded document be stored.
diff --git a/offapi/com/sun/star/embed/EntryInitModes.idl b/offapi/com/sun/star/embed/EntryInitModes.idl
index 2517670dacf9..ae67192d323a 100644
--- a/offapi/com/sun/star/embed/EntryInitModes.idl
+++ b/offapi/com/sun/star/embed/EntryInitModes.idl
@@ -38,7 +38,7 @@ module com { module sun { module star { module embed {
@see XEmbedPersist
*/
-constants EntryInitModes
+published constants EntryInitModes
{
// -----------------------------------------------------------------------
/** In case object persistance is created based on existing entry,
diff --git a/offapi/com/sun/star/embed/FileSystemStorage.idl b/offapi/com/sun/star/embed/FileSystemStorage.idl
index 76d07e3f9aeb..2b4d7d456751 100644
--- a/offapi/com/sun/star/embed/FileSystemStorage.idl
+++ b/offapi/com/sun/star/embed/FileSystemStorage.idl
@@ -40,7 +40,7 @@
/** This is a service that allows to get access to a file system folder using
storage hierarchy.
*/
-service FileSystemStorage
+published service FileSystemStorage
{
// -----------------------------------------------------------------------
/** This service describes the base functionality of storages.
diff --git a/offapi/com/sun/star/embed/FileSystemStorageFactory.idl b/offapi/com/sun/star/embed/FileSystemStorageFactory.idl
index 30f7f1fa15db..d27541d703ef 100644
--- a/offapi/com/sun/star/embed/FileSystemStorageFactory.idl
+++ b/offapi/com/sun/star/embed/FileSystemStorageFactory.idl
@@ -42,7 +42,7 @@
create a <type>FileSystemStorage</type> based on URL. The URL must point
to a folder.
*/
-service FileSystemStorageFactory
+published service FileSystemStorageFactory
{
// ----------------------------------------------------------------------
/** A storage can be created through this interface.
diff --git a/offapi/com/sun/star/embed/InsertedObjectInfo.idl b/offapi/com/sun/star/embed/InsertedObjectInfo.idl
index a07529ee34cc..dedfabb75a8f 100644
--- a/offapi/com/sun/star/embed/InsertedObjectInfo.idl
+++ b/offapi/com/sun/star/embed/InsertedObjectInfo.idl
@@ -43,7 +43,7 @@
/** is intended to provide result of creation of an embedded object by dialog.
*/
-struct InsertedObjectInfo
+published struct InsertedObjectInfo
{
//-------------------------------------------------------------------------
/** The new created embedded object.
diff --git a/offapi/com/sun/star/embed/InstanceLocker.idl b/offapi/com/sun/star/embed/InstanceLocker.idl
index 15716cc4fceb..3258dc3b9365 100644
--- a/offapi/com/sun/star/embed/InstanceLocker.idl
+++ b/offapi/com/sun/star/embed/InstanceLocker.idl
@@ -57,7 +57,7 @@ module com { module sun { module star { module embed {
the listener throw related veto exception until the service is disposed.
</p>
*/
-service InstanceLocker : com::sun::star::lang::XComponent
+published service InstanceLocker : com::sun::star::lang::XComponent
{
/** is used to initialize the object on it's creation.
diff --git a/offapi/com/sun/star/embed/InvalidStorageException.idl b/offapi/com/sun/star/embed/InvalidStorageException.idl
index a8eeb067d237..f4eabfb8908e 100644
--- a/offapi/com/sun/star/embed/InvalidStorageException.idl
+++ b/offapi/com/sun/star/embed/InvalidStorageException.idl
@@ -44,7 +44,7 @@
For example in case it is broken one.
</p>
*/
-exception InvalidStorageException: com::sun::star::io::IOException
+published exception InvalidStorageException: com::sun::star::io::IOException
{
};
diff --git a/offapi/com/sun/star/embed/LinkageMisuseException.idl b/offapi/com/sun/star/embed/LinkageMisuseException.idl
index 769938f9ccba..fec43851a373 100644
--- a/offapi/com/sun/star/embed/LinkageMisuseException.idl
+++ b/offapi/com/sun/star/embed/LinkageMisuseException.idl
@@ -44,7 +44,7 @@
Or if embedded object is misused as a linked object.
</p>
*/
-exception LinkageMisuseException: com::sun::star::uno::Exception
+published exception LinkageMisuseException: com::sun::star::uno::Exception
{
};
diff --git a/offapi/com/sun/star/embed/NeedsRunningStateException.idl b/offapi/com/sun/star/embed/NeedsRunningStateException.idl
index 4c5149e36454..8853049ab64f 100644
--- a/offapi/com/sun/star/embed/NeedsRunningStateException.idl
+++ b/offapi/com/sun/star/embed/NeedsRunningStateException.idl
@@ -47,7 +47,7 @@
addition to the loaded state. Other states and possible verbs can be
detected only after object is switched to running state.
*/
-exception NeedsRunningStateException: WrongStateException
+published exception NeedsRunningStateException: WrongStateException
{
};
diff --git a/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl b/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl
index 9262e9f0ee31..c5f8e5935b46 100644
--- a/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl
+++ b/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl
@@ -41,7 +41,7 @@
/** This exception can be thrown in case the object can not provide own visual
area currently.
*/
-exception NoVisualAreaSizeException: com::sun::star::uno::Exception
+published exception NoVisualAreaSizeException: com::sun::star::uno::Exception
{
};
diff --git a/offapi/com/sun/star/embed/OLESimpleStorage.idl b/offapi/com/sun/star/embed/OLESimpleStorage.idl
index d83078dfb315..8aa4630acd6b 100644
--- a/offapi/com/sun/star/embed/OLESimpleStorage.idl
+++ b/offapi/com/sun/star/embed/OLESimpleStorage.idl
@@ -45,7 +45,7 @@ module com { module sun { module star { module embed {
/** This service provides a simple functionality to allow
read/write the storages in OLE storage format.
*/
-service OLESimpleStorage: XOLESimpleStorage
+published service OLESimpleStorage: XOLESimpleStorage
{
// CONSTRUCTORS ----------------------------------------------------------
/** is used to initialize the object on it's creation.
diff --git a/offapi/com/sun/star/embed/ObjectSaveVetoException.idl b/offapi/com/sun/star/embed/ObjectSaveVetoException.idl
index cd75d9c0eb94..3d0252e912fe 100644
--- a/offapi/com/sun/star/embed/ObjectSaveVetoException.idl
+++ b/offapi/com/sun/star/embed/ObjectSaveVetoException.idl
@@ -43,7 +43,7 @@
@see XEmbeddedClient
*/
-exception ObjectSaveVetoException: com::sun::star::uno::Exception
+published exception ObjectSaveVetoException: com::sun::star::uno::Exception
{
};
diff --git a/offapi/com/sun/star/embed/StateChangeInProgressException.idl b/offapi/com/sun/star/embed/StateChangeInProgressException.idl
index fe6e50f221b9..648e839383ba 100644
--- a/offapi/com/sun/star/embed/StateChangeInProgressException.idl
+++ b/offapi/com/sun/star/embed/StateChangeInProgressException.idl
@@ -42,7 +42,7 @@
to call requested functionality currently because the object is changing
state.
*/
-exception StateChangeInProgressException: com::sun::star::embed::WrongStateException
+published exception StateChangeInProgressException: com::sun::star::embed::WrongStateException
{
//------------------------------------------------------------------------
/** contains the target state the object tries to reach currently.
diff --git a/offapi/com/sun/star/embed/Storage.idl b/offapi/com/sun/star/embed/Storage.idl
index 93709d335b2b..d34d736cf5cb 100644
--- a/offapi/com/sun/star/embed/Storage.idl
+++ b/offapi/com/sun/star/embed/Storage.idl
@@ -75,7 +75,7 @@
of a parent storage.
</p>
*/
-service Storage
+published service Storage
{
// -----------------------------------------------------------------------
/** This service describes the base functionality of storages.
diff --git a/offapi/com/sun/star/embed/StorageFactory.idl b/offapi/com/sun/star/embed/StorageFactory.idl
index 0f653069f07e..4b4b40d01a4c 100644
--- a/offapi/com/sun/star/embed/StorageFactory.idl
+++ b/offapi/com/sun/star/embed/StorageFactory.idl
@@ -41,7 +41,7 @@
/** The <type>StorageFactory</type> is a service that allows to create
a storage based on either stream or URL.
*/
-service StorageFactory
+published service StorageFactory
{
// ----------------------------------------------------------------------
/** A storage can be created through this interface.
@@ -82,13 +82,22 @@ service StorageFactory
<dt>parameter 3</dt>
<dd>
- allowes to provide
+ this paramenter represents
+ <type scope="com::sun::star::uno">Any</type>
+ containing a sequence of
+ <type scope="com::sun::star::beans">PropertyValue</type>.<br>
+ The parameter can contain entries from
<type scope="com::sun::star::document">MediaDescryptor</type>
- to the storage so some parts can be used for
+ to transport some document info during the storage
initialization, it can be for example
<type scope="com::sun::star::task">XInteractionHandler</type>
implementation, password for the storage and repair
- package flag.
+ package flag.<br>
+ Additionaly the parameter might contain property with the name
+ "StorageFormat" that can take values from
+ <type scope="com::sun::star::embed">StorageFormats</type>.
+ If the property is not provided a storage of package format
+ is created.
</dd>
</dl>
diff --git a/sc/source/ui/inc/teamdlg.hxx b/offapi/com/sun/star/embed/StorageFormats.idl
index 9f44f06c4b12..128fb1190b15 100644
--- a/sc/source/ui/inc/teamdlg.hxx
+++ b/offapi/com/sun/star/embed/StorageFormats.idl
@@ -24,30 +24,42 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
+#ifndef __com_sun_star_embed_StorageFormats_idl__
+#define __com_sun_star_embed_StorageFormats_idl__
-#ifndef SC_TEAMDLG_HXX
-#define SC_TEAMDLG_HXX
+//============================================================================
-#include <vcl/floatwin.hxx>
-#include <vcl/fixed.hxx>
+module com { module sun { module star { module embed {
+//============================================================================
+/** The constant set contains IDs of formats that are supported by
+ <type>StorageFactory</type>.
-//========================================================================
-
-class ScTeamDlg : public FloatingWindow
+ @see <type>StorageFactory</type>
+ @since OOo 3.3
+*/
+published constants StorageFormats
{
-public:
- ScTeamDlg( Window* pParent );
- ~ScTeamDlg();
+ //------------------------------------------------------------------------
+ /** specifies package format
+ */
+ const long PACKAGE = 1;
- virtual BOOL Close();
- void Center();
+ //------------------------------------------------------------------------
+ /** specifies zip format
+ */
+ const long ZIP = 2;
-private:
- FixedBitmap aBmpTeam;
+ //------------------------------------------------------------------------
+ /** specifies Office Open XML format
+ */
+ const long OFOPXML = 3;
};
+//============================================================================
+
+}; }; }; };
#endif
diff --git a/offapi/com/sun/star/embed/StorageStream.idl b/offapi/com/sun/star/embed/StorageStream.idl
index eb08391619dd..1fb6733605f0 100644
--- a/offapi/com/sun/star/embed/StorageStream.idl
+++ b/offapi/com/sun/star/embed/StorageStream.idl
@@ -64,7 +64,7 @@
of the stream can exist.
</p>
*/
-service StorageStream
+published service StorageStream
{
// -----------------------------------------------------------------------
/** allows to get access to <type scope="com::sun::star::io">XInputStream</type>
diff --git a/offapi/com/sun/star/embed/StorageWrappedTargetException.idl b/offapi/com/sun/star/embed/StorageWrappedTargetException.idl
index 038d2fb9194f..aed449eb90a1 100644
--- a/offapi/com/sun/star/embed/StorageWrappedTargetException.idl
+++ b/offapi/com/sun/star/embed/StorageWrappedTargetException.idl
@@ -41,7 +41,7 @@
/** This exception can wrap an exception thrown during <type>XStorage</type>
methods execution.
*/
-exception StorageWrappedTargetException: com::sun::star::lang::WrappedTargetException
+published exception StorageWrappedTargetException: com::sun::star::lang::WrappedTargetException
{
};
diff --git a/offapi/com/sun/star/embed/UnreachableStateException.idl b/offapi/com/sun/star/embed/UnreachableStateException.idl
index e0347b7894e5..be53beda3bc3 100644
--- a/offapi/com/sun/star/embed/UnreachableStateException.idl
+++ b/offapi/com/sun/star/embed/UnreachableStateException.idl
@@ -40,7 +40,7 @@
/** This exception can be thrown in case specified state can not be reached.
*/
-exception UnreachableStateException: com::sun::star::uno::Exception
+published exception UnreachableStateException: com::sun::star::uno::Exception
{
// -----------------------------------------------------------------------
/** The current state of the object.
diff --git a/offapi/com/sun/star/embed/UseBackupException.idl b/offapi/com/sun/star/embed/UseBackupException.idl
index 34c19b6b59ec..e7d74d30f52c 100644
--- a/offapi/com/sun/star/embed/UseBackupException.idl
+++ b/offapi/com/sun/star/embed/UseBackupException.idl
@@ -51,7 +51,7 @@
internally, and can be used as a temporary storage usually used.
</p>
*/
-exception UseBackupException: com::sun::star::io::IOException
+published exception UseBackupException: com::sun::star::io::IOException
{
/** The URL of the temporary file the storage is based on now.
*/
diff --git a/offapi/com/sun/star/embed/VerbAttributes.idl b/offapi/com/sun/star/embed/VerbAttributes.idl
index f8ee208831c5..742e782eb5c9 100644
--- a/offapi/com/sun/star/embed/VerbAttributes.idl
+++ b/offapi/com/sun/star/embed/VerbAttributes.idl
@@ -37,7 +37,7 @@ module com { module sun { module star { module embed {
@see VerbDescriptor
*/
-constants VerbAttributes
+published constants VerbAttributes
{
// -----------------------------------------------------------------------
/** Execution of the verb with this attribute must not modify the
diff --git a/offapi/com/sun/star/embed/VerbDescriptor.idl b/offapi/com/sun/star/embed/VerbDescriptor.idl
index c286e1ef23d0..f213c5969952 100644
--- a/offapi/com/sun/star/embed/VerbDescriptor.idl
+++ b/offapi/com/sun/star/embed/VerbDescriptor.idl
@@ -36,7 +36,7 @@
/** describes a verb.
*/
-struct VerbDescriptor
+published struct VerbDescriptor
{
//------------------------------------------------------------------------
/** specifies the id of the verb.
diff --git a/offapi/com/sun/star/embed/VisualRepresentation.idl b/offapi/com/sun/star/embed/VisualRepresentation.idl
index d41c9acfbe3f..8d07575008bb 100644
--- a/offapi/com/sun/star/embed/VisualRepresentation.idl
+++ b/offapi/com/sun/star/embed/VisualRepresentation.idl
@@ -39,7 +39,7 @@
/** can contain a graphical representation in an arbitrary format.
*/
-struct VisualRepresentation
+published struct VisualRepresentation
{
//-------------------------------------------------------------------------
/** The format of the visual representation.
diff --git a/offapi/com/sun/star/embed/WrongStateException.idl b/offapi/com/sun/star/embed/WrongStateException.idl
index f7a2a31d9058..809389c3a1fa 100644
--- a/offapi/com/sun/star/embed/WrongStateException.idl
+++ b/offapi/com/sun/star/embed/WrongStateException.idl
@@ -41,7 +41,7 @@
/** This exception can be thrown in case the object's state does not allow
to call requested functionality.
*/
-exception WrongStateException: com::sun::star::uno::Exception
+published exception WrongStateException: com::sun::star::uno::Exception
{
};
diff --git a/offapi/com/sun/star/embed/XActionsApproval.idl b/offapi/com/sun/star/embed/XActionsApproval.idl
index 904ae103101a..d3b64367a97b 100644
--- a/offapi/com/sun/star/embed/XActionsApproval.idl
+++ b/offapi/com/sun/star/embed/XActionsApproval.idl
@@ -44,7 +44,7 @@
possible actions must be documented in documentation of the object.
</p>
*/
-interface XActionsApproval: com::sun::star::uno::XInterface
+published interface XActionsApproval: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** requests an approval for the specified action.
diff --git a/offapi/com/sun/star/embed/XClassifiedObject.idl b/offapi/com/sun/star/embed/XClassifiedObject.idl
index 37ca9249cb30..2cde70fa8566 100644
--- a/offapi/com/sun/star/embed/XClassifiedObject.idl
+++ b/offapi/com/sun/star/embed/XClassifiedObject.idl
@@ -43,7 +43,7 @@
//============================================================================
/** represents common functionality for embedded objects
*/
-interface XClassifiedObject: com::sun::star::uno::XInterface
+published interface XClassifiedObject: com::sun::star::uno::XInterface
{
// -----------------------------------------------------------------------
/** retrieves class ID of the object.
diff --git a/offapi/com/sun/star/embed/XCommonEmbedPersist.idl b/offapi/com/sun/star/embed/XCommonEmbedPersist.idl
index 2f07ce1e3015..8b82c44965e0 100644
--- a/offapi/com/sun/star/embed/XCommonEmbedPersist.idl
+++ b/offapi/com/sun/star/embed/XCommonEmbedPersist.idl
@@ -59,7 +59,7 @@
/** specifies common implementation for embedded objects and links
persistence.
*/
-interface XCommonEmbedPersist: com::sun::star::uno::XInterface
+published interface XCommonEmbedPersist: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** lets the object or the link store itself.
diff --git a/offapi/com/sun/star/embed/XComponentSupplier.idl b/offapi/com/sun/star/embed/XComponentSupplier.idl
index de1044bd2901..548b5aa24510 100644
--- a/offapi/com/sun/star/embed/XComponentSupplier.idl
+++ b/offapi/com/sun/star/embed/XComponentSupplier.idl
@@ -38,7 +38,7 @@
//=============================================================================
/** provides access to a component.
*/
-interface XComponentSupplier: com::sun::star::uno::XInterface
+published interface XComponentSupplier: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** allows to get access to a component.
diff --git a/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl b/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl
index b0e3c68b512c..45f3aef06cd6 100644
--- a/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl
+++ b/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl
@@ -67,7 +67,7 @@
an embedded object based on system clipboard.
</p>
*/
-interface XEmbedObjectClipboardCreator: com::sun::star::uno::XInterface
+published interface XEmbedObjectClipboardCreator: com::sun::star::uno::XInterface
{
// -----------------------------------------------------------------------
/** creates a new object and initializes it from the system clipboard.
diff --git a/offapi/com/sun/star/embed/XEmbedObjectCreator.idl b/offapi/com/sun/star/embed/XEmbedObjectCreator.idl
index 09227bd26aa0..a214851922ad 100644
--- a/offapi/com/sun/star/embed/XEmbedObjectCreator.idl
+++ b/offapi/com/sun/star/embed/XEmbedObjectCreator.idl
@@ -63,7 +63,7 @@
an embedded object.
</p>
*/
-interface XEmbedObjectCreator: com::sun::star::uno::XInterface
+published interface XEmbedObjectCreator: com::sun::star::uno::XInterface
{
// -----------------------------------------------------------------------
/** creates a new object and initializes it as a new one.
diff --git a/offapi/com/sun/star/embed/XEmbedObjectFactory.idl b/offapi/com/sun/star/embed/XEmbedObjectFactory.idl
index f5b73f1d3dc3..67a355054c48 100644
--- a/offapi/com/sun/star/embed/XEmbedObjectFactory.idl
+++ b/offapi/com/sun/star/embed/XEmbedObjectFactory.idl
@@ -61,7 +61,7 @@
This interface provides user with full control over object creation.
</p>
*/
-interface XEmbedObjectFactory: com::sun::star::uno::XInterface
+published interface XEmbedObjectFactory: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** creates a new object and transport parameters for persistent
diff --git a/offapi/com/sun/star/embed/XEmbedPersist.idl b/offapi/com/sun/star/embed/XEmbedPersist.idl
index 6eaf57c21a18..73f807188ba6 100644
--- a/offapi/com/sun/star/embed/XEmbedPersist.idl
+++ b/offapi/com/sun/star/embed/XEmbedPersist.idl
@@ -67,7 +67,7 @@
representation.
</p>
*/
-interface XEmbedPersist: XCommonEmbedPersist
+published interface XEmbedPersist: XCommonEmbedPersist
{
//------------------------------------------------------------------------
/** provides object with a parent storage and a name for object's entry.
diff --git a/offapi/com/sun/star/embed/XEmbeddedClient.idl b/offapi/com/sun/star/embed/XEmbeddedClient.idl
index 1704f719287a..f361ea2d8653 100644
--- a/offapi/com/sun/star/embed/XEmbeddedClient.idl
+++ b/offapi/com/sun/star/embed/XEmbeddedClient.idl
@@ -52,7 +52,7 @@
//============================================================================
/** represents common functionality for embedded clients.
*/
-interface XEmbeddedClient: XComponentSupplier
+published interface XEmbeddedClient: XComponentSupplier
{
//------------------------------------------------------------------------
/** asks client to let the object store itself.
diff --git a/offapi/com/sun/star/embed/XEmbeddedObject.idl b/offapi/com/sun/star/embed/XEmbeddedObject.idl
index 37de00b0221f..e0368736279f 100644
--- a/offapi/com/sun/star/embed/XEmbeddedObject.idl
+++ b/offapi/com/sun/star/embed/XEmbeddedObject.idl
@@ -92,7 +92,7 @@
//============================================================================
/** represents common functionality for embedded objects.
*/
-interface XEmbeddedObject
+published interface XEmbeddedObject
{
// INTERFACES
//
diff --git a/offapi/com/sun/star/embed/XEncryptionProtectedSource.idl b/offapi/com/sun/star/embed/XEncryptionProtectedSource.idl
index 1bcb03110a3b..9a71b99e871b 100644
--- a/offapi/com/sun/star/embed/XEncryptionProtectedSource.idl
+++ b/offapi/com/sun/star/embed/XEncryptionProtectedSource.idl
@@ -42,7 +42,7 @@
//============================================================================
/** This interface allows to set a password for an object.
*/
-interface XEncryptionProtectedSource: com::sun::star::uno::XInterface
+published interface XEncryptionProtectedSource: com::sun::star::uno::XInterface
{
// -----------------------------------------------------------------------
/** sets a password for the object.
diff --git a/offapi/com/sun/star/embed/XExtendedStorageStream.idl b/offapi/com/sun/star/embed/XExtendedStorageStream.idl
index e061c74c7337..397358db57ec 100644
--- a/offapi/com/sun/star/embed/XExtendedStorageStream.idl
+++ b/offapi/com/sun/star/embed/XExtendedStorageStream.idl
@@ -63,7 +63,7 @@
/** This interface allows access to an extended storage stream that might be
transacted.
*/
-interface XExtendedStorageStream
+published interface XExtendedStorageStream
{
// INTERFACES
//
diff --git a/offapi/com/sun/star/embed/XHatchWindow.idl b/offapi/com/sun/star/embed/XHatchWindow.idl
index 735a556ab0f5..33733958f6cd 100644
--- a/offapi/com/sun/star/embed/XHatchWindow.idl
+++ b/offapi/com/sun/star/embed/XHatchWindow.idl
@@ -56,7 +56,7 @@
Thus the window can not resize/move itself.
</p>
*/
-interface XHatchWindow: com::sun::star::lang::XComponent
+published interface XHatchWindow: com::sun::star::lang::XComponent
{
//------------------------------------------------------------------------
/** sets the object that will control resizing/moving, if the object is
diff --git a/offapi/com/sun/star/embed/XHatchWindowController.idl b/offapi/com/sun/star/embed/XHatchWindowController.idl
index d4158db605fc..7ec2e0c5a5bb 100644
--- a/offapi/com/sun/star/embed/XHatchWindowController.idl
+++ b/offapi/com/sun/star/embed/XHatchWindowController.idl
@@ -49,7 +49,7 @@
rectangle size.
</p>
*/
-interface XHatchWindowController: com::sun::star::uno::XInterface
+published interface XHatchWindowController: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** requests window owner to resize/move the window.
diff --git a/offapi/com/sun/star/embed/XHatchWindowFactory.idl b/offapi/com/sun/star/embed/XHatchWindowFactory.idl
index 5f6ebf5d5998..79d8db04832d 100644
--- a/offapi/com/sun/star/embed/XHatchWindowFactory.idl
+++ b/offapi/com/sun/star/embed/XHatchWindowFactory.idl
@@ -55,7 +55,7 @@
/** creates a hatch window implementation.
*/
-interface XHatchWindowFactory: com::sun::star::uno::XInterface
+published interface XHatchWindowFactory: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** creates a new hatch window instance.
diff --git a/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl b/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl
index d3a05b0b9de5..1f2cdcf132f9 100644
--- a/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl
+++ b/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl
@@ -95,7 +95,7 @@
opened ( it is locked by hierarchical access ).
</p>
*/
-interface XHierarchicalStorageAccess
+published interface XHierarchicalStorageAccess
{
// METHODS
//
diff --git a/offapi/com/sun/star/embed/XInplaceObject.idl b/offapi/com/sun/star/embed/XInplaceObject.idl
index 53462a78fe88..3ca6bdf359fb 100644
--- a/offapi/com/sun/star/embed/XInplaceObject.idl
+++ b/offapi/com/sun/star/embed/XInplaceObject.idl
@@ -52,7 +52,7 @@
//============================================================================
/** represents common functionality for inplace embedded objects.
*/
-interface XInplaceObject: com::sun::star::uno::XInterface
+published interface XInplaceObject: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** sets the visible part of the inplace object.
diff --git a/offapi/com/sun/star/embed/XInsertObjectDialog.idl b/offapi/com/sun/star/embed/XInsertObjectDialog.idl
index 84ee0816ea8d..7b98a1c767a2 100644
--- a/offapi/com/sun/star/embed/XInsertObjectDialog.idl
+++ b/offapi/com/sun/star/embed/XInsertObjectDialog.idl
@@ -62,7 +62,7 @@
//=============================================================================
/** allows to create and initialize a new embedded object using GUI dialog.
*/
-interface XInsertObjectDialog: com::sun::star::uno::XInterface
+published interface XInsertObjectDialog: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** creates a new object using GUI dialog.
diff --git a/offapi/com/sun/star/embed/XLinkCreator.idl b/offapi/com/sun/star/embed/XLinkCreator.idl
index 676d112848c9..be4bbe613288 100644
--- a/offapi/com/sun/star/embed/XLinkCreator.idl
+++ b/offapi/com/sun/star/embed/XLinkCreator.idl
@@ -62,7 +62,7 @@
it will be detected.
</p>
*/
-interface XLinkCreator: com::sun::star::uno::XInterface
+published interface XLinkCreator: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** creates a new object based on
diff --git a/offapi/com/sun/star/embed/XLinkFactory.idl b/offapi/com/sun/star/embed/XLinkFactory.idl
index 73cd218d35ca..cd77fbfe0dbb 100644
--- a/offapi/com/sun/star/embed/XLinkFactory.idl
+++ b/offapi/com/sun/star/embed/XLinkFactory.idl
@@ -58,7 +58,7 @@
//============================================================================
/** allows to create and initialize a new link of specified type.
*/
-interface XLinkFactory: com::sun::star::uno::XInterface
+published interface XLinkFactory: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** creates a new link and transport parameters for persistent
diff --git a/offapi/com/sun/star/embed/XLinkageSupport.idl b/offapi/com/sun/star/embed/XLinkageSupport.idl
index eb321989d182..a4a53c36e7a8 100644
--- a/offapi/com/sun/star/embed/XLinkageSupport.idl
+++ b/offapi/com/sun/star/embed/XLinkageSupport.idl
@@ -54,7 +54,7 @@
//============================================================================
/** specifies an additional implementation for linked embedded object support.
*/
-interface XLinkageSupport: XCommonEmbedPersist
+published interface XLinkageSupport: XCommonEmbedPersist
{
//------------------------------------------------------------------------
/** breaks the link and provides the object with a parent storage and a
diff --git a/offapi/com/sun/star/embed/XOLESimpleStorage.idl b/offapi/com/sun/star/embed/XOLESimpleStorage.idl
index 9f8b19573953..ac39370e8a8f 100644
--- a/offapi/com/sun/star/embed/XOLESimpleStorage.idl
+++ b/offapi/com/sun/star/embed/XOLESimpleStorage.idl
@@ -58,7 +58,7 @@ module com { module sun { module star { module embed {
subcomponents are either OLE storages themself or streams.
</p>
*/
-interface XOLESimpleStorage
+published interface XOLESimpleStorage
{
//INTERFACES
//
diff --git a/offapi/com/sun/star/embed/XOptimizedStorage.idl b/offapi/com/sun/star/embed/XOptimizedStorage.idl
index e43a63bb6586..d51371fadfbb 100644
--- a/offapi/com/sun/star/embed/XOptimizedStorage.idl
+++ b/offapi/com/sun/star/embed/XOptimizedStorage.idl
@@ -97,7 +97,7 @@
time and will be depricated soon!
Another solution will be introduced as final one.
*/
-interface XOptimizedStorage
+published interface XOptimizedStorage
{
// -----------------------------------------------------------------------
/** allows to insert a raw stream representing nonencrypted stream with
diff --git a/offapi/com/sun/star/embed/XPackageStructureCreator.idl b/offapi/com/sun/star/embed/XPackageStructureCreator.idl
index 193232cdfdc1..c76d4c787cc7 100644
--- a/offapi/com/sun/star/embed/XPackageStructureCreator.idl
+++ b/offapi/com/sun/star/embed/XPackageStructureCreator.idl
@@ -42,7 +42,7 @@
//=============================================================================
/** allows to convert file system folder tree in to a package.
*/
-interface XPackageStructureCreator: com::sun::star::uno::XInterface
+published interface XPackageStructureCreator: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** converts file system folder tree in to a package.
diff --git a/offapi/com/sun/star/embed/XPersistanceHolder.idl b/offapi/com/sun/star/embed/XPersistanceHolder.idl
index f6d171218549..5528fe62e143 100644
--- a/offapi/com/sun/star/embed/XPersistanceHolder.idl
+++ b/offapi/com/sun/star/embed/XPersistanceHolder.idl
@@ -46,7 +46,7 @@
//=============================================================================
/** allows to disconnect an object from its persistence.
*/
-interface XPersistanceHolder: com::sun::star::uno::XInterface
+published interface XPersistanceHolder: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** disconnects the object from the persistance.
diff --git a/offapi/com/sun/star/embed/XRelationshipAccess.idl b/offapi/com/sun/star/embed/XRelationshipAccess.idl
index 8a527df38a4d..3c934caf1f33 100644
--- a/offapi/com/sun/star/embed/XRelationshipAccess.idl
+++ b/offapi/com/sun/star/embed/XRelationshipAccess.idl
@@ -62,7 +62,7 @@
this tag is used as a uniqued identified of an entry.
</p>
*/
-interface XRelationshipAccess : ::com::sun::star::uno::XInterface
+published interface XRelationshipAccess : ::com::sun::star::uno::XInterface
{
// -----------------------------------------------------------------------
/** allows to detect whether there is an entry with specified value of
diff --git a/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl b/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl
index e50c54c182ff..91a47e8f6288 100644
--- a/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl
+++ b/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl
@@ -44,7 +44,7 @@ module com { module sun { module star { module embed {
/** broadcasts message in case embedded object object changes it's state.
*/
-interface XStateChangeBroadcaster: com::sun::star::uno::XInterface
+published interface XStateChangeBroadcaster: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** adds the specified listener to receive events about states change
diff --git a/offapi/com/sun/star/embed/XStateChangeListener.idl b/offapi/com/sun/star/embed/XStateChangeListener.idl
index 13bde974ceaf..3c552de33222 100644
--- a/offapi/com/sun/star/embed/XStateChangeListener.idl
+++ b/offapi/com/sun/star/embed/XStateChangeListener.idl
@@ -48,7 +48,7 @@ module com { module sun { module star { module embed {
/** makes it possible to receive events when an embedded object changes it's
state.
*/
-interface XStateChangeListener: com::sun::star::lang::XEventListener
+published interface XStateChangeListener: com::sun::star::lang::XEventListener
{
//------------------------------------------------------------------------
/** is called just before the object changes state.
diff --git a/offapi/com/sun/star/embed/XStorage.idl b/offapi/com/sun/star/embed/XStorage.idl
index a03190caddab..0a98cfa3e8eb 100644
--- a/offapi/com/sun/star/embed/XStorage.idl
+++ b/offapi/com/sun/star/embed/XStorage.idl
@@ -91,7 +91,7 @@
//============================================================================
/** This interface represents main storage functionality.
*/
-interface XStorage
+published interface XStorage
{
// INTERFACES
//
diff --git a/offapi/com/sun/star/embed/XStorageRawAccess.idl b/offapi/com/sun/star/embed/XStorageRawAccess.idl
index 64031325f628..b70b2e3c1235 100644
--- a/offapi/com/sun/star/embed/XStorageRawAccess.idl
+++ b/offapi/com/sun/star/embed/XStorageRawAccess.idl
@@ -79,7 +79,7 @@
//============================================================================
/** This interface represents main storage functionality.
*/
-interface XStorageRawAccess
+published interface XStorageRawAccess
{
// -----------------------------------------------------------------------
/** allows to get a plain raw stream representing a package stream.
diff --git a/offapi/com/sun/star/embed/XTransactedObject.idl b/offapi/com/sun/star/embed/XTransactedObject.idl
index afefd0f2d2c5..80f86187a7c6 100644
--- a/offapi/com/sun/star/embed/XTransactedObject.idl
+++ b/offapi/com/sun/star/embed/XTransactedObject.idl
@@ -46,7 +46,7 @@
//============================================================================
/** allows transacted access to an object.
*/
-interface XTransactedObject: com::sun::star::uno::XInterface
+published interface XTransactedObject: com::sun::star::uno::XInterface
{
// -----------------------------------------------------------------------
/** commits the changes made for object.
diff --git a/offapi/com/sun/star/embed/XTransactionBroadcaster.idl b/offapi/com/sun/star/embed/XTransactionBroadcaster.idl
index 66e62538f083..fb5b7d2acc06 100644
--- a/offapi/com/sun/star/embed/XTransactionBroadcaster.idl
+++ b/offapi/com/sun/star/embed/XTransactionBroadcaster.idl
@@ -44,7 +44,7 @@ module com { module sun { module star { module embed {
/** broadcasts messege in case transacted object is commited or reverted.
*/
-interface XTransactionBroadcaster: com::sun::star::uno::XInterface
+published interface XTransactionBroadcaster: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** adds the specified listener to receive events about commits and
diff --git a/offapi/com/sun/star/embed/XTransactionListener.idl b/offapi/com/sun/star/embed/XTransactionListener.idl
index acfa889386ca..89e80956cf11 100644
--- a/offapi/com/sun/star/embed/XTransactionListener.idl
+++ b/offapi/com/sun/star/embed/XTransactionListener.idl
@@ -48,7 +48,7 @@ module com { module sun { module star { module embed {
/** makes it possible to receive events when a transacted object is commited
or reverted.
*/
-interface XTransactionListener: com::sun::star::lang::XEventListener
+published interface XTransactionListener: com::sun::star::lang::XEventListener
{
//------------------------------------------------------------------------
/** is called just before the object is commited.
diff --git a/offapi/com/sun/star/embed/XTransferableSupplier.idl b/offapi/com/sun/star/embed/XTransferableSupplier.idl
index 76034df05231..d22c6fb27769 100644
--- a/offapi/com/sun/star/embed/XTransferableSupplier.idl
+++ b/offapi/com/sun/star/embed/XTransferableSupplier.idl
@@ -40,7 +40,7 @@
<type scope="com::sun::star::datatransfer">XTransferable</type>
implementation from the object.
*/
-interface XTransferableSupplier: com::sun::star::uno::XInterface
+published interface XTransferableSupplier: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** allows to get access to
diff --git a/offapi/com/sun/star/embed/XVisualObject.idl b/offapi/com/sun/star/embed/XVisualObject.idl
index 62430e41778a..bed94da4fa7d 100644
--- a/offapi/com/sun/star/embed/XVisualObject.idl
+++ b/offapi/com/sun/star/embed/XVisualObject.idl
@@ -55,7 +55,7 @@
//=============================================================================
/** represents common visualisation functionality for embedded objects.
*/
-interface XVisualObject: ::com::sun::star::uno::XInterface
+published interface XVisualObject: ::com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** sets the size of object's visual area.
diff --git a/offapi/com/sun/star/embed/XWindowSupplier.idl b/offapi/com/sun/star/embed/XWindowSupplier.idl
index 3ff344ab60d9..e878a65d21d2 100644
--- a/offapi/com/sun/star/embed/XWindowSupplier.idl
+++ b/offapi/com/sun/star/embed/XWindowSupplier.idl
@@ -38,7 +38,7 @@
//============================================================================
/** provides access to a vcl window implementation.
*/
-interface XWindowSupplier: com::sun::star::uno::XInterface
+published interface XWindowSupplier: com::sun::star::uno::XInterface
{
//------------------------------------------------------------------------
/** allows to get access to a vcl window implementation.
diff --git a/offapi/com/sun/star/embed/makefile.mk b/offapi/com/sun/star/embed/makefile.mk
index 404f14ceab1c..349017452ef3 100644
--- a/offapi/com/sun/star/embed/makefile.mk
+++ b/offapi/com/sun/star/embed/makefile.mk
@@ -57,6 +57,7 @@ IDLFILES=\
Storage.idl\
StorageStream.idl\
StorageFactory.idl\
+ StorageFormats.idl\
VerbAttributes.idl\
VisualRepresentation.idl\
VerbDescriptor.idl\
diff --git a/offapi/com/sun/star/packages/NoEncryptionException.idl b/offapi/com/sun/star/packages/NoEncryptionException.idl
index 5d057c91cc8f..cffecf7bd637 100644
--- a/offapi/com/sun/star/packages/NoEncryptionException.idl
+++ b/offapi/com/sun/star/packages/NoEncryptionException.idl
@@ -41,7 +41,7 @@
// DocMerge from xml: exception com::sun::star::packages::NoEncryptionException
/** This exception can be thrown in case object is not encrypted one as expected.
*/
-exception NoEncryptionException: com::sun::star::uno::Exception
+published exception NoEncryptionException: com::sun::star::uno::Exception
{
};
diff --git a/offapi/com/sun/star/packages/NoRawFormatException.idl b/offapi/com/sun/star/packages/NoRawFormatException.idl
index 111b8fdcc90c..a2730b41da62 100644
--- a/offapi/com/sun/star/packages/NoRawFormatException.idl
+++ b/offapi/com/sun/star/packages/NoRawFormatException.idl
@@ -42,7 +42,7 @@
/** This exception can be thrown in case provided stream is not a raw stream
representing encrypted package stream.
*/
-exception NoRawFormatException: com::sun::star::io::IOException
+published exception NoRawFormatException: com::sun::star::io::IOException
{
};
diff --git a/offapi/com/sun/star/packages/WrongPasswordException.idl b/offapi/com/sun/star/packages/WrongPasswordException.idl
index 2e014e310dfb..954e0bd68afc 100644
--- a/offapi/com/sun/star/packages/WrongPasswordException.idl
+++ b/offapi/com/sun/star/packages/WrongPasswordException.idl
@@ -41,7 +41,7 @@
// DocMerge from xml: exception com::sun::star::packages::WrongPasswordException
/** This exception can be thrown in case wrong password was provided.
*/
-exception WrongPasswordException: com::sun::star::uno::Exception
+published exception WrongPasswordException: com::sun::star::uno::Exception
{
};
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
index 8c76a2dadd9f..d3db05206a6a 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
@@ -134,7 +134,7 @@
<value xml:lang="en-US">~Hyphenation...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ObjectTitleDescription" oor:op="replace">
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu
index 2925c2a97802..b4a2fab23fcd 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu
@@ -5,7 +5,6 @@
<node oor:name="Commands">
<node oor:name=".uno:Polygon" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Polygon, filled</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -14,7 +13,6 @@
</node>
<node oor:name=".uno:ColorView" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Black &amp; White View</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -23,19 +21,16 @@
</node>
<node oor:name=".uno:RenamePage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Rename Slide</value>
</prop>
</node>
<node oor:name=".uno:RenameLayer" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Rename</value>
</prop>
</node>
<node oor:name=".uno:Presentation" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Slide Show</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -44,7 +39,6 @@
</node>
<node oor:name=".uno:RehearseTimings" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Rehearse Timings</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -53,7 +47,6 @@
</node>
<node oor:name=".uno:Dia" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">SlideTransition</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -62,7 +55,6 @@
</node>
<node oor:name=".uno:ShowSlide" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Sho~w Slide</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -71,7 +63,6 @@
</node>
<node oor:name=".uno:HideSlide" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Hide Slide</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -80,19 +71,16 @@
</node>
<node oor:name=".uno:TextAttributes" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Te~xt...</value>
</prop>
</node>
<node oor:name=".uno:PagesPerRow" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Slides Per Row</value>
</prop>
</node>
<node oor:name=".uno:TextFitToSizeTool" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Fit Text to Frame</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -101,7 +89,6 @@
</node>
<node oor:name=".uno:VerticalTextFitToSizeTool" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Fit Vertical Text to Frame</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -110,7 +97,6 @@
</node>
<node oor:name=".uno:Objects3DToolbox" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">3D Objects</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -119,7 +105,6 @@
</node>
<node oor:name=".uno:Cube" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Cube</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -128,7 +113,6 @@
</node>
<node oor:name=".uno:Sphere" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Sphere</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -137,7 +121,6 @@
</node>
<node oor:name=".uno:Cylinder" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Cylinder</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -146,7 +129,6 @@
</node>
<node oor:name=".uno:Cone" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Cone</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -155,7 +137,6 @@
</node>
<node oor:name=".uno:Cyramid" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Pyramid</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -164,7 +145,6 @@
</node>
<node oor:name=".uno:GlueEditMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Glue Points</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -173,7 +153,6 @@
</node>
<node oor:name=".uno:GlueInsertPoint" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Insert Glue Point</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -182,22 +161,19 @@
</node>
<node oor:name=".uno:GluePercent" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Glue Point Relative</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:GlueEscapeDirection" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Exit Direction</value>
</prop>
</node>
<node oor:name=".uno:GlueHorzAlignCenter" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Glue Point Horizontal Center</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -206,7 +182,6 @@
</node>
<node oor:name=".uno:GlueHorzAlignLeft" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Glue Point Horizontal Left</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -215,7 +190,6 @@
</node>
<node oor:name=".uno:GlueHorzAlignRight" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Glue Point Horizontal Right</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -224,7 +198,6 @@
</node>
<node oor:name=".uno:GlueVertAlignCenter" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Glue Point Vertical Center</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -233,7 +206,6 @@
</node>
<node oor:name=".uno:GlueVertAlignTop" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Glue Point Vertical Top</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -242,7 +214,6 @@
</node>
<node oor:name=".uno:GlueVertAlignBottom" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Glue Point Vertical Bottom</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -251,7 +222,6 @@
</node>
<node oor:name=".uno:Shell3D" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Shell</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -260,7 +230,6 @@
</node>
<node oor:name=".uno:Torus" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Torus</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -269,7 +238,6 @@
</node>
<node oor:name=".uno:HalfSphere" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Half-Sphere</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -278,7 +246,6 @@
</node>
<node oor:name=".uno:GlueEscapeDirectionLeft" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Exit Direction Left</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -287,7 +254,6 @@
</node>
<node oor:name=".uno:GlueEscapeDirectionRight" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Exit Direction Right</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -296,7 +262,6 @@
</node>
<node oor:name=".uno:GlueEscapeDirectionTop" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Exit Direction Top</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -305,7 +270,6 @@
</node>
<node oor:name=".uno:GlueEscapeDirectionBottom" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Exit Direction Bottom</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -314,7 +278,6 @@
</node>
<node oor:name=".uno:InsertToolbox" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Insert</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -323,25 +286,21 @@
</node>
<node oor:name=".uno:Morphing" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Cross-fading...</value>
</prop>
</node>
<node oor:name=".uno:MeasureAttributes" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Dimen~sions...</value>
</prop>
</node>
<node oor:name=".uno:GridFront" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Grid to ~Front</value>
</prop>
</node>
<node oor:name=".uno:HelplinesVisible" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Display Guides</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -350,13 +309,11 @@
</node>
<node oor:name=".uno:HelplinesFront" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Guides to ~Front</value>
</prop>
</node>
<node oor:name=".uno:BeforeObject" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">In Front of ~Object</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -365,13 +322,11 @@
</node>
<node oor:name=".uno:PreviewWindow" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Pre~view</value>
</prop>
</node>
<node oor:name=".uno:CustomAnimation" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Custom Animation...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -380,46 +335,39 @@
</node>
<node oor:name=".uno:CustomAnimationSchemes" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Animation Schemes...</value>
</prop>
</node>
<node oor:name=".uno:SlideChangeWindow" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Slide Transition...</value>
</prop>
</node>
<node oor:name=".uno:ConnectorAttributes" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Connector...</value>
</prop>
</node>
<node oor:name=".uno:PresentationDialog" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">S~lide Show Settings...</value>
</prop>
</node>
<node oor:name=".uno:Hyphenation" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Hyphenation</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:NewRouting" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Reset Routing</value>
</prop>
</node>
<node oor:name=".uno:DuplicatePage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">D~uplicate Slide</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -428,7 +376,6 @@
</node>
<node oor:name=".uno:ExpandPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">E~xpand Slide</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -437,13 +384,11 @@
</node>
<node oor:name=".uno:SummaryPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Su~mmary Slide</value>
</prop>
</node>
<node oor:name=".uno:LeaveAllGroups" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Exit All Groups</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -452,7 +397,6 @@
</node>
<node oor:name=".uno:ParaspaceIncrease" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Increase Spacing</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -461,7 +405,6 @@
</node>
<node oor:name=".uno:ParaspaceDecrease" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Decrease Spacing</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -470,85 +413,71 @@
</node>
<node oor:name=".uno:SlideMasterPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Slide Master</value>
</prop>
</node>
<node oor:name=".uno:HandoutMasterPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Handout Master</value>
</prop>
</node>
<node oor:name=".uno:NotesMasterPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Notes Master</value>
</prop>
</node>
<node oor:name=".uno:TitleMasterPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Title Slide Master</value>
</prop>
</node>
<node oor:name=".uno:InsertPageQuick" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Insert Slide Direct</value>
</prop>
</node>
<node oor:name=".uno:InsertDateFieldVar" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Dat~e (variable)</value>
</prop>
</node>
<node oor:name=".uno:InsertDateFieldFix" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Date (fixed)</value>
</prop>
</node>
<node oor:name=".uno:InsertTimeFieldVar" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">T~ime (variable)</value>
</prop>
</node>
<node oor:name=".uno:InsertTimeFieldFix" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Time (fixed)</value>
</prop>
</node>
<node oor:name=".uno:InsertPageField" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Page Number</value>
</prop>
</node>
<node oor:name=".uno:InsertPagesField" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Page ~Count</value>
</prop>
</node>
<node oor:name=".uno:ModifyField" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">F~ields...</value>
</prop>
</node>
<node oor:name=".uno:InsertFileField" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~File Name</value>
</prop>
</node>
<node oor:name=".uno:InsertAuthorField" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Author</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -557,49 +486,41 @@
</node>
<node oor:name=".uno:CustomShowDialog" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Custom Slide Show...</value>
</prop>
</node>
<node oor:name=".uno:OutputQualityColor" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Color</value>
</prop>
</node>
<node oor:name=".uno:OutputQualityGrayscale" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Grayscale</value>
</prop>
</node>
<node oor:name=".uno:OutputQualityBlackWhite" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Black and White</value>
</prop>
</node>
<node oor:name=".uno:PreviewQualityColor" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Color</value>
</prop>
</node>
<node oor:name=".uno:PreviewQualityGrayscale" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Grayscale</value>
</prop>
</node>
<node oor:name=".uno:PreviewQualityBlackWhite" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Black and White</value>
</prop>
</node>
<node oor:name=".uno:ConvertInto3D" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">To 3~D</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -608,7 +529,6 @@
</node>
<node oor:name=".uno:ConvertInto3DLatheFast" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">To 3D ~Rotation Object</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -617,61 +537,51 @@
</node>
<node oor:name=".uno:ConvertIntoBitmap" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">To ~Bitmap</value>
</prop>
</node>
<node oor:name=".uno:ConvertIntoMetaFile" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">To ~Metafile</value>
</prop>
</node>
<node oor:name=".uno:PackAndGo" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Pack</value>
</prop>
</node>
<node oor:name=".uno:convert_to_contour" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">To C~ontour</value>
</prop>
</node>
<node oor:name=".uno:EditHyperlink" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">H~yperlink...</value>
</prop>
</node>
<node oor:name=".uno:PageSetup" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Page...</value>
</prop>
</node>
- <node oor:name=".uno:PasteSpecial" oor:op="replace">
+ <node oor:name=".uno:PasteSpecial" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Paste ~Special...</value>
</prop>
</node>
<node oor:name=".uno:CopyObjects" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Duplicat~e...</value>
</prop>
</node>
<node oor:name=".uno:ManageLinks" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Lin~ks...</value>
</prop>
</node>
<node oor:name=".uno:ConvertInto3DLathe" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">In 3D Rotation Object</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -680,37 +590,31 @@
</node>
<node oor:name=".uno:DrawingMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Drawing View</value>
</prop>
</node>
<node oor:name=".uno:OutlineMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Outline</value>
</prop>
</node>
<node oor:name=".uno:OutputQualityContrast" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~High Contrast</value>
</prop>
</node>
<node oor:name=".uno:DiaMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Sli~de Sorter</value>
</prop>
</node>
<node oor:name=".uno:PreviewQualityContrast" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~High Contrast</value>
</prop>
</node>
<node oor:name=".uno:InsertPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Slid~e</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -719,7 +623,6 @@
</node>
<node oor:name=".uno:ImportFromFile" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~File...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -728,7 +631,6 @@
</node>
<node oor:name=".uno:ZoomPanning" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Shift</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -737,13 +639,11 @@
</node>
<node oor:name=".uno:PixelMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Pixel Mode</value>
</prop>
</node>
<node oor:name=".uno:ObjectPosition" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Arrange</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -752,25 +652,21 @@
</node>
<node oor:name=".uno:Combine" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Comb~ine</value>
</prop>
</node>
<node oor:name=".uno:ObjectTitleDescription" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Description...</value>
</prop>
</node>
<node oor:name=".uno:NameGroup" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Name...</value>
</prop>
</node>
<node oor:name=".uno:ConnectorToolbox" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Connector</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -779,7 +675,6 @@
</node>
<node oor:name=".uno:Forward" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Bring ~Forward</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -788,7 +683,6 @@
</node>
<node oor:name=".uno:Backward" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Send Back~ward</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -797,19 +691,16 @@
</node>
<node oor:name=".uno:MirrorVert" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Vertically</value>
</prop>
</node>
<node oor:name=".uno:MirrorHorz" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Horizontally</value>
</prop>
</node>
<node oor:name=".uno:ChangeBezier" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">To ~Curve</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -818,7 +709,6 @@
</node>
<node oor:name=".uno:ChangePolygon" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">To ~Polygon</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -827,25 +717,21 @@
</node>
<node oor:name=".uno:CapturePoint" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Insert Snap Point/Line...</value>
</prop>
</node>
<node oor:name=".uno:ShowRuler" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Ruler</value>
</prop>
</node>
<node oor:name=".uno:InsertLayer" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Layer...</value>
</prop>
</node>
<node oor:name=".uno:ModifyPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Slide ~Layout...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -854,25 +740,21 @@
</node>
<node oor:name=".uno:ModifyLayer" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Layer...</value>
</prop>
</node>
<node oor:name=".uno:PageMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Normal</value>
</prop>
</node>
<node oor:name=".uno:LayerMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Layer</value>
</prop>
</node>
<node oor:name=".uno:MeasureLine" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Dimension Line</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -881,13 +763,11 @@
</node>
<node oor:name=".uno:MasterPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Master</value>
</prop>
</node>
<node oor:name=".uno:DiaEffect" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Slide Effects</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -896,7 +776,6 @@
</node>
<node oor:name=".uno:DiaSpeed" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Transition Speed</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -905,7 +784,6 @@
</node>
<node oor:name=".uno:DiaAuto" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">AutoTransition</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -914,7 +792,6 @@
</node>
<node oor:name=".uno:DiaTime" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Time</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -923,7 +800,6 @@
</node>
<node oor:name=".uno:Connector" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Connector</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -932,7 +808,6 @@
</node>
<node oor:name=".uno:ActionMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Allow Interaction</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -941,7 +816,6 @@
</node>
<node oor:name=".uno:AnimationObjects" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Animated Image...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -950,7 +824,6 @@
</node>
<node oor:name=".uno:AnimationEffects" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Interaction...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -959,7 +832,6 @@
</node>
<node oor:name=".uno:PresentationLayout" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Slide D~esign...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -968,49 +840,41 @@
</node>
<node oor:name=".uno:NotesMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Notes ~Page</value>
</prop>
</node>
<node oor:name=".uno:HandoutMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">H~andout Page</value>
</prop>
</node>
<node oor:name=".uno:DeletePage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">D~elete Slide</value>
</prop>
</node>
<node oor:name=".uno:DeleteLayer" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Delete</value>
</prop>
</node>
<node oor:name=".uno:Dismantle" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Split</value>
</prop>
</node>
<node oor:name=".uno:PageStatus" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Slide/Layer</value>
</prop>
</node>
<node oor:name=".uno:LayoutStatus" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Layout</value>
</prop>
</node>
<node oor:name=".uno:CrookRotate" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Set in Circle (perspective)</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1019,7 +883,6 @@
</node>
<node oor:name=".uno:CrookSlant" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Set to circle (slant)</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1028,25 +891,21 @@
</node>
<node oor:name=".uno:CrookStretch" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Set in Circle (distort)</value>
</prop>
</node>
<node oor:name=".uno:Connect" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">C~onnect</value>
</prop>
</node>
<node oor:name=".uno:Break" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Break</value>
</prop>
</node>
<node oor:name=".uno:AdvancedMode" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Effects</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1055,7 +914,6 @@
</node>
<node oor:name=".uno:InteractiveTransparence" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Transparency</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1064,7 +922,6 @@
</node>
<node oor:name=".uno:InteractiveGradient" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Gradient</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1073,7 +930,6 @@
</node>
<node oor:name=".uno:Shear" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Distort</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1082,7 +938,6 @@
</node>
<node oor:name=".uno:BehindObject" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Be~hind Object</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1091,7 +946,6 @@
</node>
<node oor:name=".uno:ReverseOrder" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Reverse</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1100,7 +954,6 @@
</node>
<node oor:name=".uno:ConnectorArrowStart" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Connector Starts with Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1109,7 +962,6 @@
</node>
<node oor:name=".uno:ConnectorArrowEnd" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Connector Ends with Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1118,7 +970,6 @@
</node>
<node oor:name=".uno:ConnectorArrows" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Connector with Arrows</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1127,7 +978,6 @@
</node>
<node oor:name=".uno:ConnectorCircleStart" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Connector Starts with Circle</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1136,7 +986,6 @@
</node>
<node oor:name=".uno:ConnectorCircleEnd" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Connector Ends with Circle</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1145,7 +994,6 @@
</node>
<node oor:name=".uno:ConnectorCircles" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Connector with Circles</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1154,7 +1002,6 @@
</node>
<node oor:name=".uno:TextToolbox" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Text</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1163,7 +1010,6 @@
</node>
<node oor:name=".uno:ConnectorLine" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Straight Connector</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1172,7 +1018,6 @@
</node>
<node oor:name=".uno:RectangleToolbox" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Rectangle</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1181,7 +1026,6 @@
</node>
<node oor:name=".uno:ConnectorLineArrowStart" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Straight Connector starts with Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1190,7 +1034,6 @@
</node>
<node oor:name=".uno:EllipseToolbox" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Ellipse</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1199,7 +1042,6 @@
</node>
<node oor:name=".uno:ConnectorLineArrowEnd" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Straight Connector ends with Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1208,7 +1050,6 @@
</node>
<node oor:name=".uno:LineToolbox" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Curve</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1217,7 +1058,6 @@
</node>
<node oor:name=".uno:ConnectorLineArrows" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Straight Connector with Arrows</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1226,7 +1066,6 @@
</node>
<node oor:name=".uno:ConnectorLineCircleStart" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Straight Connector starts with Circle</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1235,7 +1074,6 @@
</node>
<node oor:name=".uno:ConnectorLineCircleEnd" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Straight Connector ends with Circle</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1244,7 +1082,6 @@
</node>
<node oor:name=".uno:ConnectorLineCircles" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Straight Connector with Circles</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1253,7 +1090,6 @@
</node>
<node oor:name=".uno:ConnectorCurve" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Curved Connector</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1262,7 +1098,6 @@
</node>
<node oor:name=".uno:ConnectorCurveArrowStart" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Curved Connector Starts with Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1271,7 +1106,6 @@
</node>
<node oor:name=".uno:ConnectorCurveArrowEnd" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Curved Connector Ends with Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1280,7 +1114,6 @@
</node>
<node oor:name=".uno:ConnectorCurveArrows" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Curved Connector with Arrows</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1289,7 +1122,6 @@
</node>
<node oor:name=".uno:ConnectorCurveCircleStart" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Curved Connector Starts with Circle</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1298,7 +1130,6 @@
</node>
<node oor:name=".uno:ConnectorCurveCircleEnd" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Curved Connector Ends with Circle</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1307,7 +1138,6 @@
</node>
<node oor:name=".uno:ConnectorCurveCircles" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Curved Connector with Circles</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1316,7 +1146,6 @@
</node>
<node oor:name=".uno:ConnectorLines" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line Connector</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1325,7 +1154,6 @@
</node>
<node oor:name=".uno:ConnectorLinesArrowStart" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line Connector Starts with Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1334,7 +1162,6 @@
</node>
<node oor:name=".uno:ConnectorLinesArrowEnd" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line Connector Ends with Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1343,7 +1170,6 @@
</node>
<node oor:name=".uno:ConnectorLinesArrows" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line Connector with Arrows</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1352,7 +1178,6 @@
</node>
<node oor:name=".uno:ConnectorLinesCircleStart" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line Connector Starts with Circle</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1361,7 +1186,6 @@
</node>
<node oor:name=".uno:ConnectorLinesCircleEnd" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line Connector Ends with Circle</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1370,7 +1194,6 @@
</node>
<node oor:name=".uno:ConnectorLinesCircles" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line Connector with Circles</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1379,7 +1202,6 @@
</node>
<node oor:name=".uno:GraphicDraft" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Picture Placeholders</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1388,7 +1210,6 @@
</node>
<node oor:name=".uno:FillDraft" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Contour Mode</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1397,7 +1218,6 @@
</node>
<node oor:name=".uno:TextDraft" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Text Placeholders</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1406,7 +1226,6 @@
</node>
<node oor:name=".uno:LineDraft" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line Contour Only</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1415,7 +1234,6 @@
</node>
<node oor:name=".uno:HandlesDraft" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Simple Handles</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1424,7 +1242,6 @@
</node>
<node oor:name=".uno:SolidCreate" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Modify Object with Attributes</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1433,7 +1250,6 @@
</node>
<node oor:name=".uno:HelplinesUse" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Snap to Guides</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1442,7 +1258,6 @@
</node>
<node oor:name=".uno:SnapBorder" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Snap to Page Margins</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1451,7 +1266,6 @@
</node>
<node oor:name=".uno:SnapFrame" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Snap to Object Border</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1460,7 +1274,6 @@
</node>
<node oor:name=".uno:SnapPoints" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Snap to Object Points</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1469,7 +1282,6 @@
</node>
<node oor:name=".uno:QuickEdit" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Allow Quick Editing</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1478,7 +1290,6 @@
</node>
<node oor:name=".uno:PickThrough" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Select Text Area Only</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1487,49 +1298,41 @@
</node>
<node oor:name=".uno:ConvertTo1BitThreshold" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">1 Bit Threshold</value>
</prop>
</node>
<node oor:name=".uno:ConvertTo1BitMatrix" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">1 Bit Dithered</value>
</prop>
</node>
<node oor:name=".uno:ConvertTo4BitGrays" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">4 Bit grayscales</value>
</prop>
</node>
<node oor:name=".uno:ConvertTo4BitColors" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">4 Bit color palette</value>
</prop>
</node>
<node oor:name=".uno:ConvertTo8BitGrays" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">8 Bit Grayscales</value>
</prop>
</node>
<node oor:name=".uno:ConvertTo8BitColors" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">8 Bit color palette</value>
</prop>
</node>
<node oor:name=".uno:ConvertToTrueColor" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">24 Bit True Color</value>
</prop>
</node>
<node oor:name=".uno:BigHandles" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Large Handles</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1538,7 +1341,6 @@
</node>
<node oor:name=".uno:DoubleClickTextEdit" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Double-click to edit Text</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1547,7 +1349,6 @@
</node>
<node oor:name=".uno:ClickChangeRotation" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Rotation Mode after Clicking Object</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1556,7 +1357,6 @@
</node>
<node oor:name=".uno:ArrowsToolbox" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Lines and Arrows</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1565,7 +1365,6 @@
</node>
<node oor:name=".uno:LineArrowStart" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line Starts with Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1574,7 +1373,6 @@
</node>
<node oor:name=".uno:LineArrowEnd" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line Ends with Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1583,7 +1381,6 @@
</node>
<node oor:name=".uno:LineArrows" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line with Arrows</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1592,7 +1389,6 @@
</node>
<node oor:name=".uno:LineArrowCircle" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line with Arrow/Circle</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1601,7 +1397,6 @@
</node>
<node oor:name=".uno:LineCircleArrow" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line with Circle/Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1610,7 +1405,6 @@
</node>
<node oor:name=".uno:LineArrowSquare" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line with Arrow/Square</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1619,7 +1413,6 @@
</node>
<node oor:name=".uno:LineSquareArrow" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Line with Square/Arrow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1628,17 +1421,14 @@
</node>
<node oor:name=".uno:Mirror" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Flip</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
<value>1</value>
</prop>
</node>
-
<node oor:name=".uno:InsertMasterPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">New Master</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1647,7 +1437,6 @@
</node>
<node oor:name=".uno:DeleteMasterPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Delete Master</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1656,7 +1445,6 @@
</node>
<node oor:name=".uno:RenameMasterPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Rename Master</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
@@ -1665,19 +1453,16 @@
</node>
<node oor:name=".uno:CloseMasterView" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Close Master View</value>
</prop>
</node>
<node oor:name=".uno:SendMailDocAsMS" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">E-mail as ~Microsoft PowerPoint Presentation...</value>
</prop>
</node>
<node oor:name=".uno:SendMailDocAsOOo" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">E-mail as ~OpenDocument Presentation...</value>
</prop>
</node>
@@ -1685,61 +1470,51 @@
<node oor:name="Popups">
<node oor:name=".uno:ModifyMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Modify</value>
</prop>
</node>
<node oor:name=".uno:WorkspaceMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Wor~kspace</value>
</prop>
</node>
<node oor:name=".uno:MirrorMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Flip</value>
</prop>
</node>
<node oor:name=".uno:PreviewDisplayQualityMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Pre~view Mode</value>
</prop>
</node>
<node oor:name=".uno:LayerMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">La~yer</value>
</prop>
</node>
<node oor:name=".uno:GridMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Gr~id</value>
</prop>
</node>
<node oor:name=".uno:ConvertMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Convert</value>
</prop>
</node>
<node oor:name=".uno:ArrangeMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Arrange</value>
</prop>
</node>
<node oor:name=".uno:DisplayQualityMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Color/Grayscale</value>
</prop>
</node>
<node oor:name=".uno:SlideShowMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Slide Show</value>
</prop>
</node>
@@ -1750,107 +1525,89 @@
</node-->
<node oor:name=".uno:GroupMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Group</value>
</prop>
</node>
<node oor:name=".uno:SendMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Sen~d</value>
</prop>
</node>
<node oor:name=".uno:TemplatesMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Styl~es</value>
</prop>
</node>
<node oor:name=".uno:SnapLinesMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Guides</value>
</prop>
</node>
<node oor:name=".uno:MasterPageMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Master</value>
</prop>
</node>
<node oor:name=".uno:MasterLayoutsMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Master Lay~outs</value>
</prop>
</node>
<node oor:name=".uno:MasterLayouts" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Master ~Elements...</value>
</prop>
</node>
<node oor:name=".uno:MasterLayoutsNotes" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Notes Master Layout...</value>
</prop>
</node>
<node oor:name=".uno:MasterLayoutsHandouts" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Handout Master Layout...</value>
</prop>
</node>
<node oor:name=".uno:HeaderAndFooter" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Header and Footer...</value>
</prop>
</node>
<node oor:name=".uno:InsertPageNumber" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">P~age Number...</value>
</prop>
</node>
<node oor:name=".uno:InsertDateAndTime" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Date and ~Time...</value>
</prop>
</node>
<node oor:name=".uno:NormalMultiPaneGUI" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Normal</value>
</prop>
</node>
<node oor:name=".uno:SlideSorterMultiPaneGUI" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Sli~de Sorter</value>
</prop>
</node>
<node oor:name=".uno:LeftPaneImpress" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">S~lide Pane</value>
</prop>
</node>
<node oor:name=".uno:LeftPaneDraw" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">~Page Pane</value>
</prop>
</node>
<node oor:name=".uno:RightPane" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
-
<value xml:lang="en-US">Tas~k Pane</value>
</prop>
</node>
-
<node oor:name=".uno:MergeCells" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="de">Zellen verbinden</value>
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index 4f38244540c2..b2759e4f7dbf 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -45,7 +45,7 @@
<value xml:lang="en-US">Fontwork Gallery</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:FontworkShapeType" oor:op="replace">
@@ -1287,7 +1287,7 @@
<value xml:lang="en-US">Scrollbar</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Zoom" oor:op="replace">
@@ -1303,7 +1303,7 @@
<value xml:lang="en-US">Spin Button</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ConvertToScrollBar" oor:op="replace">
@@ -1371,7 +1371,7 @@
<value xml:lang="en-US">Italic</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Bold" oor:op="replace">
@@ -1379,7 +1379,7 @@
<value xml:lang="en-US">Bold</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ModuleDialog" oor:op="replace">
@@ -1395,7 +1395,7 @@
<value xml:lang="en-US">Shadow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ObjectCatalog" oor:op="replace">
@@ -1411,7 +1411,7 @@
<value xml:lang="en-US">Outline</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Strikeout" oor:op="replace">
@@ -1419,7 +1419,7 @@
<value xml:lang="en-US">Strikethrough</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:HelpOnHelp" oor:op="replace">
@@ -1432,7 +1432,7 @@
<value xml:lang="en-US">Underline</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Overline" oor:op="replace">
@@ -1440,7 +1440,7 @@
<value xml:lang="en-US">Overline</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:HelpIndex" oor:op="replace">
@@ -1505,7 +1505,7 @@
<value xml:lang="en-US">Align Left</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>3</value>
+ <value>11</value>
</prop>
</node>
<node oor:name=".uno:RightPara" oor:op="replace">
@@ -1513,7 +1513,7 @@
<value xml:lang="en-US">Align Right</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>3</value>
+ <value>11</value>
</prop>
</node>
<node oor:name=".uno:CenterPara" oor:op="replace">
@@ -1521,7 +1521,7 @@
<value xml:lang="en-US">Centered</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>3</value>
+ <value>11</value>
</prop>
</node>
<node oor:name=".uno:SendFax" oor:op="replace">
@@ -1537,7 +1537,7 @@
<value xml:lang="en-US">Justified</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>7</value>
+ <value>15</value>
</prop>
</node>
<node oor:name=".uno:HelpChooseFile" oor:op="replace">
@@ -1550,7 +1550,7 @@
<value xml:lang="en-US">Line Spacing: 1</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>7</value>
+ <value>15</value>
</prop>
</node>
<node oor:name=".uno:SpacePara15" oor:op="replace">
@@ -1558,7 +1558,7 @@
<value xml:lang="en-US">Line Spacing : 1.5</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>7</value>
+ <value>15</value>
</prop>
</node>
<node oor:name=".uno:SpacePara2" oor:op="replace">
@@ -1566,7 +1566,7 @@
<value xml:lang="en-US">Line Spacing : 2</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>7</value>
+ <value>15</value>
</prop>
</node>
<node oor:name=".uno:StatusGetPosition" oor:op="replace">
@@ -1717,7 +1717,7 @@
<value xml:lang="en-US">Invert</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Line" oor:op="replace">
@@ -2071,7 +2071,7 @@
<value xml:lang="en-US">Bullets On/Off</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>7</value>
+ <value>15</value>
</prop>
</node>
<node oor:name=".uno:FormatArea" oor:op="replace">
@@ -2150,7 +2150,7 @@
<value xml:lang="en-US">Numbering On/Off</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>7</value>
+ <value>15</value>
</prop>
</node>
<node oor:name=".uno:BezierConvert" oor:op="replace">
@@ -2195,7 +2195,7 @@
<value xml:lang="en-US">Check Box</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ChangeCaseToKatakana" oor:op="replace">
@@ -2309,7 +2309,7 @@
<value xml:lang="en-US">Edit File</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:InsertImageControl" oor:op="replace">
@@ -2423,7 +2423,7 @@
<value xml:lang="en-US">Time Field</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:StyleNewByExample" oor:op="replace">
@@ -2590,7 +2590,7 @@
<value xml:lang="en-US">Left-To-Right</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>3</value>
+ <value>11</value>
</prop>
</node>
<node oor:name=".uno:Group" oor:op="replace">
@@ -2606,7 +2606,7 @@
<value xml:lang="en-US">Right-To-Left</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>3</value>
+ <value>11</value>
</prop>
</node>
<node oor:name=".uno:Ungroup" oor:op="replace">
@@ -2726,7 +2726,7 @@
<value xml:lang="en-US">Combo Box</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Spinbutton" oor:op="replace">
@@ -2891,7 +2891,7 @@
<value xml:lang="en-US">Guides When Moving</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:CloseWin" oor:op="replace">
@@ -2907,7 +2907,7 @@
<value xml:lang="en-US">Snap to Grid</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:InsertTextFrame" oor:op="replace">
@@ -3144,7 +3144,7 @@
<value xml:lang="en-US">HT~ML Source</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:InsertSound" oor:op="replace">
@@ -3168,7 +3168,7 @@
<value xml:lang="en-US">~Hyperlink</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Merge" oor:op="replace">
@@ -3186,7 +3186,7 @@
<value xml:lang="en-US">Superscript</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Intersect" oor:op="replace">
@@ -3199,7 +3199,7 @@
<value xml:lang="en-US">Subscript</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:FontDialog" oor:op="replace">
@@ -3228,7 +3228,7 @@
<value xml:lang="en-US">Shadow</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:LineEndStyle" oor:op="replace">
@@ -3260,7 +3260,7 @@
<value xml:lang="en-US">Format Paintbrush</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Repeat" oor:op="replace">
@@ -3328,7 +3328,7 @@
<value xml:lang="en-US">~Edit Contour...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:SelectAll" oor:op="replace">
@@ -3417,7 +3417,7 @@
<value xml:lang="en-US">Na~vigator</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:RestoreEditingView" oor:op="replace">
@@ -3434,13 +3434,16 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Fit to Frame</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:ImageMapDialog" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">ImageMap</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:GoDownSel" oor:op="replace">
@@ -3684,14 +3687,17 @@
<value xml:lang="en-US">~Display Grid</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Flash" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Flash</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:ToolsMacroEdit" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Edit Macros</value>
@@ -3980,7 +3986,7 @@
<value xml:lang="en-US">~AutoSpellcheck</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:HideSpellMark" oor:op="replace">
@@ -3995,9 +4001,12 @@
</node>
<node oor:name=".uno:RubyDialog" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">As~ian phonetic guide...</value>
+ <value xml:lang="en-US">As~ian phonetic guide...</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:InsertSymbol" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">S~pecial Character...</value>
@@ -4011,7 +4020,7 @@
<value xml:lang="en-US">~Data Sources</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:MenuBarVisible" oor:op="replace">
@@ -4094,7 +4103,10 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Status ~Bar</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:MacroBarVisible" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Macro Toolbar On/Off</value>
@@ -4220,7 +4232,7 @@
<value xml:lang="en-US">~Gallery</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:SearchDialog" oor:op="replace">
@@ -4228,7 +4240,7 @@
<value xml:lang="en-US">~Find &amp; Replace...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:HelperDialog" oor:op="replace">
@@ -4260,7 +4272,7 @@
<value xml:lang="en-US">More Controls</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:FormDesignTools" oor:op="replace">
@@ -4268,7 +4280,7 @@
<value xml:lang="en-US">Form Design</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Pushbutton" oor:op="replace">
@@ -4276,7 +4288,7 @@
<value xml:lang="en-US">Push Button</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:RadioButton" oor:op="replace">
@@ -4284,7 +4296,7 @@
<value xml:lang="en-US">Option Button</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:CheckBox" oor:op="replace">
@@ -4300,7 +4312,7 @@
<value xml:lang="en-US">Label Field</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:GroupBox" oor:op="replace">
@@ -4308,7 +4320,7 @@
<value xml:lang="en-US">Group Box</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Edit" oor:op="replace">
@@ -4316,7 +4328,7 @@
<value xml:lang="en-US">Text Box</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ListBox" oor:op="replace">
@@ -4324,7 +4336,7 @@
<value xml:lang="en-US">List Box</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ComboBox" oor:op="replace">
@@ -4340,7 +4352,7 @@
<value xml:lang="en-US">Table Control</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Imagebutton" oor:op="replace">
@@ -4348,7 +4360,7 @@
<value xml:lang="en-US">Image Button</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:FileControl" oor:op="replace">
@@ -4356,7 +4368,7 @@
<value xml:lang="en-US">File Selection</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ControlProperties" oor:op="replace">
@@ -4364,7 +4376,7 @@
<value xml:lang="en-US">Con~trol...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:FormProperties" oor:op="replace">
@@ -4372,7 +4384,7 @@
<value xml:lang="en-US">For~m...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:TabDialog" oor:op="replace">
@@ -4475,7 +4487,7 @@
<value xml:lang="en-US">Design Mode On/Off</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:SwitchXFormsDesignMode" oor:op="replace">
@@ -4508,7 +4520,7 @@
<value xml:lang="pt">Modo Esboço</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:RecUndo" oor:op="replace">
@@ -4529,7 +4541,7 @@
<value xml:lang="en-US">Form Navigator...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ShowDataNavigator" oor:op="replace">
@@ -4537,7 +4549,7 @@
<value xml:lang="en-US">Data Navigator...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Window3D" oor:op="replace">
@@ -4604,7 +4616,7 @@
<value xml:lang="en-US">Date Field</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:TimeField" oor:op="replace">
@@ -4612,7 +4624,7 @@
<value xml:lang="en-US">Time Field</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:NumericField" oor:op="replace">
@@ -4620,7 +4632,7 @@
<value xml:lang="en-US">Numerical Field</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:CurrencyField" oor:op="replace">
@@ -4628,7 +4640,7 @@
<value xml:lang="en-US">Currency Field</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:PrintPreview" oor:op="replace">
@@ -4636,7 +4648,7 @@
<value xml:lang="en-US">Pa~ge Preview</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:PatternField" oor:op="replace">
@@ -4644,7 +4656,7 @@
<value xml:lang="en-US">Pattern Field</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:OpenReadOnly" oor:op="replace">
@@ -4652,7 +4664,7 @@
<value xml:lang="en-US">Open in Design Mode</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ImageControl" oor:op="replace">
@@ -4660,7 +4672,7 @@
<value xml:lang="en-US">Image Control</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:RemoveFilterSort" oor:op="replace">
@@ -4732,7 +4744,7 @@
<value xml:lang="en-US">Run SQL command directly</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:SbaExecuteSql" oor:op="replace">
@@ -4756,7 +4768,7 @@
<value xml:lang="en-US">Apply Filter</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:Refresh" oor:op="replace">
@@ -4788,7 +4800,7 @@
<value xml:lang="en-US">Wizards On/Off</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:FormattedField" oor:op="replace">
@@ -4796,7 +4808,7 @@
<value xml:lang="en-US">Formatted Field</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:FormFilter" oor:op="replace">
@@ -4934,7 +4946,7 @@
<value xml:lang="en-US">Automatic Control Focus</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:DSBrowserExplorer" oor:op="replace">
@@ -4942,7 +4954,7 @@
<value xml:lang="en-US">Explorer On/Off</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:ExtrusionToggle" oor:op="replace">
@@ -5292,7 +5304,7 @@
<value xml:lang="en-US">Media Pla~yer</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:InsertAVMedia" oor:op="replace">
@@ -5316,7 +5328,7 @@
<value xml:lang="en-US">~Color</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:InsertHardHyphen" oor:op="replace">
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu
index e69558fc4ef5..1a3db34f6e6d 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu
@@ -164,7 +164,7 @@
<value xml:lang="en-US">Formula Cursor</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
</node>
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
index fa0611e07041..4fa236666b6b 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
@@ -38,12 +38,18 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">~Hidden Paragraphs</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:ShowAnnotations" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Comments</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:InsertScript" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">S~cript...</value>
@@ -115,13 +121,16 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">~Bibliography Entry...</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:ShadowCursor" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Direct Cursor On/Off</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:StartAutoCorrect" oor:op="replace">
@@ -166,12 +175,18 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">~Record</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:ShowTrackedChanges" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">~Show</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:GotoPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">To Page</value>
@@ -460,7 +475,7 @@
<value xml:lang="en-US">Insert Fields</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:InsertDateField" oor:op="replace">
@@ -539,9 +554,12 @@
</node>
<node oor:name=".uno:OnlineAutoFormat" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">~While Typing</value>
+ <value xml:lang="en-US">~While Typing</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:StatePageNumber" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Page Number</value>
@@ -573,7 +591,7 @@
<value xml:lang="en-US">Double Underline </value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:AutoFormatRedlineApply" oor:op="replace">
@@ -596,7 +614,7 @@
<value xml:lang="en-US">Superscript</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:SubScript" oor:op="replace">
@@ -604,7 +622,7 @@
<value xml:lang="en-US">Subscript</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:CharLeftSel" oor:op="replace">
@@ -866,7 +884,7 @@
<value xml:lang="en-US">Wrap Off</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>7</value>
+ <value>15</value>
</prop>
</node>
<node oor:name=".uno:WrapOn" oor:op="replace">
@@ -1723,7 +1741,7 @@
<value xml:lang="en-US">Link Frames</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:AlignCharBottom" oor:op="replace">
@@ -1754,7 +1772,7 @@
<value xml:lang="en-US">Restart Numbering</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>7</value>
+ <value>15</value>
</prop>
</node>
<node oor:name=".uno:JumpToHeader" oor:op="replace">
@@ -1875,7 +1893,10 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Allow Row to Break Across Pages and Columns</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:SelectText" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Select Paragraph</value>
@@ -2024,7 +2045,10 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Font Color Fill</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:ViewBounds" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Te~xt Boundaries</value>
@@ -2058,7 +2082,10 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Highlight Fill</value>
</prop>
- </node>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
+ </node>
<node oor:name=".uno:VRuler" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Vertical Ruler</value>
@@ -2069,7 +2096,7 @@
<value xml:lang="en-US">~Hyphenation...</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:VScroll" oor:op="replace">
@@ -2097,7 +2124,7 @@
<value xml:lang="en-US">~Nonprinting Characters</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:SortDialog" oor:op="replace">
@@ -2136,7 +2163,7 @@
<value xml:lang="en-US">Book Preview</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
- <value>1</value>
+ <value>9</value>
</prop>
</node>
<node oor:name=".uno:RemoveDirectCharFormats" oor:op="replace">
@@ -2158,11 +2185,17 @@
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">~Standard</value>
</prop>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
</node>
<node oor:name=".uno:SelectionModeBlock" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">~Block Area</value>
</prop>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>8</value>
+ </prop>
</node>
</node>
<node oor:name="Popups">
diff --git a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
index ffe5388caf76..913902731f29 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
@@ -1206,7 +1206,7 @@
<desc>Specifies the number of decimals to be displayed for the Standard number format.</desc>
<label>Decimal places</label>
</info>
- <value>2</value>
+ <value>-1</value>
</prop>
<prop oor:name="RegularExpressions" oor:type="xs:boolean">
<!-- UIHints: Tools - Options Spreadsheet Calculate [Check box] Enable regular expressions in formulas -->
diff --git a/officecfg/registry/schema/org/openoffice/Office/UI/Commands.xcs b/officecfg/registry/schema/org/openoffice/Office/UI/Commands.xcs
index 38ee3a2e4c4f..71efdab1b636 100644
--- a/officecfg/registry/schema/org/openoffice/Office/UI/Commands.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/UI/Commands.xcs
@@ -52,6 +52,7 @@
Bit 0 = Command has an image.
Bit 1 = Image must be mirrored (CTL/vertical text).
Bit 2 = Image must be rotated (CTL/vertical text).
+ Bit 3 = Command supports a toggle state (Accessibility).
</desc>
</info>
<value>0</value>
diff --git a/oox/inc/oox/drawingml/customshapegeometry.hxx b/oox/inc/oox/drawingml/customshapegeometry.hxx
index 4fec38cf09eb..75a788acb609 100644
--- a/oox/inc/oox/drawingml/customshapegeometry.hxx
+++ b/oox/inc/oox/drawingml/customshapegeometry.hxx
@@ -41,11 +41,11 @@ namespace oox { namespace drawingml {
class CustomShapeGeometryContext : public ::oox::core::ContextHandler
{
public:
- CustomShapeGeometryContext( ::oox::core::ContextHandler& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& xAttributes, CustomShapeProperties& rCustomShapeProperties );
+ CustomShapeGeometryContext( ::oox::core::ContextHandler& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& xAttributes, Shape& rShape );
virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( ::sal_Int32 aElementToken, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& xAttribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
private:
- CustomShapeProperties& mrCustomShapeProperties;
+ Shape& mrShape;
};
// ---------------------------------------------------------------------
diff --git a/oox/inc/oox/drawingml/customshapeproperties.hxx b/oox/inc/oox/drawingml/customshapeproperties.hxx
index 44e91d6e797b..ff1f26533036 100644
--- a/oox/inc/oox/drawingml/customshapeproperties.hxx
+++ b/oox/inc/oox/drawingml/customshapeproperties.hxx
@@ -32,6 +32,7 @@
#include "oox/drawingml/color.hxx"
#include <com/sun/star/graphic/XGraphic.hpp>
#include <boost/shared_ptr.hpp>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
#include "tokens.hxx"
#include <vector>
#include <map>
@@ -74,11 +75,12 @@ public:
std::vector< CustomShapeGuide >& getAdjustmentValues(){ return maAdjustmentValues; };
double getValue( const std::vector< CustomShapeGuide >&, sal_uInt32 nIndex ) const;
-
+ ::basegfx::B2DPolyPolygon& getPolygon() { return maPolygon; }
private:
rtl::OUString maShapePresetType;
std::vector< CustomShapeGuide > maAdjustmentValues;
+ ::basegfx::B2DPolyPolygon maPolygon;
};
} }
diff --git a/oox/inc/oox/drawingml/drawingmltypes.hxx b/oox/inc/oox/drawingml/drawingmltypes.hxx
index ed4367e63857..f8bb4c91b5d5 100644
--- a/oox/inc/oox/drawingml/drawingmltypes.hxx
+++ b/oox/inc/oox/drawingml/drawingmltypes.hxx
@@ -30,6 +30,7 @@
#include <boost/shared_ptr.hpp>
#include <com/sun/star/style/TabAlign.hpp>
+#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
#include <com/sun/star/geometry/IntegerRectangle2D.hpp>
#include <com/sun/star/awt/Point.hpp>
#include <com/sun/star/awt/Size.hpp>
@@ -118,6 +119,9 @@ float GetTextSize( const ::rtl::OUString& rValue );
/** converts the ST_TextSpacingPoint to 1/100mm */
sal_Int32 GetTextSpacingPoint( const ::rtl::OUString& sValue );
+sal_Int32 GetTextSpacingPoint( const sal_Int32 nValue );
+
+::com::sun::star::drawing::TextVerticalAdjust GetTextVerticalAdjust( sal_Int32 nToken );
/** */
::com::sun::star::style::TabAlign GetTabAlign( ::sal_Int32 aToken );
diff --git a/oox/inc/oox/drawingml/shape.hxx b/oox/inc/oox/drawingml/shape.hxx
index f4f5a5ee68fe..c951369dbf78 100644
--- a/oox/inc/oox/drawingml/shape.hxx
+++ b/oox/inc/oox/drawingml/shape.hxx
@@ -30,7 +30,7 @@
#include "oox/helper/propertymap.hxx"
#include "oox/drawingml/drawingmltypes.hxx"
-#include "oox/drawingml/customshapeproperties.hxx"
+//#include "oox/drawingml/customshapeproperties.hxx"
#include "oox/drawingml/textliststyle.hxx"
#include <com/sun/star/frame/XModel.hpp>
@@ -42,6 +42,9 @@
namespace oox { namespace drawingml {
+class CustomShapeProperties;
+typedef boost::shared_ptr< CustomShapeProperties > CustomShapePropertiesPtr;
+
typedef ::std::map< ::rtl::OUString, ShapePtr > ShapeIdMap;
struct ShapeStyleRef
diff --git a/oox/inc/oox/drawingml/textcharacterproperties.hxx b/oox/inc/oox/drawingml/textcharacterproperties.hxx
index 81cd95dddff2..6f4282471227 100644
--- a/oox/inc/oox/drawingml/textcharacterproperties.hxx
+++ b/oox/inc/oox/drawingml/textcharacterproperties.hxx
@@ -52,6 +52,7 @@ struct TextCharacterProperties
Color maHighlightColor;
OptValue< ::rtl::OUString > moLang;
OptValue< sal_Int32 > moHeight;
+ OptValue< sal_Int32 > moSpacing;
OptValue< sal_Int32 > moUnderline;
OptValue< sal_Int32 > moStrikeout;
OptValue< sal_Int32 > moCaseMap;
diff --git a/oox/inc/oox/drawingml/textliststyle.hxx b/oox/inc/oox/drawingml/textliststyle.hxx
index 6ba4cdf1d62a..1a8fca45bf25 100644
--- a/oox/inc/oox/drawingml/textliststyle.hxx
+++ b/oox/inc/oox/drawingml/textliststyle.hxx
@@ -50,6 +50,10 @@ public:
inline const TextParagraphPropertiesVector& getAggregationListStyle() const { return maAggregationListStyle; };
inline TextParagraphPropertiesVector& getAggregationListStyle() { return maAggregationListStyle; };
+#if OSL_DEBUG_LEVEL > 0
+ void dump( int nLevels=9 );
+#endif
+
protected:
TextParagraphPropertiesVector maListStyle;
diff --git a/oox/inc/oox/drawingml/textparagraphproperties.hxx b/oox/inc/oox/drawingml/textparagraphproperties.hxx
index ef80af2d1c11..310df83212a0 100644
--- a/oox/inc/oox/drawingml/textparagraphproperties.hxx
+++ b/oox/inc/oox/drawingml/textparagraphproperties.hxx
@@ -112,6 +112,10 @@ public:
size can be zero and the default value is returned. */
float getCharHeightPoints( float fDefault ) const;
+#if OSL_DEBUG_LEVEL > 0
+ void dump() { maTextParagraphPropertyMap.dump(); OSL_TRACE("character height: %f", maTextCharacterProperties.getCharHeightPoints(-1)); }
+#endif
+
protected:
TextCharacterProperties maTextCharacterProperties;
diff --git a/oox/inc/oox/helper/propertymap.hxx b/oox/inc/oox/helper/propertymap.hxx
index 30df15d7e5c6..150f5c3d9364 100644
--- a/oox/inc/oox/helper/propertymap.hxx
+++ b/oox/inc/oox/helper/propertymap.hxx
@@ -89,6 +89,11 @@ public:
::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
makePropertySet() const;
+#if OSL_DEBUG_LEVEL > 0
+ static void dump( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet);
+ void dump();
+#endif
+
private:
const PropertyList* mpPropNames;
};
diff --git a/oox/inc/oox/helper/propertyset.hxx b/oox/inc/oox/helper/propertyset.hxx
index a1769374d959..8ddfaff44421 100644
--- a/oox/inc/oox/helper/propertyset.hxx
+++ b/oox/inc/oox/helper/propertyset.hxx
@@ -127,6 +127,10 @@ public:
@param rPropertyMap The property map. */
void setProperties( const PropertyMap& rPropertyMap );
+#if OSL_DEBUG_LEVEL > 0
+ void dump();
+#endif
+
// ------------------------------------------------------------------------
private:
/** Gets the specified property from the property set.
diff --git a/oox/inc/oox/ppt/pptshape.hxx b/oox/inc/oox/ppt/pptshape.hxx
index 59f1beb39677..09c7830a96bb 100644
--- a/oox/inc/oox/ppt/pptshape.hxx
+++ b/oox/inc/oox/ppt/pptshape.hxx
@@ -61,9 +61,15 @@ public:
ShapeLocation getShapeLocation() const { return meShapeLocation; };
sal_Bool isReferenced() const { return mbReferenced; };
void setReferenced( sal_Bool bReferenced ){ mbReferenced = bReferenced; };
+ void setPlaceholder( oox::drawingml::ShapePtr pPlaceholder ) { mpPlaceholder = pPlaceholder; }
+
+ static oox::drawingml::ShapePtr findPlaceholder( const sal_Int32 nMasterPlaceholder, std::vector< oox::drawingml::ShapePtr >& rShapes );
+ static oox::drawingml::ShapePtr findPlaceholderByIndex( const sal_Int32 nIdx, std::vector< oox::drawingml::ShapePtr >& rShapes );
+ static oox::drawingml::ShapePtr findPlaceholder( sal_Int32 nFirstPlaceholder, sal_Int32 nSecondPlaceholder, std::vector< oox::drawingml::ShapePtr >& rShapes );
protected:
+ oox::drawingml::ShapePtr mpPlaceholder;
};
} }
diff --git a/oox/inc/oox/ppt/slidetransition.hxx b/oox/inc/oox/ppt/slidetransition.hxx
index 5427d90a5e35..df2eed4d6083 100644
--- a/oox/inc/oox/ppt/slidetransition.hxx
+++ b/oox/inc/oox/ppt/slidetransition.hxx
@@ -56,6 +56,8 @@ namespace oox { namespace ppt {
static sal_Int16 ooxToOdpEightDirections( ::sal_Int32 nOoxType );
static sal_Int16 ooxToOdpCornerDirections( ::sal_Int32 nOoxType );
static sal_Int16 ooxToOdpBorderDirections( ::sal_Int32 nOoxType );
+ static sal_Int16 ooxToOdpSideDirections( ::sal_Int32 nOoxType );
+ static sal_Bool ooxToOdpSideDirectionsDirectionNormal( ::sal_Int32 nOoxType );
void setOoxTransitionType( ::sal_Int32 OoxType,
::sal_Int32 param1, ::sal_Int32 param2 );
diff --git a/oox/source/drawingml/chart/plotareaconverter.cxx b/oox/source/drawingml/chart/plotareaconverter.cxx
index 82a22213b713..f69fde409c0e 100644
--- a/oox/source/drawingml/chart/plotareaconverter.cxx
+++ b/oox/source/drawingml/chart/plotareaconverter.cxx
@@ -27,6 +27,7 @@
#include "oox/drawingml/chart/plotareaconverter.hxx"
#include <com/sun/star/drawing/Direction3D.hpp>
+#include <com/sun/star/drawing/ProjectionMode.hpp>
#include <com/sun/star/drawing/ShadeMode.hpp>
#include <com/sun/star/chart2/XChartDocument.hpp>
#include <com/sun/star/chart2/XCoordinateSystemContainer.hpp>
diff --git a/oox/source/drawingml/customshapegeometry.cxx b/oox/source/drawingml/customshapegeometry.cxx
index decb759579f3..79c0c2e28d99 100644
--- a/oox/source/drawingml/customshapegeometry.cxx
+++ b/oox/source/drawingml/customshapegeometry.cxx
@@ -26,10 +26,12 @@
************************************************************************/
#include "oox/drawingml/customshapegeometry.hxx"
+#include "oox/drawingml/customshapeproperties.hxx"
#include <com/sun/star/xml/sax/FastToken.hpp>
#include <comphelper/stl_types.hxx>
#include <hash_map>
+#include <basegfx/polygon/b2dpolygon.hxx>
#include "oox/helper/helper.hxx"
#include "oox/helper/propertymap.hxx"
@@ -37,6 +39,7 @@
#include "tokens.hxx"
using ::rtl::OUString;
+using namespace ::basegfx;
using namespace ::oox::core;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::xml::sax;
@@ -180,6 +183,88 @@ Reference< XFastContextHandler > AdjustmentValueContext::createFastChildContext(
// ---------------------------------------------------------------------
+class PathListContext : public ContextHandler
+{
+public:
+ PathListContext( ContextHandler& rParent, Shape& rShape );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( ::sal_Int32 aElementToken, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& xAttribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL endFastElement( sal_Int32 aElementToken ) throw (SAXException, RuntimeException);
+
+protected:
+ Shape& mrShape;
+ sal_Int32 maPointToken;
+ ::basegfx::B2DPolygon maPolygon;
+};
+
+PathListContext::PathListContext( ContextHandler& rParent, Shape& rShape )
+: ContextHandler( rParent )
+, mrShape( rShape )
+{
+}
+
+Reference< XFastContextHandler > PathListContext::createFastChildContext( sal_Int32 aElementToken, const Reference< XFastAttributeList >& xAttribs ) throw (SAXException, RuntimeException)
+{
+ switch( aElementToken ) {
+ case NMSP_DRAWINGML | XML_path:
+ maPolygon.clear();
+ break;
+ case NMSP_DRAWINGML | XML_close:
+ maPolygon.setClosed( true );
+ break;
+ case NMSP_DRAWINGML | XML_pt:
+ {
+ OUString sX, sY;
+
+ sX = xAttribs->getOptionalValue( XML_x );
+ sY = xAttribs->getOptionalValue( XML_y );
+
+ double dX, dY;
+
+ dX = sX.toDouble();
+ dY = sY.toDouble();
+
+ maPolygon.append( B2DPoint ( dX, dY ) );
+ break;
+ }
+ case NMSP_DRAWINGML | XML_lnTo:
+ case NMSP_DRAWINGML | XML_moveTo:
+ maPointToken = aElementToken;
+ break;
+ }
+
+ return this;
+}
+
+void PathListContext::endFastElement( sal_Int32 aElementToken ) throw (SAXException, RuntimeException)
+{
+ switch( aElementToken ) {
+ case NMSP_DRAWINGML|XML_pathLst:
+ {
+ B2DPolyPolygon& rPoly = mrShape.getCustomShapeProperties()->getPolygon();
+ if( rPoly.count() ) {
+ if( rPoly.areControlPointsUsed() ) {
+ if( rPoly.isClosed() )
+ mrShape.setServiceName( "com.sun.star.drawing.ClosedBezierShape" );
+ else
+ mrShape.setServiceName( "com.sun.star.drawing.OpenBezierShape" );
+ } else {
+ if( rPoly.isClosed() )
+ mrShape.setServiceName( "com.sun.star.drawing.PolyPolygonPathShape" );
+ else
+ mrShape.setServiceName( "com.sun.star.drawing.PolyLinePathShape" );
+ }
+ }
+ break;
+ }
+ case NMSP_DRAWINGML|XML_path:
+ if( maPolygon.count() > 0 )
+ mrShape.getCustomShapeProperties()->getPolygon().append( maPolygon );
+ break;
+ }
+}
+
+// ---------------------------------------------------------------------
+
OUString GetShapeType( sal_Int32 nType )
{
OUString sType;
@@ -981,9 +1066,9 @@ static OUString GetTextShapeType( sal_Int32 nType )
// ---------------------------------------------------------------------
// CT_CustomGeometry2D
-CustomShapeGeometryContext::CustomShapeGeometryContext( ContextHandler& rParent, const Reference< XFastAttributeList >& /* xAttribs */, CustomShapeProperties& rCustomShapeProperties )
+CustomShapeGeometryContext::CustomShapeGeometryContext( ContextHandler& rParent, const Reference< XFastAttributeList >& /* xAttribs */, Shape& rShape )
: ContextHandler( rParent )
-, mrCustomShapeProperties( rCustomShapeProperties )
+, mrShape( rShape )
{
}
@@ -997,8 +1082,9 @@ Reference< XFastContextHandler > CustomShapeGeometryContext::createFastChildCont
case NMSP_DRAWINGML|XML_ahLst: // CT_AdjustHandleList adjust handle list
case NMSP_DRAWINGML|XML_cxnLst: // CT_ConnectionSiteList connection site list
case NMSP_DRAWINGML|XML_rect: // CT_GeomRectList geometry rect list
+ break;
case NMSP_DRAWINGML|XML_pathLst: // CT_Path2DList 2d path list
- break;
+ return new PathListContext( *this, mrShape );
}
Reference< XFastContextHandler > xEmpty;
diff --git a/oox/source/drawingml/diagram/diagramdefinitioncontext.cxx b/oox/source/drawingml/diagram/diagramdefinitioncontext.cxx
index 81c0d597afe2..53477211848e 100644
--- a/oox/source/drawingml/diagram/diagramdefinitioncontext.cxx
+++ b/oox/source/drawingml/diagram/diagramdefinitioncontext.cxx
@@ -30,6 +30,7 @@
#include "oox/helper/helper.hxx"
#include "layoutnodecontext.hxx"
#include "oox/drawingml/diagram/datamodelcontext.hxx"
+#include "tokens.hxx"
using namespace ::oox::core;
using namespace ::com::sun::star::uno;
diff --git a/oox/source/drawingml/diagram/diagramfragmenthandler.cxx b/oox/source/drawingml/diagram/diagramfragmenthandler.cxx
index 0cad22660ab6..ac2e755bee40 100644
--- a/oox/source/drawingml/diagram/diagramfragmenthandler.cxx
+++ b/oox/source/drawingml/diagram/diagramfragmenthandler.cxx
@@ -31,7 +31,7 @@
#include "oox/drawingml/diagram/datamodelcontext.hxx"
#include "oox/core/namespaces.hxx"
#include "diagramdefinitioncontext.hxx"
-
+#include "tokens.hxx"
using namespace ::oox::core;
using namespace ::com::sun::star::xml::sax;
diff --git a/oox/source/drawingml/drawingmltypes.cxx b/oox/source/drawingml/drawingmltypes.cxx
index 6773c5d6149b..e5aef824bf54 100644
--- a/oox/source/drawingml/drawingmltypes.cxx
+++ b/oox/source/drawingml/drawingmltypes.cxx
@@ -37,8 +37,9 @@ using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::xml::sax::XFastAttributeList;
using namespace ::com::sun::star::awt;
-using namespace ::com::sun::star::style;
+using namespace ::com::sun::star::drawing;
using namespace ::com::sun::star::geometry;
+using namespace ::com::sun::star::style;
namespace oox {
namespace drawingml {
@@ -125,10 +126,30 @@ sal_Int32 GetTextSpacingPoint( const OUString& sValue )
{
sal_Int32 nRet;
if( ::sax::Converter::convertNumber( nRet, sValue ) )
- nRet = ( nRet * 254 + 360 ) / 720;
+ nRet = GetTextSpacingPoint( nRet );
return nRet;
}
+sal_Int32 GetTextSpacingPoint( const sal_Int32 nValue )
+{
+ return ( nValue * 254 + 360 ) / 720;
+}
+
+TextVerticalAdjust GetTextVerticalAdjust( sal_Int32 nToken )
+{
+ TextVerticalAdjust rVal = TextVerticalAdjust_TOP;
+
+ switch( nToken ) {
+ case XML_b:
+ rVal = TextVerticalAdjust_BOTTOM;
+ break;
+ case XML_ctr:
+ rVal = TextVerticalAdjust_CENTER;
+ break;
+ }
+
+ return rVal;
+}
float GetFontHeight( sal_Int32 nHeight )
{
diff --git a/oox/source/drawingml/graphicshapecontext.cxx b/oox/source/drawingml/graphicshapecontext.cxx
index a0335fe68ee2..8537017c2118 100644
--- a/oox/source/drawingml/graphicshapecontext.cxx
+++ b/oox/source/drawingml/graphicshapecontext.cxx
@@ -30,6 +30,7 @@
#include <com/sun/star/chart2/XChartDocument.hpp>
#include "oox/drawingml/fillpropertiesgroupcontext.hxx"
+#include "oox/drawingml/customshapeproperties.hxx"
#include "oox/drawingml/diagram/diagramfragmenthandler.hxx"
#include "oox/drawingml/table/tablecontext.hxx"
#include "oox/core/namespaces.hxx"
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index 59b3f35dc8cc..1a32d6a206a0 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -26,6 +26,7 @@
************************************************************************/
#include "oox/drawingml/shape.hxx"
+#include "oox/drawingml/customshapeproperties.hxx"
#include "oox/drawingml/theme.hxx"
#include "oox/drawingml/fillproperties.hxx"
#include "oox/drawingml/lineproperties.hxx"
@@ -218,8 +219,8 @@ void Shape::addChildren(
aIter = rMaster.maChildren.begin();
while( aIter != rMaster.maChildren.end() )
{
- Rectangle aShapeRect;
- Rectangle* pShapeRect = 0;
+ awt::Rectangle aShapeRect;
+ awt::Rectangle* pShapeRect = 0;
if ( ( nGlobalLeft != SAL_MAX_INT32 ) && ( nGlobalRight != SAL_MIN_INT32 ) && ( nGlobalTop != SAL_MAX_INT32 ) && ( nGlobalBottom != SAL_MIN_INT32 ) )
{
sal_Int32 nGlobalWidth = nGlobalRight - nGlobalLeft;
@@ -298,6 +299,35 @@ Reference< XShape > Shape::createAndInsert(
aTransformation.translate( aPosition.X / 360.0, aPosition.Y / 360.0 );
}
+ if ( mpCustomShapePropertiesPtr && mpCustomShapePropertiesPtr->getPolygon().count() )
+ {
+ ::basegfx::B2DPolyPolygon& rPolyPoly = mpCustomShapePropertiesPtr->getPolygon();
+
+ if( rPolyPoly.count() > 0 ) {
+ if( rPolyPoly.areControlPointsUsed() ) {
+ // TODO Beziers
+ } else {
+ uno::Sequence< uno::Sequence< awt::Point > > aPolyPolySequence( rPolyPoly.count() );
+
+ for (sal_uInt32 j = 0; j < rPolyPoly.count(); j++ ) {
+ ::basegfx::B2DPolygon aPoly = rPolyPoly.getB2DPolygon( j );
+
+ // now creating the corresponding PolyPolygon
+ sal_Int32 i, nNumPoints = aPoly.count();
+ uno::Sequence< awt::Point > aPointSequence( nNumPoints );
+ awt::Point* pPoints = aPointSequence.getArray();
+ for( i = 0; i < nNumPoints; ++i )
+ {
+ const ::basegfx::B2DPoint aPoint( aPoly.getB2DPoint( i ) );
+ pPoints[ i ] = awt::Point( static_cast< sal_Int32 >( aPoint.getX() ), static_cast< sal_Int32 >( aPoint.getY() ) );
+ }
+ aPolyPolySequence.getArray()[ j ] = aPointSequence;
+ }
+ maShapeProperties[ PROP_PolyPolygon ] <<= aPolyPolySequence;
+ }
+ }
+ }
+
// special for lineshape
if ( aServiceName == OUString::createFromAscii( "com.sun.star.drawing.LineShape" ) )
{
@@ -422,7 +452,6 @@ Reference< XShape > Shape::createAndInsert(
PropertyMap aShapeProperties;
PropertyMap::const_iterator aShapePropIter;
- aShapeProperties.insert( getShapeProperties().begin(), getShapeProperties().end() );
if( mxCreateCallback.get() )
{
for ( aShapePropIter = mxCreateCallback->getShapeProperties().begin();
@@ -438,6 +467,7 @@ Reference< XShape > Shape::createAndInsert(
aShapeProperties[ (*aShapePropIter).first ] = (*aShapePropIter).second;
}
+ aShapeProperties.insert( getShapeProperties().begin(), getShapeProperties().end() );
// applying properties
PropertySet aPropSet( xSet );
if ( aServiceName == OUString::createFromAscii( "com.sun.star.drawing.GraphicObjectShape" ) )
diff --git a/oox/source/drawingml/shapepropertiescontext.cxx b/oox/source/drawingml/shapepropertiescontext.cxx
index 68c8ed967159..7724ba9b44b2 100644
--- a/oox/source/drawingml/shapepropertiescontext.cxx
+++ b/oox/source/drawingml/shapepropertiescontext.cxx
@@ -74,7 +74,7 @@ Reference< XFastContextHandler > ShapePropertiesContext::createFastChildContext(
// GeometryGroup
case NMSP_DRAWINGML|XML_custGeom: // custom geometry "CT_CustomGeometry2D"
- xRet.set( new CustomShapeGeometryContext( *this, xAttribs, *(mrShape.getCustomShapeProperties()) ) );
+ xRet.set( new CustomShapeGeometryContext( *this, xAttribs, mrShape ) );
break;
diff --git a/oox/source/drawingml/table/tablerowcontext.cxx b/oox/source/drawingml/table/tablerowcontext.cxx
index 17881d89639b..7e0ff052bb4e 100644
--- a/oox/source/drawingml/table/tablerowcontext.cxx
+++ b/oox/source/drawingml/table/tablerowcontext.cxx
@@ -31,6 +31,7 @@
#include "oox/drawingml/table/tablecellcontext.hxx"
#include "oox/drawingml/table/tablerow.hxx"
#include "oox/core/namespaces.hxx"
+#include "tokens.hxx"
using namespace ::oox::core;
using namespace ::com::sun::star;
diff --git a/oox/source/drawingml/textbodypropertiescontext.cxx b/oox/source/drawingml/textbodypropertiescontext.cxx
index ec605a3adadd..668266f2f679 100644
--- a/oox/source/drawingml/textbodypropertiescontext.cxx
+++ b/oox/source/drawingml/textbodypropertiescontext.cxx
@@ -27,7 +27,9 @@
#include "oox/drawingml/textbodypropertiescontext.hxx"
+#include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
#include <com/sun/star/text/ControlCharacter.hpp>
+#include <com/sun/star/text/WritingMode.hpp>
#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
#include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
#include "oox/drawingml/textbodyproperties.hxx"
@@ -41,8 +43,9 @@
using ::rtl::OUString;
using namespace ::oox::core;
using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::drawing;
using namespace ::com::sun::star::text;
+using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::xml::sax;
namespace oox { namespace drawingml {
@@ -64,21 +67,25 @@ TextBodyPropertiesContext::TextBodyPropertiesContext( ContextHandler& rParent,
// ST_Coordinate
OUString sValue;
sValue = xAttributes->getOptionalValue( XML_lIns );
+ if( sValue.getLength() ) {
sal_Int32 nLeftInset = ( sValue.getLength() != 0 ? GetCoordinate( sValue ) : 91440 / 360 );
mrTextBodyProp.maPropertyMap[ PROP_TextLeftDistance ] <<= static_cast< sal_Int32 >( nLeftInset );
-
+ }
sValue = xAttributes->getOptionalValue( XML_tIns );
+ if( sValue.getLength() ) {
sal_Int32 nTopInset = ( sValue.getLength() != 0 ? GetCoordinate( sValue ) : 91440 / 360 );
mrTextBodyProp.maPropertyMap[ PROP_TextUpperDistance ] <<= static_cast< sal_Int32 >( nTopInset );
-
+ }
sValue = xAttributes->getOptionalValue( XML_rIns );
+ if( sValue.getLength() ) {
sal_Int32 nRightInset = ( sValue.getLength() != 0 ? GetCoordinate( sValue ) : 91440 / 360 );
mrTextBodyProp.maPropertyMap[ PROP_TextRightDistance ] <<= static_cast< sal_Int32 >( nRightInset );
-
+ }
sValue = xAttributes->getOptionalValue( XML_bIns );
+ if( sValue.getLength() ) {
sal_Int32 nBottonInset = ( sValue.getLength() != 0 ? GetCoordinate( sValue ) : 45720 / 360 );
mrTextBodyProp.maPropertyMap[ PROP_TextLowerDistance ] <<= static_cast< sal_Int32 >( nBottonInset );
-
+ }
// ST_TextAnchoringType
drawing::TextVerticalAdjust eVA( drawing::TextVerticalAdjust_TOP );
@@ -93,7 +100,10 @@ TextBodyPropertiesContext::TextBodyPropertiesContext( ContextHandler& rParent,
}
mrTextBodyProp.maPropertyMap[ PROP_TextVerticalAdjust ] <<= eVA;
-// bool bAnchorCenter = aAttribs.getBool( XML_anchorCtr, false );
+ bool bAnchorCenter = aAttribs.getBool( XML_anchorCtr, false );
+ if( bAnchorCenter )
+ mrTextBodyProp.maPropertyMap[ PROP_TextHorizontalAdjust ] <<=
+ TextHorizontalAdjust_CENTER;
// bool bCompatLineSpacing = aAttribs.getBool( XML_compatLnSpc, false );
// bool bForceAA = aAttribs.getBool( XML_forceAA, false );
@@ -118,6 +128,18 @@ TextBodyPropertiesContext::TextBodyPropertiesContext( ContextHandler& rParent,
// ST_TextVerticalType
mrTextBodyProp.moVert = aAttribs.getToken( XML_vert );
+ bool bRtl = aAttribs.getBool( XML_rtl, false );
+ sal_Int32 tVert = mrTextBodyProp.moVert.get( XML_horz );
+ if( tVert == XML_vert || tVert == XML_eaVert || tVert == XML_vert270 || tVert == XML_mongolianVert ) {
+ mrTextBodyProp.maPropertyMap[ PROP_TextWritingMode ]
+ <<= WritingMode_TB_RL;
+ // workaround for TB_LR as using WritingMode2 doesn't work
+ if( !bAnchorCenter )
+ mrTextBodyProp.maPropertyMap[ PROP_TextHorizontalAdjust ] <<=
+ TextHorizontalAdjust_LEFT;
+ } else
+ mrTextBodyProp.maPropertyMap[ PROP_TextWritingMode ]
+ <<= ( bRtl ? WritingMode_RL_TB : WritingMode_LR_TB );
}
// --------------------------------------------------------------------
@@ -143,6 +165,9 @@ Reference< XFastContextHandler > TextBodyPropertiesContext::createFastChildConte
mrTextBodyProp.maPropertyMap[ PROP_TextAutoGrowHeight ] <<= false; // CT_TextNoAutofit
break;
case NMSP_DRAWINGML|XML_normAutofit: // CT_TextNormalAutofit
+ mrTextBodyProp.maPropertyMap[ PROP_TextFitToSize ] <<= true;
+ mrTextBodyProp.maPropertyMap[ PROP_TextAutoGrowHeight ] <<= false;
+ break;
case NMSP_DRAWINGML|XML_spAutoFit:
mrTextBodyProp.maPropertyMap[ PROP_TextAutoGrowHeight ] <<= true;
break;
diff --git a/oox/source/drawingml/textcharacterproperties.cxx b/oox/source/drawingml/textcharacterproperties.cxx
index 4dbd632b2191..3ac5018c1dad 100644
--- a/oox/source/drawingml/textcharacterproperties.cxx
+++ b/oox/source/drawingml/textcharacterproperties.cxx
@@ -59,6 +59,7 @@ void TextCharacterProperties::assignUsed( const TextCharacterProperties& rSource
maHighlightColor.assignIfUsed( rSourceProps.maHighlightColor );
maUnderlineColor.assignIfUsed( rSourceProps.maUnderlineColor );
moHeight.assignIfUsed( rSourceProps.moHeight );
+ moSpacing.assignIfUsed( rSourceProps.moSpacing );
moUnderline.assignIfUsed( rSourceProps.moUnderline );
moStrikeout.assignIfUsed( rSourceProps.moStrikeout );
moCaseMap.assignIfUsed( rSourceProps.moCaseMap );
@@ -126,6 +127,8 @@ void TextCharacterProperties::pushToPropMap( PropertyMap& rPropMap, const XmlFil
rPropMap[ PROP_CharHeightComplex ] <<= fHeight;
}
+ rPropMap[ PROP_CharKerning ] <<= (sal_Int16) GetTextSpacingPoint( moSpacing.get( 0 ) );
+
rPropMap[ PROP_CharUnderline ] <<= GetFontUnderline( moUnderline.get( XML_none ) );
rPropMap[ PROP_CharStrikeout ] <<= GetFontStrikeout( moStrikeout.get( XML_noStrike ) );
rPropMap[ PROP_CharCaseMap ] <<= GetCaseMap( moCaseMap.get( XML_none ) );
diff --git a/oox/source/drawingml/textliststyle.cxx b/oox/source/drawingml/textliststyle.cxx
index 5d01a28c9cfd..07a71c0855a1 100644
--- a/oox/source/drawingml/textliststyle.cxx
+++ b/oox/source/drawingml/textliststyle.cxx
@@ -65,4 +65,15 @@ void TextListStyle::apply( const TextListStyle& rTextListStyle )
applyStyleList( rTextListStyle.getListStyle(), getListStyle() );
}
+#if OSL_DEBUG_LEVEL > 0
+void TextListStyle::dump( int nLevels )
+{
+ for ( int i = 0; i < nLevels; i++ )
+ {
+ OSL_TRACE("level: %d", i);
+ maListStyle[ i ]->dump();
+ }
+}
+#endif
+
} }
diff --git a/oox/source/drawingml/theme.cxx b/oox/source/drawingml/theme.cxx
index b37ccdbaf13c..59245201eb61 100644
--- a/oox/source/drawingml/theme.cxx
+++ b/oox/source/drawingml/theme.cxx
@@ -26,6 +26,7 @@
************************************************************************/
#include "oox/drawingml/theme.hxx"
+#include "tokens.hxx"
using ::rtl::OUString;
diff --git a/oox/source/helper/propertymap.cxx b/oox/source/helper/propertymap.cxx
index 9ff791fd21f3..31072fe449e5 100644
--- a/oox/source/helper/propertymap.cxx
+++ b/oox/source/helper/propertymap.cxx
@@ -50,6 +50,19 @@ using ::com::sun::star::beans::XPropertySet;
using ::com::sun::star::beans::XPropertySetInfo;
using ::com::sun::star::beans::XVetoableChangeListener;
+#if OSL_DEBUG_LEVEL > 0
+#include <cstdio>
+#include <com/sun/star/style/LineSpacing.hpp>
+#include <com/sun/star/style/LineSpacingMode.hpp>
+#include <com/sun/star/text/WritingMode.hpp>
+#define USS(x) OUStringToOString( x, RTL_TEXTENCODING_UTF8 ).getStr()
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using ::rtl::OString;
+using ::com::sun::star::style::LineSpacing;
+using ::com::sun::star::text::WritingMode;
+#endif
+
namespace oox {
// ============================================================================
@@ -228,6 +241,66 @@ Reference< XPropertySet > PropertyMap::makePropertySet() const
return new GenericPropertySet( *this );
}
+#if OSL_DEBUG_LEVEL > 0
+void PropertyMap::dump( Reference< XPropertySet > rXPropSet )
+{
+ Reference< XPropertySetInfo > info = rXPropSet->getPropertySetInfo ();
+ Sequence< beans::Property > props = info->getProperties ();
+
+ OSL_TRACE("dump props, len: %d", props.getLength ());
+
+ for (int i=0; i < props.getLength (); i++) {
+ OString name = OUStringToOString( props [i].Name, RTL_TEXTENCODING_UTF8);
+ fprintf (stderr,"%30s = ", name.getStr() );
+
+ try {
+ Any value = rXPropSet->getPropertyValue( props [i].Name );
+
+ OUString strValue;
+ sal_Int32 intValue = 0;
+ sal_uInt32 uintValue = 0;
+ sal_Int16 int16Value = 0;
+ sal_uInt16 uint16Value = 0;
+ bool boolValue = false;
+ LineSpacing spacing;
+// RectanglePoint pointValue;
+ WritingMode aWritingMode;
+
+ if( value >>= strValue )
+ fprintf (stderr,"\"%s\"\n", USS( strValue ) );
+ else if( value >>= intValue )
+ fprintf (stderr,"%"SAL_PRIdINT32" (hex: %"SAL_PRIxUINT32")\n", intValue, intValue);
+ else if( value >>= uintValue )
+ fprintf (stderr,"%"SAL_PRIdINT32" (hex: %"SAL_PRIxUINT32")\n", uintValue, uintValue);
+ else if( value >>= int16Value )
+ fprintf (stderr,"%d (hex: %x)\n", int16Value, int16Value);
+ else if( value >>= uint16Value )
+ fprintf (stderr,"%d (hex: %x)\n", uint16Value, uint16Value);
+ else if( value >>= boolValue )
+ fprintf (stderr,"%d (bool)\n", boolValue);
+ else if( value >>= aWritingMode )
+ fprintf (stderr, "%d writing mode\n", aWritingMode);
+ else if( value >>= spacing ) {
+ fprintf (stderr, "mode: %d value: %d\n", spacing.Mode, spacing.Height);
+ } else if( value.isExtractableTo(::getCppuType((const sal_Int32*)0))) {
+ fprintf (stderr,"is extractable to int32\n");
+ }
+// else if( value >>= pointValue )
+// fprintf (stderr,"%d (RectanglePoint)\n", pointValue);
+ else
+ fprintf (stderr,"??? <unhandled type %s>\n", USS(value.getValueTypeName()));
+ } catch(Exception e) {
+ fprintf (stderr,"unable to get '%s' value\n", USS(props [i].Name));
+ }
+ }
+}
+
+void PropertyMap::dump()
+{
+ dump( Reference< XPropertySet >( makePropertySet(), UNO_QUERY ) );
+}
+#endif
+
// ============================================================================
} // namespace oox
diff --git a/oox/source/helper/propertyset.cxx b/oox/source/helper/propertyset.cxx
index c52872e50f2f..e7071ba402a2 100644
--- a/oox/source/helper/propertyset.cxx
+++ b/oox/source/helper/propertyset.cxx
@@ -172,6 +172,13 @@ void PropertySet::setAnyProperty( const OUString& rPropName, const Any& rValue )
}
}
+#if OSL_DEBUG_LEVEL > 0
+void PropertySet::dump()
+{
+ PropertyMap::dump( Reference< XPropertySet >( getXPropertySet(), UNO_QUERY ) );
+}
+#endif
+
// ============================================================================
} // namespace oox
diff --git a/oox/source/helper/zipstorage.cxx b/oox/source/helper/zipstorage.cxx
index 72b6fcd1bff0..384870430c39 100644
--- a/oox/source/helper/zipstorage.cxx
+++ b/oox/source/helper/zipstorage.cxx
@@ -66,10 +66,15 @@ ZipStorage::ZipStorage(
/* #i105325# ::comphelper::OStorageHelper::GetStorageFromInputStream()
cannot be used here as it will open a storage with format type
'PackageFormat' that will not work with OOXML packages.
+
+ #161971# The MS-document storages should always be opened in Repair-Mode to
+ ignore the format errors and get so much info as possible. I hate this
+ solution, but it seems to be the only consistent way to handle the MS-documents.
+
TODO: #i105410# switch to 'OFOPXMLFormat' and use its
implementation of relations handling. */
mxStorage = ::comphelper::OStorageHelper::GetStorageOfFormatFromInputStream(
- ZIP_STORAGE_FORMAT_STRING, rxInStream, rxFactory );
+ ZIP_STORAGE_FORMAT_STRING, rxInStream, rxFactory, sal_True );
}
catch( Exception& )
{
@@ -87,7 +92,7 @@ ZipStorage::ZipStorage(
{
using namespace ::com::sun::star::embed::ElementModes;
mxStorage = ::comphelper::OStorageHelper::GetStorageOfFormatFromStream(
- OFOPXML_STORAGE_FORMAT_STRING, rxStream, READWRITE | TRUNCATE, rxFactory );
+ OFOPXML_STORAGE_FORMAT_STRING, rxStream, READWRITE | TRUNCATE, rxFactory, sal_True );
}
catch( Exception& )
{
diff --git a/oox/source/ppt/pptshape.cxx b/oox/source/ppt/pptshape.cxx
index ed53992f944b..eb3b3503452e 100644
--- a/oox/source/ppt/pptshape.cxx
+++ b/oox/source/ppt/pptshape.cxx
@@ -28,6 +28,7 @@
#include "oox/ppt/pptshape.hxx"
#include "oox/core/namespaces.hxx"
#include "oox/core/xmlfilterbase.hxx"
+#include "oox/drawingml/textbody.hxx"
#include "tokens.hxx"
#include <com/sun/star/container/XNamed.hpp>
@@ -40,6 +41,7 @@
using rtl::OUString;
using namespace ::oox::core;
+using namespace ::oox::drawingml;
using namespace ::com::sun::star;
using namespace ::com::sun::star::awt;
using namespace ::com::sun::star::uno;
@@ -97,6 +99,11 @@ void PPTShape::addShape(
{
if ( ( meShapeLocation == Master ) || ( meShapeLocation == Layout ) )
sServiceName = rtl::OUString();
+ else {
+ const rtl::OUString sTitleShapeService( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.presentation.SubtitleShape" ) );
+ sServiceName = sTitleShapeService;
+ aMasterTextListStyle = rSlidePersist.getMasterPersist().get() ? rSlidePersist.getMasterPersist()->getTitleTextStyle() : rSlidePersist.getTitleTextStyle();
+ }
}
break;
case XML_obj :
@@ -162,6 +169,21 @@ void PPTShape::addShape(
}
}
+ // use placeholder index if possible
+ if( mnSubType && getSubTypeIndex() && rSlidePersist.getMasterPersist().get() ) {
+ oox::drawingml::ShapePtr pPlaceholder = PPTShape::findPlaceholderByIndex( getSubTypeIndex(), rSlidePersist.getMasterPersist()->getShapes()->getChildren() );
+ if( pPlaceholder.get() && pPlaceholder->getTextBody() ) {
+ TextListStylePtr pNewTextListStyle ( new TextListStyle() );
+
+ pNewTextListStyle->apply( pPlaceholder->getTextBody()->getTextListStyle() );
+ if( pPlaceholder->getMasterTextListStyle().get() )
+ pNewTextListStyle->apply( *pPlaceholder->getMasterTextListStyle() );
+
+ aMasterTextListStyle = pNewTextListStyle;
+ }
+ }
+
+
if ( sServiceName.getLength() )
{
if ( !aMasterTextListStyle.get() )
@@ -209,4 +231,51 @@ void PPTShape::applyShapeReference( const oox::drawingml::Shape& rReferencedShap
Shape::applyShapeReference( rReferencedShape );
}
+oox::drawingml::ShapePtr PPTShape::findPlaceholder( const sal_Int32 nMasterPlaceholder, std::vector< oox::drawingml::ShapePtr >& rShapes )
+{
+ oox::drawingml::ShapePtr aShapePtr;
+ std::vector< oox::drawingml::ShapePtr >::reverse_iterator aRevIter( rShapes.rbegin() );
+ while( aRevIter != rShapes.rend() )
+ {
+ if ( (*aRevIter)->getSubType() == nMasterPlaceholder )
+ {
+ aShapePtr = *aRevIter;
+ break;
+ }
+ std::vector< oox::drawingml::ShapePtr >& rChildren = (*aRevIter)->getChildren();
+ aShapePtr = findPlaceholder( nMasterPlaceholder, rChildren );
+ if ( aShapePtr.get() )
+ break;
+ aRevIter++;
+ }
+ return aShapePtr;
+}
+
+oox::drawingml::ShapePtr PPTShape::findPlaceholderByIndex( const sal_Int32 nIdx, std::vector< oox::drawingml::ShapePtr >& rShapes )
+{
+ oox::drawingml::ShapePtr aShapePtr;
+ std::vector< oox::drawingml::ShapePtr >::reverse_iterator aRevIter( rShapes.rbegin() );
+ while( aRevIter != rShapes.rend() )
+ {
+ if ( (*aRevIter)->getSubTypeIndex() == nIdx )
+ {
+ aShapePtr = *aRevIter;
+ break;
+ }
+ std::vector< oox::drawingml::ShapePtr >& rChildren = (*aRevIter)->getChildren();
+ aShapePtr = findPlaceholderByIndex( nIdx, rChildren );
+ if ( aShapePtr.get() )
+ break;
+ aRevIter++;
+ }
+ return aShapePtr;
+}
+
+// if nFirstPlaceholder can't be found, it will be searched for nSecondPlaceholder
+oox::drawingml::ShapePtr PPTShape::findPlaceholder( sal_Int32 nFirstPlaceholder, sal_Int32 nSecondPlaceholder, std::vector< oox::drawingml::ShapePtr >& rShapes )
+{
+ oox::drawingml::ShapePtr pPlaceholder = findPlaceholder( nFirstPlaceholder, rShapes );
+ return !nSecondPlaceholder || pPlaceholder.get() ? pPlaceholder : findPlaceholder( nSecondPlaceholder, rShapes );
+}
+
} }
diff --git a/oox/source/ppt/pptshapecontext.cxx b/oox/source/ppt/pptshapecontext.cxx
index 8379a6e95735..86e254088041 100644
--- a/oox/source/ppt/pptshapecontext.cxx
+++ b/oox/source/ppt/pptshapecontext.cxx
@@ -111,14 +111,27 @@ Reference< XFastContextHandler > PPTShapeContext::createFastChildContext( sal_In
{
sal_Int32 nSubType( xAttribs->getOptionalValueToken( XML_type, XML_obj ) );
mpShapePtr->setSubType( nSubType );
- mpShapePtr->setSubTypeIndex( xAttribs->getOptionalValue( XML_idx ).toInt32() );
- if ( nSubType )
+ OUString sIdx( xAttribs->getOptionalValue( XML_idx ) );
+ sal_Bool bHasIdx = sIdx.getLength() > 0;
+ sal_Int32 nIdx = sIdx.toInt32();
+ mpShapePtr->setSubTypeIndex( nIdx );
+
+ if ( nSubType || bHasIdx )
{
PPTShape* pPPTShapePtr = dynamic_cast< PPTShape* >( mpShapePtr.get() );
if ( pPPTShapePtr )
{
oox::ppt::ShapeLocation eShapeLocation = pPPTShapePtr->getShapeLocation();
- if ( ( eShapeLocation == Slide ) || ( eShapeLocation == Layout ) )
+ oox::drawingml::ShapePtr pPlaceholder;
+
+ if ( bHasIdx && eShapeLocation == Slide )
+ {
+ // TODO: use id to shape map
+ SlidePersistPtr pMasterPersist( mpSlidePersistPtr->getMasterPersist() );
+ if ( pMasterPersist.get() )
+ pPlaceholder = PPTShape::findPlaceholderByIndex( nIdx, pMasterPersist->getShapes()->getChildren() );
+ }
+ if ( !pPlaceholder.get() && ( ( eShapeLocation == Slide ) || ( eShapeLocation == Layout ) ) )
{
// inheriting properties from placeholder objects by cloning shape
@@ -157,7 +170,6 @@ Reference< XFastContextHandler > PPTShapeContext::createFastChildContext( sal_In
}
if ( nFirstPlaceholder )
{
- oox::drawingml::ShapePtr pPlaceholder;
if ( eShapeLocation == Layout ) // for layout objects the referenced object can be found within the same shape tree
pPlaceholder = findPlaceholder( nFirstPlaceholder, nSecondPlaceholder, -1, mpSlidePersistPtr->getShapes()->getChildren() );
else if ( eShapeLocation == Slide ) // normal slide shapes have to search within the corresponding master tree for referenced objects
@@ -176,6 +188,14 @@ Reference< XFastContextHandler > PPTShapeContext::createFastChildContext( sal_In
}
}
}
+ if ( pPlaceholder.get() )
+ {
+ mpShapePtr->applyShapeReference( *pPlaceholder.get() );
+ PPTShape* pPPTShape = dynamic_cast< PPTShape* >( pPlaceholder.get() );
+ if ( pPPTShape )
+ pPPTShape->setReferenced( sal_True );
+ pPPTShapePtr->setPlaceholder( pPlaceholder );
+ }
}
}
break;
diff --git a/oox/source/ppt/slidefragmenthandler.cxx b/oox/source/ppt/slidefragmenthandler.cxx
index 62fbc1a87725..69f32e01e7eb 100644
--- a/oox/source/ppt/slidefragmenthandler.cxx
+++ b/oox/source/ppt/slidefragmenthandler.cxx
@@ -32,6 +32,7 @@
#include <com/sun/star/container/XNamed.hpp>
#include "tokens.hxx"
+#include "properties.hxx"
#include "oox/helper/propertyset.hxx"
#include "oox/core/namespaces.hxx"
#include "oox/core/xmlfilterbase.hxx"
@@ -86,6 +87,18 @@ Reference< XFastContextHandler > SlideFragmentHandler::createFastChildContext( s
case NMSP_PPT|XML_sldMaster: // CT_SlideMaster
case NMSP_PPT|XML_handoutMaster: // CT_HandoutMaster
case NMSP_PPT|XML_sld: // CT_CommonSlideData
+ {
+ AttributeList attribs( xAttribs );
+
+ Reference< XDrawPage > xSlide( mpSlidePersistPtr->getPage() );
+ PropertyMap aPropMap;
+ PropertySet aSlideProp( xSlide );
+
+ aPropMap[ PROP_Visible ] = Any( attribs.getBool( XML_show, sal_True ) );
+ aSlideProp.setProperties( aPropMap );
+
+ break;
+ }
case NMSP_PPT|XML_notes: // CT_NotesSlide
case NMSP_PPT|XML_notesMaster: // CT_NotesMaster
break;
diff --git a/oox/source/ppt/slidetransition.cxx b/oox/source/ppt/slidetransition.cxx
index bdfc1621e486..ee889e13d840 100644
--- a/oox/source/ppt/slidetransition.cxx
+++ b/oox/source/ppt/slidetransition.cxx
@@ -176,6 +176,39 @@ namespace oox { namespace ppt {
return nOdpDirection;
}
+ sal_Int16 SlideTransition::ooxToOdpSideDirections( ::sal_Int32 nOoxType )
+ {
+ sal_Int16 nOdpDirection;
+ switch( nOoxType )
+ {
+ case XML_d:
+ case XML_u:
+ nOdpDirection = TransitionSubType::TOPTOBOTTOM;
+ break;
+ case XML_l:
+ case XML_r:
+ nOdpDirection = TransitionSubType::LEFTTORIGHT;
+ break;
+ default:
+ nOdpDirection= 0;
+ break;
+ }
+ return nOdpDirection;
+ }
+
+ sal_Bool SlideTransition::ooxToOdpSideDirectionsDirectionNormal( ::sal_Int32 nOoxType )
+ {
+ sal_Bool nOdpDirection = true;
+ switch( nOoxType )
+ {
+ case XML_u:
+ case XML_l:
+ nOdpDirection = false;
+ break;
+ }
+ return nOdpDirection;
+ }
+
sal_Int16 SlideTransition::ooxToOdpCornerDirections( ::sal_Int32 nOoxType )
{
sal_Int16 nOdpDirection;
@@ -291,7 +324,8 @@ namespace oox { namespace ppt {
break;
case NMSP_PPT|XML_wipe:
mnTransitionType = TransitionType::BARWIPE;
- mnTransitionSubType = ooxToOdpBorderDirections( param1 );
+ mnTransitionSubType = ooxToOdpSideDirections( param1 );
+ mbTransitionDirectionNormal = ooxToOdpSideDirectionsDirectionNormal( param1 );
break;
case NMSP_PPT|XML_split:
mnTransitionType = TransitionType::BARNDOORWIPE;
diff --git a/oox/source/shape/ShapeContextHandler.cxx b/oox/source/shape/ShapeContextHandler.cxx
index 42efee474d90..05734b65e2a7 100644
--- a/oox/source/shape/ShapeContextHandler.cxx
+++ b/oox/source/shape/ShapeContextHandler.cxx
@@ -29,6 +29,7 @@
#include "oox/vml/vmldrawingfragment.hxx"
#include "oox/vml/vmlshape.hxx"
#include "oox/vml/vmlshapecontainer.hxx"
+#include "tokens.hxx"
#if DEBUG
#include <iostream>
diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt
index 609eeda60cde..203ce4552e5d 100644
--- a/oox/source/token/properties.txt
+++ b/oox/source/token/properties.txt
@@ -58,6 +58,7 @@ CharFontPitchComplex
CharHeight
CharHeightAsian
CharHeightComplex
+CharKerning
CharLocale
CharLocaleAsian
CharLocaleComplex
@@ -380,6 +381,8 @@ Text
TextAutoGrowHeight
TextBreak
TextColor
+TextFitToSize
+TextHorizontalAdjust
TextLeftDistance
TextLowerDistance
TextOverlap
@@ -413,6 +416,7 @@ VertJustify
VerticalAlign
VerticalSplitMode
VerticalSplitPositionTwips
+Visible
VisibleSize
VisualArea
VisualEffect
diff --git a/oox/source/xls/themebuffer.cxx b/oox/source/xls/themebuffer.cxx
index 3aabd471742d..23617287dc57 100644
--- a/oox/source/xls/themebuffer.cxx
+++ b/oox/source/xls/themebuffer.cxx
@@ -27,6 +27,7 @@
#include "oox/xls/themebuffer.hxx"
#include "oox/xls/stylesbuffer.hxx"
+#include "tokens.hxx"
using ::oox::drawingml::ClrScheme;
diff --git a/package/inc/PackageConstants.hxx b/package/inc/PackageConstants.hxx
index e088dceef126..a23a22fcb888 100644
--- a/package/inc/PackageConstants.hxx
+++ b/package/inc/PackageConstants.hxx
@@ -33,10 +33,6 @@ const sal_Int32 n_ConstBufferSize = 32768;
const sal_Int32 n_ConstMaxMemoryStreamSize = 20480;
const sal_Int32 n_ConstDigestLength = 1024;
-#define PACKAGE_FORMAT 1
-#define ZIP_FORMAT 2
-#define OFOPXML_FORMAT 3
-
// the constants related to the manifest.xml entries
#define PKG_MNFST_MEDIATYPE 0
#define PKG_MNFST_VERSION 1
diff --git a/package/inc/ZipPackage.hxx b/package/inc/ZipPackage.hxx
index 367bd1d80de5..e3b8d44be183 100644
--- a/package/inc/ZipPackage.hxx
+++ b/package/inc/ZipPackage.hxx
@@ -93,7 +93,7 @@ protected:
sal_Bool m_bForceRecovery;
sal_Bool m_bMediaTypeFallbackUsed;
- sal_Int16 m_nFormat;
+ sal_Int32 m_nFormat;
sal_Bool m_bAllowRemoveOnInsert;
InitialisationMode m_eMode;
@@ -125,7 +125,7 @@ public:
virtual ~ZipPackage( void );
ZipFile& getZipFile() { return *m_pZipFile;}
const com::sun::star::uno::Sequence < sal_Int8 > & getEncryptionKey ( ) {return m_aEncryptionKey;}
- sal_Int16 getFormat() const { return m_nFormat; }
+ sal_Int32 getFormat() const { return m_nFormat; }
SotMutexHolderRef GetSharedMutexRef() { return m_aMutexHolder; }
diff --git a/package/inc/ZipPackageFolder.hxx b/package/inc/ZipPackageFolder.hxx
index 85823ba97c2c..89414f18ce65 100644
--- a/package/inc/ZipPackageFolder.hxx
+++ b/package/inc/ZipPackageFolder.hxx
@@ -58,13 +58,13 @@ class ZipPackageFolder : public cppu::ImplInheritanceHelper2
protected:
ContentHash maContents;
const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > m_xFactory;
- sal_Int16 m_nFormat;
+ sal_Int32 m_nFormat;
::rtl::OUString m_sVersion;
public:
ZipPackageFolder( const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory >& xFactory,
- sal_Int16 nFormat,
+ sal_Int32 nFormat,
sal_Bool bAllowRemoveOnInsert );
virtual ~ZipPackageFolder();
@@ -87,7 +87,7 @@ public:
return aImplementationId;
}
- void setPackageFormat_Impl( sal_Int16 nFormat ) { m_nFormat = nFormat; }
+ void setPackageFormat_Impl( sal_Int32 nFormat ) { m_nFormat = nFormat; }
void setRemoveOnInsertMode_Impl( sal_Bool bRemove ) { this->mbAllowRemoveOnInsert = bRemove; }
// Recursive functions
diff --git a/package/source/xstor/ocompinstream.cxx b/package/source/xstor/ocompinstream.cxx
index 45bf7c01eb2f..fcb118f4b967 100644
--- a/package/source/xstor/ocompinstream.cxx
+++ b/package/source/xstor/ocompinstream.cxx
@@ -29,6 +29,7 @@
#include "precompiled_package.hxx"
#include "ocompinstream.hxx"
+#include <com/sun/star/embed/StorageFormats.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <osl/diagnose.h>
@@ -41,7 +42,7 @@ using namespace ::com::sun::star;
OInputCompStream::OInputCompStream( OWriteStream_Impl& aImpl,
uno::Reference < io::XInputStream > xStream,
const uno::Sequence< beans::PropertyValue >& aProps,
- sal_Int16 nStorageType )
+ sal_Int32 nStorageType )
: m_pImpl( &aImpl )
, m_rMutexRef( m_pImpl->m_rMutexRef )
, m_xStream( xStream )
@@ -60,7 +61,7 @@ OInputCompStream::OInputCompStream( OWriteStream_Impl& aImpl,
//-----------------------------------------------
OInputCompStream::OInputCompStream( uno::Reference < io::XInputStream > xStream,
const uno::Sequence< beans::PropertyValue >& aProps,
- sal_Int16 nStorageType )
+ sal_Int32 nStorageType )
: m_pImpl( NULL )
, m_rMutexRef( new SotMutexHolder )
, m_xStream( xStream )
@@ -107,7 +108,7 @@ uno::Any SAL_CALL OInputCompStream::queryInterface( const uno::Type& rType )
if ( aReturn.hasValue() == sal_True )
return aReturn ;
- if ( m_nStorageType == OFOPXML_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
aReturn <<= ::cppu::queryInterface
( rType
@@ -356,7 +357,7 @@ sal_Bool SAL_CALL OInputCompStream::hasByID( const ::rtl::OUString& sID )
throw lang::DisposedException();
}
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
try
@@ -384,7 +385,7 @@ sal_Bool SAL_CALL OInputCompStream::hasByID( const ::rtl::OUString& sID )
throw lang::DisposedException();
}
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
@@ -409,7 +410,7 @@ sal_Bool SAL_CALL OInputCompStream::hasByID( const ::rtl::OUString& sID )
throw lang::DisposedException();
}
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
@@ -434,7 +435,7 @@ uno::Sequence< beans::StringPair > SAL_CALL OInputCompStream::getRelationshipByI
throw lang::DisposedException();
}
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
// TODO/LATER: in future the unification of the ID could be checked
@@ -464,7 +465,7 @@ uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OInputCompStream::g
throw lang::DisposedException();
}
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
uno::Sequence< uno::Sequence< beans::StringPair > > aResult;
@@ -499,7 +500,7 @@ uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OInputCompStream::g
throw lang::DisposedException();
}
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
// TODO/LATER: in future the information could be taken directly from m_pImpl when possible
@@ -530,7 +531,7 @@ void SAL_CALL OInputCompStream::insertRelationshipByID( const ::rtl::OUString&
throw lang::DisposedException();
}
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
throw io::IOException(); // TODO: Access denied
@@ -550,7 +551,7 @@ void SAL_CALL OInputCompStream::removeRelationshipByID( const ::rtl::OUString&
throw lang::DisposedException();
}
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
throw io::IOException(); // TODO: Access denied
@@ -570,7 +571,7 @@ void SAL_CALL OInputCompStream::insertRelationships( const uno::Sequence< uno::
throw lang::DisposedException();
}
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
throw io::IOException(); // TODO: Access denied
@@ -589,7 +590,7 @@ void SAL_CALL OInputCompStream::clearRelationships()
throw lang::DisposedException();
}
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
throw io::IOException(); // TODO: Access denied
diff --git a/package/source/xstor/ocompinstream.hxx b/package/source/xstor/ocompinstream.hxx
index 047c8dc90758..fcb472e3f92a 100644
--- a/package/source/xstor/ocompinstream.hxx
+++ b/package/source/xstor/ocompinstream.hxx
@@ -60,17 +60,17 @@ protected:
sal_Bool m_bDisposed;
- sal_Int16 m_nStorageType;
+ sal_Int32 m_nStorageType;
public:
OInputCompStream( OWriteStream_Impl& pImpl,
::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > xStream,
const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aProps,
- sal_Int16 nStorageType );
+ sal_Int32 nStorageType );
OInputCompStream( ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > xStream,
const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aProps,
- sal_Int16 nStorageType );
+ sal_Int32 nStorageType );
virtual ~OInputCompStream();
diff --git a/package/source/xstor/oseekinstream.cxx b/package/source/xstor/oseekinstream.cxx
index 6419889d9d11..0cd3f595c2b3 100644
--- a/package/source/xstor/oseekinstream.cxx
+++ b/package/source/xstor/oseekinstream.cxx
@@ -39,7 +39,7 @@ using namespace ::com::sun::star;
OInputSeekStream::OInputSeekStream( OWriteStream_Impl& pImpl,
uno::Reference < io::XInputStream > xStream,
const uno::Sequence< beans::PropertyValue >& aProps,
- sal_Int16 nStorageType )
+ sal_Int32 nStorageType )
: OInputCompStream( pImpl, xStream, aProps, nStorageType )
{
if ( m_xStream.is() )
@@ -51,7 +51,7 @@ OInputSeekStream::OInputSeekStream( OWriteStream_Impl& pImpl,
OInputSeekStream::OInputSeekStream( uno::Reference < io::XInputStream > xStream,
const uno::Sequence< beans::PropertyValue >& aProps,
- sal_Int16 nStorageType )
+ sal_Int32 nStorageType )
: OInputCompStream( xStream, aProps, nStorageType )
{
if ( m_xStream.is() )
diff --git a/package/source/xstor/oseekinstream.hxx b/package/source/xstor/oseekinstream.hxx
index f8572d717956..92a611af16aa 100644
--- a/package/source/xstor/oseekinstream.hxx
+++ b/package/source/xstor/oseekinstream.hxx
@@ -42,11 +42,11 @@ public:
OInputSeekStream( OWriteStream_Impl& pImpl,
::com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream > xStream,
const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aProps,
- sal_Int16 nStorageType );
+ sal_Int32 nStorageType );
OInputSeekStream( ::com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream > xStream,
const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aProps,
- sal_Int16 nStorageType );
+ sal_Int32 nStorageType );
virtual ~OInputSeekStream();
diff --git a/package/source/xstor/owriteablestream.cxx b/package/source/xstor/owriteablestream.cxx
index c5381a11cfea..2e81c80c4321 100644
--- a/package/source/xstor/owriteablestream.cxx
+++ b/package/source/xstor/owriteablestream.cxx
@@ -35,6 +35,7 @@
#include <com/sun/star/io/XInputStream.hpp>
#include <com/sun/star/io/IOException.hpp>
#include <com/sun/star/embed/ElementModes.hpp>
+#include <com/sun/star/embed/StorageFormats.hpp>
#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
#include <cppuhelper/typeprovider.hxx>
#include <cppuhelper/exc_hlp.hxx>
@@ -244,7 +245,7 @@ OWriteStream_Impl::OWriteStream_Impl( OStorage_Impl* pParent,
const uno::Reference< lang::XSingleServiceFactory >& xPackage,
const uno::Reference< lang::XMultiServiceFactory >& xFactory,
sal_Bool bForceEncrypted,
- sal_Int16 nStorageType,
+ sal_Int32 nStorageType,
sal_Bool bDefaultCompress,
const uno::Reference< io::XInputStream >& xRelInfoStream )
: m_pAntiImpl( NULL )
@@ -254,7 +255,7 @@ OWriteStream_Impl::OWriteStream_Impl( OStorage_Impl* pParent,
, m_xFactory( xFactory )
, m_pParent( pParent )
, m_bForceEncrypted( bForceEncrypted )
-, m_bUseCommonPass( !bForceEncrypted && nStorageType == PACKAGE_STORAGE )
+, m_bUseCommonPass( !bForceEncrypted && nStorageType == embed::StorageFormats::PACKAGE )
, m_bHasCachedPassword( sal_False )
, m_bCompressedSetExplicit( !bDefaultCompress )
, m_xPackage( xPackage )
@@ -269,7 +270,7 @@ OWriteStream_Impl::OWriteStream_Impl( OStorage_Impl* pParent,
OSL_ENSURE( xPackage.is(), "No package component is provided!\n" );
OSL_ENSURE( m_xFactory.is(), "No package stream is provided!\n" );
OSL_ENSURE( pParent, "No parent storage is provided!\n" );
- OSL_ENSURE( m_nStorageType == OFOPXML_STORAGE || !m_xOrigRelInfoStream.is(), "The Relations info makes sence only for OFOPXML format!\n" );
+ OSL_ENSURE( m_nStorageType == embed::StorageFormats::OFOPXML || !m_xOrigRelInfoStream.is(), "The Relations info makes sence only for OFOPXML format!\n" );
}
//-----------------------------------------------
@@ -359,7 +360,7 @@ void OWriteStream_Impl::InsertIntoPackageFolder( const ::rtl::OUString& aName,
//-----------------------------------------------
sal_Bool OWriteStream_Impl::IsEncrypted()
{
- if ( m_nStorageType != PACKAGE_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE )
return sal_False;
if ( m_bForceEncrypted || m_bHasCachedPassword )
@@ -419,8 +420,8 @@ sal_Bool OWriteStream_Impl::IsEncrypted()
//-----------------------------------------------
void OWriteStream_Impl::SetDecrypted()
{
- OSL_ENSURE( m_nStorageType == PACKAGE_STORAGE, "The encryption is supported only for package storages!\n" );
- if ( m_nStorageType != PACKAGE_STORAGE )
+ OSL_ENSURE( m_nStorageType == embed::StorageFormats::PACKAGE, "The encryption is supported only for package storages!\n" );
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE )
throw uno::RuntimeException();
GetStreamProperties();
@@ -444,8 +445,8 @@ void OWriteStream_Impl::SetDecrypted()
//-----------------------------------------------
void OWriteStream_Impl::SetEncryptedWithPass( const ::rtl::OUString& aPass )
{
- OSL_ENSURE( m_nStorageType == PACKAGE_STORAGE, "The encryption is supported only for package storages!\n" );
- if ( m_nStorageType != PACKAGE_STORAGE )
+ OSL_ENSURE( m_nStorageType == embed::StorageFormats::PACKAGE, "The encryption is supported only for package storages!\n" );
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE )
throw uno::RuntimeException();
GetStreamProperties();
@@ -789,12 +790,12 @@ void OWriteStream_Impl::InsertStreamDirectly( const uno::Reference< io::XInputSt
bCompressedIsSet = sal_True;
aProps[nInd].Value >>= bCompressed;
}
- else if ( ( m_nStorageType == OFOPXML_STORAGE || m_nStorageType == PACKAGE_STORAGE )
+ else if ( ( m_nStorageType == embed::StorageFormats::OFOPXML || m_nStorageType == embed::StorageFormats::PACKAGE )
&& aProps[nInd].Name.equals( aMedTypePropName ) )
{
xPropertySet->setPropertyValue( aProps[nInd].Name, aProps[nInd].Value );
}
- else if ( m_nStorageType == PACKAGE_STORAGE && aProps[nInd].Name.equalsAscii( "UseCommonStoragePasswordEncryption" ) )
+ else if ( m_nStorageType == embed::StorageFormats::PACKAGE && aProps[nInd].Name.equalsAscii( "UseCommonStoragePasswordEncryption" ) )
aProps[nInd].Value >>= m_bUseCommonPass;
else
throw lang::IllegalArgumentException();
@@ -816,7 +817,7 @@ void OWriteStream_Impl::InsertStreamDirectly( const uno::Reference< io::XInputSt
if ( m_bUseCommonPass )
{
- if ( m_nStorageType != PACKAGE_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE )
throw uno::RuntimeException();
// set to be encrypted but do not use encryption key
@@ -915,7 +916,7 @@ void OWriteStream_Impl::Commit()
if ( m_bUseCommonPass )
{
- if ( m_nStorageType != PACKAGE_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE )
throw uno::RuntimeException();
// set to be encrypted but do not use encryption key
@@ -926,7 +927,7 @@ void OWriteStream_Impl::Commit()
}
else if ( m_bHasCachedPassword )
{
- if ( m_nStorageType != PACKAGE_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE )
throw uno::RuntimeException();
xPropertySet->setPropertyValue( ::rtl::OUString::createFromAscii( "EncryptionKey" ),
@@ -972,7 +973,7 @@ void OWriteStream_Impl::Revert()
m_bHasCachedPassword = sal_False;
m_aPass = ::rtl::OUString();
- if ( m_nStorageType == OFOPXML_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
// currently the relations storage is changed only on commit
m_xNewRelInfoStream = uno::Reference< io::XInputStream >();
@@ -1011,7 +1012,7 @@ uno::Sequence< beans::PropertyValue > OWriteStream_Impl::InsertOwnProps(
uno::Sequence< beans::PropertyValue > aResult( aProps );
sal_Int32 nLen = aResult.getLength();
- if ( m_nStorageType == PACKAGE_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::PACKAGE )
{
for ( sal_Int32 nInd = 0; nInd < nLen; nInd++ )
if ( aResult[nInd].Name.equalsAscii( "UseCommonStoragePasswordEncryption" ) )
@@ -1024,7 +1025,7 @@ uno::Sequence< beans::PropertyValue > OWriteStream_Impl::InsertOwnProps(
aResult[nLen - 1].Name = ::rtl::OUString::createFromAscii( "UseCommonStoragePasswordEncryption" );
aResult[nLen - 1].Value <<= bUseCommonPass;
}
- else if ( m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
ReadRelInfoIfNecessary();
@@ -1061,7 +1062,7 @@ sal_Bool OWriteStream_Impl::IsTransacted()
void OWriteStream_Impl::ReadRelInfoIfNecessary()
{
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
return;
if ( m_nRelInfoStatus == RELINFO_NO_INIT )
@@ -1114,24 +1115,24 @@ void OWriteStream_Impl::ReadRelInfoIfNecessary()
uno::Sequence< beans::PropertyValue > OWriteStream_Impl::ReadPackageStreamProperties()
{
sal_Int32 nPropNum = 0;
- if ( m_nStorageType == ZIP_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::ZIP )
nPropNum = 2;
- else if ( m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_nStorageType == embed::StorageFormats::OFOPXML )
nPropNum = 3;
- else if ( m_nStorageType == PACKAGE_STORAGE )
+ else if ( m_nStorageType == embed::StorageFormats::PACKAGE )
nPropNum = 4;
uno::Sequence< beans::PropertyValue > aResult( nPropNum );
// The "Compressed" property must be set after "MediaType" property,
// since the setting of the last one can change the value of the first one
- if ( m_nStorageType == OFOPXML_STORAGE || m_nStorageType == PACKAGE_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML || m_nStorageType == embed::StorageFormats::PACKAGE )
{
aResult[0].Name = ::rtl::OUString::createFromAscii("MediaType");
aResult[1].Name = ::rtl::OUString::createFromAscii("Compressed");
aResult[2].Name = ::rtl::OUString::createFromAscii("Size");
- if ( m_nStorageType == PACKAGE_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::PACKAGE )
aResult[3].Name = ::rtl::OUString::createFromAscii("Encrypted");
}
else
@@ -1177,7 +1178,7 @@ void OWriteStream_Impl::CopyInternallyTo_Impl( const uno::Reference< io::XStream
OSL_ENSURE( !m_bUseCommonPass, "The stream can not be encrypted!" );
- if ( m_nStorageType != PACKAGE_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE )
throw packages::NoEncryptionException();
if ( m_pAntiImpl )
@@ -1201,7 +1202,7 @@ void OWriteStream_Impl::CopyInternallyTo_Impl( const uno::Reference< io::XStream
//-----------------------------------------------
uno::Sequence< uno::Sequence< beans::StringPair > > OWriteStream_Impl::GetAllRelationshipsIfAny()
{
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
return uno::Sequence< uno::Sequence< beans::StringPair > >();
ReadRelInfoIfNecessary();
@@ -1516,7 +1517,7 @@ uno::Reference< io::XInputStream > OWriteStream_Impl::GetRawInStream()
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() ) ;
- if ( m_nStorageType != PACKAGE_STORAGE || !m_pParent )
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE || !m_pParent )
throw packages::NoEncryptionException();
return m_pParent->GetCommonRootPass();
@@ -1702,9 +1703,9 @@ void OWriteStream_Impl::GetCopyOfLastCommit( uno::Reference< io::XStream >& xTar
void OWriteStream_Impl::CommitStreamRelInfo( const uno::Reference< embed::XStorage >& xRelStorage, const ::rtl::OUString& aOrigStreamName, const ::rtl::OUString& aNewStreamName )
{
// at this point of time the old stream must be already cleaned
- OSL_ENSURE( m_nStorageType == OFOPXML_STORAGE, "The method should be used only with OFOPXML format!\n" );
+ OSL_ENSURE( m_nStorageType == embed::StorageFormats::OFOPXML, "The method should be used only with OFOPXML format!\n" );
- if ( m_nStorageType == OFOPXML_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
OSL_ENSURE( aOrigStreamName.getLength() && aNewStreamName.getLength() && xRelStorage.is(),
"Wrong relation persistence information is provided!\n" );
@@ -1972,12 +1973,12 @@ void OWriteStream::CopyToStreamInternally_Impl( const uno::Reference< io::XStrea
// the order of the properties setting is not important for StorageStream API
::rtl::OUString aPropName = ::rtl::OUString::createFromAscii( "Compressed" );
xDestProps->setPropertyValue( aPropName, getPropertyValue( aPropName ) );
- if ( m_pData->m_nStorageType == PACKAGE_STORAGE || m_pData->m_nStorageType == OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE || m_pData->m_nStorageType == embed::StorageFormats::OFOPXML )
{
aPropName = ::rtl::OUString::createFromAscii( "MediaType" );
xDestProps->setPropertyValue( aPropName, getPropertyValue( aPropName ) );
- if ( m_pData->m_nStorageType == PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE )
{
aPropName = ::rtl::OUString::createFromAscii( "UseCommonStoragePasswordEncryption" );
xDestProps->setPropertyValue( aPropName, getPropertyValue( aPropName ) );
@@ -2023,13 +2024,13 @@ uno::Any SAL_CALL OWriteStream::queryInterface( const uno::Type& rType )
if ( aReturn.hasValue() == sal_True )
return aReturn ;
- if ( m_pData->m_nStorageType == PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE )
{
aReturn <<= ::cppu::queryInterface
( rType
, static_cast<embed::XEncryptionProtectedSource*> ( this ) );
}
- else if ( m_pData->m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML )
{
aReturn <<= ::cppu::queryInterface
( rType
@@ -2077,7 +2078,7 @@ uno::Sequence< uno::Type > SAL_CALL OWriteStream::getTypes()
{
if ( m_bTransacted )
{
- if ( m_pData->m_nStorageType == PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE )
{
m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
( ::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
@@ -2093,7 +2094,7 @@ uno::Sequence< uno::Type > SAL_CALL OWriteStream::getTypes()
, ::getCppuType( ( const uno::Reference< embed::XTransactionBroadcaster >* )NULL )
, ::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
}
- else if ( m_pData->m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML )
{
m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
( ::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
@@ -2109,7 +2110,7 @@ uno::Sequence< uno::Type > SAL_CALL OWriteStream::getTypes()
, ::getCppuType( ( const uno::Reference< embed::XTransactionBroadcaster >* )NULL )
, ::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
}
- else // if ( m_pData->m_nStorageType == ZIP_STORAGE )
+ else // if ( m_pData->m_nStorageType == embed::StorageFormats::ZIP )
{
m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
( ::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
@@ -2127,7 +2128,7 @@ uno::Sequence< uno::Type > SAL_CALL OWriteStream::getTypes()
}
else
{
- if ( m_pData->m_nStorageType == PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE )
{
m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
( ::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
@@ -2140,7 +2141,7 @@ uno::Sequence< uno::Type > SAL_CALL OWriteStream::getTypes()
, ::getCppuType( ( const uno::Reference< embed::XEncryptionProtectedSource >* )NULL )
, ::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
}
- else if ( m_pData->m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML )
{
m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
( ::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
@@ -2153,7 +2154,7 @@ uno::Sequence< uno::Type > SAL_CALL OWriteStream::getTypes()
, ::getCppuType( ( const uno::Reference< embed::XRelationshipAccess >* )NULL )
, ::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
}
- else // if ( m_pData->m_nStorageType == ZIP_STORAGE )
+ else // if ( m_pData->m_nStorageType == embed::StorageFormats::ZIP )
{
m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
( ::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
@@ -2752,7 +2753,7 @@ sal_Bool SAL_CALL OWriteStream::hasByID( const ::rtl::OUString& sID )
throw lang::DisposedException();
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
try
@@ -2783,7 +2784,7 @@ sal_Bool SAL_CALL OWriteStream::hasByID( const ::rtl::OUString& sID )
throw lang::DisposedException();
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
@@ -2808,7 +2809,7 @@ sal_Bool SAL_CALL OWriteStream::hasByID( const ::rtl::OUString& sID )
throw lang::DisposedException();
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
@@ -2833,7 +2834,7 @@ uno::Sequence< beans::StringPair > SAL_CALL OWriteStream::getRelationshipByID(
throw lang::DisposedException();
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
// TODO/LATER: in future the unification of the ID could be checked
@@ -2863,7 +2864,7 @@ uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OWriteStream::getRe
throw lang::DisposedException();
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
uno::Sequence< uno::Sequence< beans::StringPair > > aResult;
@@ -2898,7 +2899,7 @@ uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OWriteStream::getAl
throw lang::DisposedException();
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
return m_pImpl->GetAllRelationshipsIfAny();
@@ -2918,7 +2919,7 @@ void SAL_CALL OWriteStream::insertRelationshipByID( const ::rtl::OUString& sID,
throw lang::DisposedException();
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
::rtl::OUString aIDTag( RTL_CONSTASCII_USTRINGPARAM( "Id" ) );
@@ -2983,7 +2984,7 @@ void SAL_CALL OWriteStream::removeRelationshipByID( const ::rtl::OUString& sID
throw lang::DisposedException();
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
@@ -3025,7 +3026,7 @@ void SAL_CALL OWriteStream::insertRelationships( const uno::Sequence< uno::Sequ
throw lang::DisposedException();
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
::rtl::OUString aIDTag( RTL_CONSTASCII_USTRINGPARAM( "Id" ) );
@@ -3107,7 +3108,7 @@ void SAL_CALL OWriteStream::clearRelationships()
throw lang::DisposedException();
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
m_pImpl->m_aNewRelInfo.realloc( 0 );
@@ -3144,7 +3145,7 @@ void SAL_CALL OWriteStream::setPropertyValue( const ::rtl::OUString& aPropertyNa
m_pImpl->GetStreamProperties();
::rtl::OUString aCompressedString( RTL_CONSTASCII_USTRINGPARAM( "Compressed" ) );
::rtl::OUString aMediaTypeString( RTL_CONSTASCII_USTRINGPARAM( "MediaType" ) );
- if ( m_pData->m_nStorageType == PACKAGE_STORAGE && aPropertyName.equals( aMediaTypeString ) )
+ if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE && aPropertyName.equals( aMediaTypeString ) )
{
// if the "Compressed" property is not set explicitly, the MediaType can change the default value
sal_Bool bCompressedValueFromType = sal_True;
@@ -3177,7 +3178,7 @@ void SAL_CALL OWriteStream::setPropertyValue( const ::rtl::OUString& aPropertyNa
m_pImpl->m_aProps[nInd].Value = aValue;
}
}
- else if ( m_pData->m_nStorageType == PACKAGE_STORAGE
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE
&& aPropertyName.equalsAscii( "UseCommonStoragePasswordEncryption" ) )
{
sal_Bool bUseCommonPass = sal_False;
@@ -3202,7 +3203,7 @@ void SAL_CALL OWriteStream::setPropertyValue( const ::rtl::OUString& aPropertyNa
else
throw lang::IllegalArgumentException(); //TODO
}
- else if ( m_pData->m_nStorageType == OFOPXML_STORAGE && aPropertyName.equals( aMediaTypeString ) )
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML && aPropertyName.equals( aMediaTypeString ) )
{
for ( sal_Int32 nInd = 0; nInd < m_pImpl->m_aProps.getLength(); nInd++ )
{
@@ -3210,7 +3211,7 @@ void SAL_CALL OWriteStream::setPropertyValue( const ::rtl::OUString& aPropertyNa
m_pImpl->m_aProps[nInd].Value = aValue;
}
}
- else if ( m_pData->m_nStorageType == OFOPXML_STORAGE && aPropertyName.equalsAscii( "RelationsInfoStream" ) )
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML && aPropertyName.equalsAscii( "RelationsInfoStream" ) )
{
uno::Reference< io::XInputStream > xInRelStream;
if ( ( aValue >>= xInRelStream ) && xInRelStream.is() )
@@ -3231,7 +3232,7 @@ void SAL_CALL OWriteStream::setPropertyValue( const ::rtl::OUString& aPropertyNa
else
throw lang::IllegalArgumentException(); // TODO
}
- else if ( m_pData->m_nStorageType == OFOPXML_STORAGE && aPropertyName.equalsAscii( "RelationsInfo" ) )
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML && aPropertyName.equalsAscii( "RelationsInfo" ) )
{
if ( aValue >>= m_pImpl->m_aNewRelInfo )
{
@@ -3241,7 +3242,7 @@ void SAL_CALL OWriteStream::setPropertyValue( const ::rtl::OUString& aPropertyNa
}
else if ( aPropertyName.equalsAscii( "Size" ) )
throw beans::PropertyVetoException(); // TODO
- else if ( m_pData->m_nStorageType == PACKAGE_STORAGE
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE
&& ( aPropertyName.equalsAscii( "IsEncrypted" ) || aPropertyName.equalsAscii( "Encrypted" ) ) )
throw beans::PropertyVetoException(); // TODO
else
@@ -3277,9 +3278,9 @@ uno::Any SAL_CALL OWriteStream::getPropertyValue( const ::rtl::OUString& aProp )
else
aPropertyName = aProp;
- if ( ( ( m_pData->m_nStorageType == PACKAGE_STORAGE || m_pData->m_nStorageType == OFOPXML_STORAGE )
+ if ( ( ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE || m_pData->m_nStorageType == embed::StorageFormats::OFOPXML )
&& aPropertyName.equalsAscii( "MediaType" ) )
- || m_pData->m_nStorageType == PACKAGE_STORAGE && aPropertyName.equalsAscii( "Encrypted" )
+ || m_pData->m_nStorageType == embed::StorageFormats::PACKAGE && aPropertyName.equalsAscii( "Encrypted" )
|| aPropertyName.equalsAscii( "Compressed" ) )
{
m_pImpl->GetStreamProperties();
@@ -3290,7 +3291,7 @@ uno::Any SAL_CALL OWriteStream::getPropertyValue( const ::rtl::OUString& aProp )
return m_pImpl->m_aProps[nInd].Value;
}
}
- else if ( m_pData->m_nStorageType == PACKAGE_STORAGE
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE
&& aPropertyName.equalsAscii( "UseCommonStoragePasswordEncryption" ) )
return uno::makeAny( m_pImpl->m_bUseCommonPass );
else if ( aPropertyName.equalsAscii( "Size" ) )
diff --git a/package/source/xstor/owriteablestream.hxx b/package/source/xstor/owriteablestream.hxx
index 94b97fb09eb2..0d4a29893887 100644
--- a/package/source/xstor/owriteablestream.hxx
+++ b/package/source/xstor/owriteablestream.hxx
@@ -83,10 +83,10 @@ struct WSInternalData_Impl
SotMutexHolderRef m_rSharedMutexRef;
::cppu::OTypeCollection* m_pTypeCollection;
::cppu::OMultiTypeInterfaceContainerHelper m_aListenersContainer; // list of listeners
- sal_Int16 m_nStorageType;
+ sal_Int32 m_nStorageType;
// the mutex reference MUST NOT be empty
- WSInternalData_Impl( const SotMutexHolderRef rMutexRef, sal_Int16 nStorageType )
+ WSInternalData_Impl( const SotMutexHolderRef rMutexRef, sal_Int32 nStorageType )
: m_rSharedMutexRef( rMutexRef )
, m_pTypeCollection( NULL )
, m_aListenersContainer( rMutexRef->GetMutex() )
@@ -137,7 +137,7 @@ struct OWriteStream_Impl : public PreCreationStruct
sal_Bool m_bHasInsertedStreamOptimization;
- sal_Int16 m_nStorageType;
+ sal_Int32 m_nStorageType;
// Relations info related data, stored in *.rels file in OFOPXML format
::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > m_xOrigRelInfoStream;
@@ -175,7 +175,7 @@ public:
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory >& xPackage,
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
sal_Bool bForceEncrypted,
- sal_Int16 nStorageType,
+ sal_Int32 nStorageType,
sal_Bool bDefaultCompress,
const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xRelInfoStream =
::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >() );
diff --git a/package/source/xstor/xfactory.cxx b/package/source/xstor/xfactory.cxx
index e78742641a0b..68c393fed08b 100644
--- a/package/source/xstor/xfactory.cxx
+++ b/package/source/xstor/xfactory.cxx
@@ -29,9 +29,11 @@
#include "precompiled_package.hxx"
#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
#include <com/sun/star/embed/ElementModes.hpp>
+#include <com/sun/star/embed/StorageFormats.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/io/XSeekable.hpp>
+#include <comphelper/storagehelper.hxx>
#include "xfactory.hxx"
#include "xstorage.hxx"
@@ -101,7 +103,7 @@ uno::Reference< uno::XInterface > SAL_CALL OStorageFactory::createInstance()
embed::ElementModes::READWRITE,
uno::Sequence< beans::PropertyValue >(),
m_xFactory,
- PACKAGE_STORAGE ) ),
+ embed::StorageFormats::PACKAGE ) ),
uno::UNO_QUERY );
}
@@ -184,7 +186,7 @@ uno::Reference< uno::XInterface > SAL_CALL OStorageFactory::createInstanceWithAr
uno::Sequence< beans::PropertyValue > aDescr;
uno::Sequence< beans::PropertyValue > aPropsToSet;
- sal_Int16 nStorageType = PACKAGE_STORAGE;
+ sal_Int32 nStorageType = embed::StorageFormats::PACKAGE;
if ( nArgNum >= 3 )
{
@@ -212,15 +214,29 @@ uno::Reference< uno::XInterface > SAL_CALL OStorageFactory::createInstanceWithAr
else if ( aDescr[nInd].Name.equalsAscii( "StorageFormat" ) )
{
::rtl::OUString aFormatName;
- aDescr[nInd].Value >>= aFormatName;
- if ( aFormatName.equalsAscii( "PackageFormat" ) )
- nStorageType = PACKAGE_STORAGE;
- else if ( aFormatName.equalsAscii( "ZipFormat" ) )
- nStorageType = ZIP_STORAGE;
- else if ( aFormatName.equalsAscii( "OFOPXMLFormat" ) )
- nStorageType = OFOPXML_STORAGE;
+ sal_Int32 nFormatID = 0;
+ if ( aDescr[nInd].Value >>= aFormatName )
+ {
+ if ( aFormatName.equals( PACKAGE_STORAGE_FORMAT_STRING ) )
+ nStorageType = embed::StorageFormats::PACKAGE;
+ else if ( aFormatName.equals( ZIP_STORAGE_FORMAT_STRING ) )
+ nStorageType = embed::StorageFormats::ZIP;
+ else if ( aFormatName.equals( OFOPXML_STORAGE_FORMAT_STRING ) )
+ nStorageType = embed::StorageFormats::OFOPXML;
+ else
+ throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 );
+ }
+ else if ( aDescr[nInd].Value >>= nFormatID )
+ {
+ if ( nFormatID != embed::StorageFormats::PACKAGE
+ && nFormatID != embed::StorageFormats::ZIP
+ && nFormatID != embed::StorageFormats::OFOPXML )
+ throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 );
+
+ nStorageType = nFormatID;
+ }
else
- throw lang::IllegalArgumentException(); // TODO:
+ throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 );
}
else
OSL_ENSURE( sal_False, "Unacceptable property, will be ignored!\n" );
diff --git a/package/source/xstor/xstorage.cxx b/package/source/xstor/xstorage.cxx
index 55ff5a87e78d..007f199332c5 100644
--- a/package/source/xstor/xstorage.cxx
+++ b/package/source/xstor/xstorage.cxx
@@ -30,6 +30,7 @@
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/embed/ElementModes.hpp>
#include <com/sun/star/embed/UseBackupException.hpp>
+#include <com/sun/star/embed/StorageFormats.hpp>
#include <com/sun/star/ucb/XProgressHandler.hpp>
#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
#include <com/sun/star/container/XEnumerationAccess.hpp>
@@ -72,7 +73,7 @@ struct StorInternalData_Impl
::cppu::OMultiTypeInterfaceContainerHelper m_aListenersContainer; // list of listeners
::cppu::OTypeCollection* m_pTypeCollection;
sal_Bool m_bIsRoot;
- sal_Int16 m_nStorageType; // the mode in wich the storage is used
+ sal_Int32 m_nStorageType; // the mode in wich the storage is used
sal_Bool m_bReadOnlyWrap;
OChildDispListener_Impl* m_pSubElDispListener;
@@ -82,12 +83,12 @@ struct StorInternalData_Impl
::rtl::Reference< OHierarchyHolder_Impl > m_rHierarchyHolder;
// the mutex reference MUST NOT be empty
- StorInternalData_Impl( const SotMutexHolderRef& rMutexRef, sal_Bool bRoot, sal_Int16 nStorType, sal_Bool bReadOnlyWrap )
+ StorInternalData_Impl( const SotMutexHolderRef& rMutexRef, sal_Bool bRoot, sal_Int32 nStorageType, sal_Bool bReadOnlyWrap )
: m_rSharedMutexRef( rMutexRef )
, m_aListenersContainer( rMutexRef->GetMutex() )
, m_pTypeCollection( NULL )
, m_bIsRoot( bRoot )
- , m_nStorageType( nStorType )
+ , m_nStorageType( nStorageType )
, m_bReadOnlyWrap( bReadOnlyWrap )
, m_pSubElDispListener( NULL )
{}
@@ -102,7 +103,7 @@ struct StorInternalData_Impl
void OStorage_Impl::completeStorageStreamCopy_Impl(
const uno::Reference< io::XStream >& xSource,
const uno::Reference< io::XStream >& xDest,
- sal_Int16 nStorageType,
+ sal_Int32 nStorageType,
const uno::Sequence< uno::Sequence< beans::StringPair > >& aRelInfo )
{
uno::Reference< beans::XPropertySet > xSourceProps( xSource, uno::UNO_QUERY );
@@ -124,13 +125,13 @@ void OStorage_Impl::completeStorageStreamCopy_Impl(
uno::Sequence< ::rtl::OUString > aPropNames( 1 );
aPropNames[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Compressed" ) );
- if ( nStorageType == PACKAGE_STORAGE )
+ if ( nStorageType == embed::StorageFormats::PACKAGE )
{
aPropNames.realloc( 3 );
aPropNames[1] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MediaType" ) );
aPropNames[2] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "UseCommonStoragePasswordEncryption" ) );
}
- else if ( nStorageType == OFOPXML_STORAGE )
+ else if ( nStorageType == embed::StorageFormats::OFOPXML )
{
// TODO/LATER: in future it might make sence to provide the stream if there is one
uno::Reference< embed::XRelationshipAccess > xRelAccess( xDest, uno::UNO_QUERY_THROW );
@@ -195,7 +196,7 @@ OStorage_Impl::OStorage_Impl( uno::Reference< io::XInputStream > xInputStream,
sal_Int32 nMode,
uno::Sequence< beans::PropertyValue > xProperties,
uno::Reference< lang::XMultiServiceFactory > xFactory,
- sal_Int16 nStorageType )
+ sal_Int32 nStorageType )
: m_rMutexRef( new SotMutexHolder )
, m_pAntiImpl( NULL )
, m_nStorageMode( nMode & ~embed::ElementModes::SEEKABLE )
@@ -235,7 +236,7 @@ OStorage_Impl::OStorage_Impl( uno::Reference< io::XStream > xStream,
sal_Int32 nMode,
uno::Sequence< beans::PropertyValue > xProperties,
uno::Reference< lang::XMultiServiceFactory > xFactory,
- sal_Int16 nStorageType )
+ sal_Int32 nStorageType )
: m_rMutexRef( new SotMutexHolder )
, m_pAntiImpl( NULL )
, m_nStorageMode( nMode & ~embed::ElementModes::SEEKABLE )
@@ -278,7 +279,7 @@ OStorage_Impl::OStorage_Impl( OStorage_Impl* pParent,
uno::Reference< container::XNameContainer > xPackageFolder,
uno::Reference< lang::XSingleServiceFactory > xPackage,
uno::Reference< lang::XMultiServiceFactory > xFactory,
- sal_Int16 nStorageType )
+ sal_Int32 nStorageType )
: m_rMutexRef( new SotMutexHolder )
, m_pAntiImpl( NULL )
, m_nStorageMode( nMode & ~embed::ElementModes::SEEKABLE )
@@ -356,7 +357,7 @@ OStorage_Impl::~OStorage_Impl()
m_aDeletedList.clear();
- if ( m_nStorageType == OFOPXML_STORAGE && m_pRelStorElement )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML && m_pRelStorElement )
{
delete m_pRelStorElement;
m_pRelStorElement = NULL;
@@ -500,7 +501,7 @@ void OStorage_Impl::OpenOwnPackage()
}
}
- if ( m_nStorageType == ZIP_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::ZIP )
{
// let the package support only plain zip format
beans::NamedValue aNamedValue;
@@ -509,7 +510,7 @@ void OStorage_Impl::OpenOwnPackage()
aArguments.realloc( ++nArgNum );
aArguments[nArgNum-1] <<= aNamedValue;
}
- else if ( m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
// let the package support OFOPXML media type handling
beans::NamedValue aNamedValue;
@@ -562,7 +563,7 @@ SotElementList_Impl& OStorage_Impl::GetChildrenList()
//-----------------------------------------------
void OStorage_Impl::GetStorageProperties()
{
- if ( m_nStorageType == PACKAGE_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::PACKAGE )
{
uno::Reference< beans::XPropertySet > xProps( m_xPackageFolder, uno::UNO_QUERY_THROW );
@@ -588,7 +589,7 @@ void OStorage_Impl::GetStorageProperties()
//-----------------------------------------------
void OStorage_Impl::ReadRelInfoIfNecessary()
{
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
return;
if ( m_nRelInfoStatus == RELINFO_NO_INIT )
@@ -662,7 +663,7 @@ void OStorage_Impl::ReadContents()
uno::Reference< container::XNameContainer > xNameContainer( xNamed, uno::UNO_QUERY );
SotElement_Impl* pNewElement = new SotElement_Impl( aName, xNameContainer.is(), sal_False );
- if ( m_nStorageType == OFOPXML_STORAGE && aName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML && aName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
{
if ( !pNewElement->m_bIsStorage )
throw io::IOException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() ); // TODO: Unexpected format
@@ -730,7 +731,7 @@ void OStorage_Impl::CopyToStorage( const uno::Reference< embed::XStorage >& xDes
}
// move storage properties to the destination one ( means changeable properties )
- if ( m_nStorageType == PACKAGE_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::PACKAGE )
{
::rtl::OUString aMediaTypeString = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MediaType" ) );
::rtl::OUString aVersionString = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Version" ) );
@@ -738,7 +739,7 @@ void OStorage_Impl::CopyToStorage( const uno::Reference< embed::XStorage >& xDes
xPropSet->setPropertyValue( aVersionString, uno::makeAny( m_aVersion ) );
}
- if ( m_nStorageType == PACKAGE_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::PACKAGE )
{
// if this is a root storage, the common key from current one should be moved there
sal_Bool bIsRoot = sal_False;
@@ -759,7 +760,7 @@ void OStorage_Impl::CopyToStorage( const uno::Reference< embed::XStorage >& xDes
}
}
}
- else if ( m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
// TODO/LATER: currently the optimization is not active
@@ -850,13 +851,13 @@ void OStorage_Impl::CopyStorageElement( SotElement_Impl* pElement,
}
}
- if ( m_nStorageType == PACKAGE_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::PACKAGE )
{
aStrProps.realloc( ++nNum );
aStrProps[nNum-1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "UseCommonStoragePasswordEncryption" ) );
aStrProps[nNum-1].Value <<= (sal_Bool)( pElement->m_pStream->UsesCommonPass_Impl() );
}
- else if ( m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
// TODO/LATER: currently the optimization is not active
// uno::Reference< io::XInputStream > xInStream = GetRelInfoStreamForName( ::rtl::OUString() ); // own rels stream
@@ -907,7 +908,7 @@ void OStorage_Impl::CopyStorageElement( SotElement_Impl* pElement,
pElement->m_pStream->CopyInternallyTo_Impl( xSubStr );
}
}
- else if ( m_nStorageType != PACKAGE_STORAGE )
+ else if ( m_nStorageType != embed::StorageFormats::PACKAGE )
{
OSL_ENSURE( sal_False, "Encryption is only supported in package storage!\n" );
throw io::IOException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
@@ -994,7 +995,7 @@ void OStorage_Impl::CopyStorageElement( SotElement_Impl* pElement,
//-----------------------------------------------
uno::Sequence< uno::Sequence< beans::StringPair > > OStorage_Impl::GetAllRelationshipsIfAny()
{
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
return uno::Sequence< uno::Sequence< beans::StringPair > >();
ReadRelInfoIfNecessary();
@@ -1088,7 +1089,7 @@ void OStorage_Impl::Commit()
pDeletedIter++ )
{
- if ( m_nStorageType == OFOPXML_STORAGE && !(*pDeletedIter)->m_bIsStorage )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML && !(*pDeletedIter)->m_bIsStorage )
RemoveStreamRelInfo( (*pDeletedIter)->m_aOriginalName );
// the removed elements are not in new temporary storage
@@ -1108,7 +1109,7 @@ void OStorage_Impl::Commit()
if ( (*pElementIter)->m_bIsRemoved )
{
- if ( m_nStorageType == OFOPXML_STORAGE && !(*pElementIter)->m_bIsStorage )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML && !(*pElementIter)->m_bIsStorage )
RemoveStreamRelInfo( (*pElementIter)->m_aOriginalName );
// the removed elements are not in new temporary storage
@@ -1158,7 +1159,7 @@ void OStorage_Impl::Commit()
}
else if ( !(*pElementIter)->m_bIsStorage && (*pElementIter)->m_pStream && (*pElementIter)->m_pStream->m_bFlushed )
{
- if ( m_nStorageType == OFOPXML_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML )
CommitStreamRelInfo( *pElementIter );
// the renamed elements are not in new temporary storage
@@ -1184,7 +1185,7 @@ void OStorage_Impl::Commit()
xNewPackageFolder->removeByName( (*pElementIter)->m_aOriginalName );
xNewPackageFolder->insertByName( (*pElementIter)->m_aName, aPackageElement );
- if ( m_nStorageType == OFOPXML_STORAGE && !(*pElementIter)->m_bIsStorage )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML && !(*pElementIter)->m_bIsStorage )
{
if ( !(*pElementIter)->m_pStream )
{
@@ -1233,7 +1234,7 @@ void OStorage_Impl::Commit()
if ( (*pElementIter)->m_pStream->m_bFlushed )
{
- if ( m_nStorageType == OFOPXML_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML )
CommitStreamRelInfo( *pElementIter );
(*pElementIter)->m_pStream->InsertIntoPackageFolder( (*pElementIter)->m_aName, xNewPackageFolder );
@@ -1244,7 +1245,7 @@ void OStorage_Impl::Commit()
}
}
- if ( m_nStorageType == PACKAGE_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::PACKAGE )
{
// move properties to the destination package folder
uno::Reference< beans::XPropertySet > xProps( xNewPackageFolder, uno::UNO_QUERY );
@@ -1255,7 +1256,7 @@ void OStorage_Impl::Commit()
xProps->setPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Version" ) ), uno::makeAny( m_aVersion ) );
}
- if ( m_nStorageType == OFOPXML_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML )
CommitRelInfo( xNewPackageFolder ); // store own relations and commit complete relations storage
if ( m_bIsRoot )
@@ -1349,7 +1350,7 @@ void OStorage_Impl::Revert()
GetStorageProperties();
- if ( m_nStorageType == OFOPXML_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
// currently the relations storage is changed only on commit
m_xNewRelInfoStream = uno::Reference< io::XInputStream >();
@@ -1364,7 +1365,7 @@ void OStorage_Impl::Revert()
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() ) ;
- if ( m_nStorageType != PACKAGE_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE )
throw packages::NoEncryptionException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
if ( m_bIsRoot )
@@ -1422,8 +1423,8 @@ SotElement_Impl* OStorage_Impl::InsertStream( ::rtl::OUString aName, sal_Bool bE
if ( !xPackageSubStream.is() )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
- OSL_ENSURE( m_nStorageType == PACKAGE_STORAGE || !bEncr, "Only package storage supports encryption!\n" );
- if ( m_nStorageType != PACKAGE_STORAGE && bEncr )
+ OSL_ENSURE( m_nStorageType == embed::StorageFormats::PACKAGE || !bEncr, "Only package storage supports encryption!\n" );
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE && bEncr )
throw packages::NoEncryptionException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
// the mode is not needed for storage stream internal implementation
@@ -1445,7 +1446,7 @@ SotElement_Impl* OStorage_Impl::InsertRawStream( ::rtl::OUString aName, const un
if ( !m_xPackage.is() )
throw embed::InvalidStorageException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
- if ( m_nStorageType != PACKAGE_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::PACKAGE )
throw packages::NoEncryptionException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
uno::Reference< io::XSeekable > xSeek( xInStream, uno::UNO_QUERY );
@@ -1726,7 +1727,7 @@ void OStorage_Impl::RemoveStreamRelInfo( const ::rtl::OUString& aOriginalName )
// this method should be used only in OStorage_Impl::Commit() method
// the aOriginalName can be empty, in this case the storage relation info should be removed
- if ( m_nStorageType == OFOPXML_STORAGE && m_xRelStorage.is() )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML && m_xRelStorage.is() )
{
::rtl::OUString aRelStreamName = aOriginalName;
aRelStreamName += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".rels" ) );
@@ -1739,7 +1740,7 @@ void OStorage_Impl::RemoveStreamRelInfo( const ::rtl::OUString& aOriginalName )
//-----------------------------------------------
void OStorage_Impl::CreateRelStorage()
{
- if ( m_nStorageType != OFOPXML_STORAGE )
+ if ( m_nStorageType != embed::StorageFormats::OFOPXML )
return;
if ( !m_xRelStorage.is() )
@@ -1772,7 +1773,7 @@ void OStorage_Impl::CommitStreamRelInfo( SotElement_Impl* pStreamElement )
if ( !pStreamElement )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
- if ( m_nStorageType == OFOPXML_STORAGE && pStreamElement->m_pStream )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML && pStreamElement->m_pStream )
{
OSL_ENSURE( pStreamElement->m_aName.getLength(), "The name must not be empty!\n" );
@@ -1789,7 +1790,7 @@ void OStorage_Impl::CommitStreamRelInfo( SotElement_Impl* pStreamElement )
//-----------------------------------------------
uno::Reference< io::XInputStream > OStorage_Impl::GetRelInfoStreamForName( const ::rtl::OUString& aName )
{
- if ( m_nStorageType == OFOPXML_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
ReadContents();
if ( m_xRelStorage.is() )
@@ -1817,7 +1818,7 @@ void OStorage_Impl::CommitRelInfo( const uno::Reference< container::XNameContain
if ( !xNewPackageFolder.is() )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
- if ( m_nStorageType == OFOPXML_STORAGE )
+ if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
if ( m_nRelInfoStatus == RELINFO_BROKEN || m_nRelInfoStatus == RELINFO_CHANGED_BROKEN )
throw io::IOException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
@@ -1923,7 +1924,7 @@ OStorage::OStorage( uno::Reference< io::XInputStream > xInputStream,
sal_Int32 nMode,
uno::Sequence< beans::PropertyValue > xProperties,
uno::Reference< lang::XMultiServiceFactory > xFactory,
- sal_Int16 nStorageType )
+ sal_Int32 nStorageType )
: m_pImpl( new OStorage_Impl( xInputStream, nMode, xProperties, xFactory, nStorageType ) )
{
m_pImpl->m_pAntiImpl = this;
@@ -1935,7 +1936,7 @@ OStorage::OStorage( uno::Reference< io::XStream > xStream,
sal_Int32 nMode,
uno::Sequence< beans::PropertyValue > xProperties,
uno::Reference< lang::XMultiServiceFactory > xFactory,
- sal_Int16 nStorageType )
+ sal_Int32 nStorageType )
: m_pImpl( new OStorage_Impl( xStream, nMode, xProperties, xFactory, nStorageType ) )
{
m_pImpl->m_pAntiImpl = this;
@@ -2259,7 +2260,7 @@ uno::Any SAL_CALL OStorage::queryInterface( const uno::Type& rType )
if ( aReturn.hasValue() == sal_True )
return aReturn ;
- if ( m_pData->m_nStorageType == PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE )
{
if ( m_pData->m_bIsRoot )
{
@@ -2275,7 +2276,7 @@ uno::Any SAL_CALL OStorage::queryInterface( const uno::Type& rType )
, static_cast<embed::XStorageRawAccess*> ( this ) );
}
}
- else if ( m_pData->m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML )
{
aReturn <<= ::cppu::queryInterface
( rType
@@ -2314,7 +2315,7 @@ uno::Sequence< uno::Type > SAL_CALL OStorage::getTypes()
if ( m_pData->m_pTypeCollection == NULL )
{
- if ( m_pData->m_nStorageType == PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE )
{
if ( m_pData->m_bIsRoot )
{
@@ -2340,7 +2341,7 @@ uno::Sequence< uno::Type > SAL_CALL OStorage::getTypes()
, ::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
}
}
- else if ( m_pData->m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML )
{
m_pData->m_pTypeCollection = new ::cppu::OTypeCollection
( ::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
@@ -2482,7 +2483,7 @@ uno::Reference< io::XStream > SAL_CALL OStorage::openStreamElement(
if ( !aStreamName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aStreamName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aStreamName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); // unacceptable element name
@@ -2583,7 +2584,7 @@ uno::Reference< io::XStream > SAL_CALL OStorage::openEncryptedStreamElement(
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::PACKAGE )
packages::NoEncryptionException();
if ( ( nOpenMode & embed::ElementModes::WRITE ) && m_pData->m_bReadOnlyWrap )
@@ -2693,7 +2694,7 @@ uno::Reference< embed::XStorage > SAL_CALL OStorage::openStorageElement(
if ( !aStorName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aStorName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aStorName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); // unacceptable storage name
@@ -2848,7 +2849,7 @@ uno::Reference< io::XStream > SAL_CALL OStorage::cloneStreamElement( const ::rtl
if ( !aStreamName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aStreamName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aStreamName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); // unacceptable storage name
@@ -2930,7 +2931,7 @@ uno::Reference< io::XStream > SAL_CALL OStorage::cloneEncryptedStreamElement(
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::PACKAGE )
packages::NoEncryptionException();
if ( !aPass.getLength() )
@@ -3087,7 +3088,7 @@ void SAL_CALL OStorage::copyStorageElementLastCommitTo(
if ( !aStorName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aStorName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aStorName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); // unacceptable storage name
@@ -3181,7 +3182,7 @@ sal_Bool SAL_CALL OStorage::isStreamElement( const ::rtl::OUString& aElementName
if ( !aElementName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aElementName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aElementName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); // unacceptable name
@@ -3250,7 +3251,7 @@ sal_Bool SAL_CALL OStorage::isStorageElement( const ::rtl::OUString& aElementNam
if ( !aElementName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aElementName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aElementName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 );
@@ -3323,7 +3324,7 @@ void SAL_CALL OStorage::removeElement( const ::rtl::OUString& aElementName )
if ( !aElementName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aElementName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aElementName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); // TODO: unacceptable name
@@ -3418,7 +3419,7 @@ void SAL_CALL OStorage::renameElement( const ::rtl::OUString& aElementName, cons
|| !aNewName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aNewName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& ( aElementName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) )
|| aNewName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 0 ); // TODO: unacceptable element name
@@ -3529,7 +3530,7 @@ void SAL_CALL OStorage::copyElementTo( const ::rtl::OUString& aElementName,
// || xDest == uno::Reference< uno::XInterface >( static_cast< OWeakObject* >( this ), uno::UNO_QUERY ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 2 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& ( aElementName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) )
|| aNewName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 0 ); // unacceptable element name
@@ -3633,7 +3634,7 @@ void SAL_CALL OStorage::moveElementTo( const ::rtl::OUString& aElementName,
if ( !xDest.is() || xDest == uno::Reference< uno::XInterface >( static_cast< OWeakObject* >( this ), uno::UNO_QUERY ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 2 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& ( aElementName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) )
|| aNewName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 0 ); // unacceptable element name
@@ -3743,7 +3744,7 @@ uno::Reference< io::XInputStream > SAL_CALL OStorage::getPlainRawStreamElement(
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() ); // the interface is not supported and must not be accessible
if ( !sStreamName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( sStreamName, sal_False ) )
@@ -3853,7 +3854,7 @@ uno::Reference< io::XInputStream > SAL_CALL OStorage::getRawEncrStreamElement(
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::PACKAGE )
throw packages::NoEncryptionException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
if ( !sStreamName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( sStreamName, sal_False ) )
@@ -3973,7 +3974,7 @@ void SAL_CALL OStorage::insertRawEncrStreamElement( const ::rtl::OUString& aStre
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::PACKAGE )
throw packages::NoEncryptionException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
if ( !aStreamName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aStreamName, sal_False ) )
@@ -4334,7 +4335,7 @@ uno::Any SAL_CALL OStorage::getByName( const ::rtl::OUString& aName )
if ( !aName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); // unacceptable element name
@@ -4439,7 +4440,7 @@ sal_Bool SAL_CALL OStorage::hasByName( const ::rtl::OUString& aName )
if ( !aName.getLength() )
return sal_False;
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
return sal_False;
@@ -4616,7 +4617,7 @@ void SAL_CALL OStorage::setEncryptionPassword( const ::rtl::OUString& aPass )
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::PACKAGE )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() ); // the interface must be visible only for package storage
OSL_ENSURE( m_pData->m_bIsRoot, "setEncryptionPassword() method is not available for nonroot storages!\n" );
@@ -4682,7 +4683,7 @@ void SAL_CALL OStorage::removeEncryption()
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::PACKAGE )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() ); // the interface must be visible only for package storage
OSL_ENSURE( m_pData->m_bIsRoot, "removeEncryption() method is not available for nonroot storages!\n" );
@@ -4783,9 +4784,9 @@ void SAL_CALL OStorage::setPropertyValue( const ::rtl::OUString& aPropertyName,
if ( m_pData->m_bReadOnlyWrap && !aPropertyName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Version" ) ) ) )
throw io::IOException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() ); // TODO: Access denied
- if ( m_pData->m_nStorageType == ZIP_STORAGE )
+ if ( m_pData->m_nStorageType == embed::StorageFormats::ZIP )
throw beans::UnknownPropertyException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
- else if ( m_pData->m_nStorageType == PACKAGE_STORAGE )
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE )
{
if ( aPropertyName.equalsAscii( "MediaType" ) )
{
@@ -4818,7 +4819,7 @@ void SAL_CALL OStorage::setPropertyValue( const ::rtl::OUString& aPropertyName,
else
throw beans::UnknownPropertyException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- else if ( m_pData->m_nStorageType == OFOPXML_STORAGE )
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML )
{
if ( aPropertyName.equalsAscii( "RelationsInfoStream" ) )
{
@@ -4885,7 +4886,7 @@ uno::Any SAL_CALL OStorage::getPropertyValue( const ::rtl::OUString& aPropertyNa
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType == PACKAGE_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE
&& ( aPropertyName.equalsAscii( "MediaType" )
|| aPropertyName.equalsAscii( "MediaTypeFallbackUsed" )
|| aPropertyName.equalsAscii( "Version" ) ) )
@@ -4943,7 +4944,7 @@ uno::Any SAL_CALL OStorage::getPropertyValue( const ::rtl::OUString& aPropertyNa
return uno::makeAny( sal_False ); // RepairPackage
}
- else if ( m_pData->m_nStorageType == PACKAGE_STORAGE
+ else if ( m_pData->m_nStorageType == embed::StorageFormats::PACKAGE
&& ( aPropertyName.equalsAscii( "HasEncryptedEntries" )
|| aPropertyName.equalsAscii( "HasNonEncryptedEntries" )
|| aPropertyName.equalsAscii( "IsInconsistent" ) ) )
@@ -5078,7 +5079,7 @@ sal_Bool SAL_CALL OStorage::hasByID( const ::rtl::OUString& sID )
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
try
@@ -5109,7 +5110,7 @@ sal_Bool SAL_CALL OStorage::hasByID( const ::rtl::OUString& sID )
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
@@ -5134,7 +5135,7 @@ sal_Bool SAL_CALL OStorage::hasByID( const ::rtl::OUString& sID )
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
@@ -5159,7 +5160,7 @@ uno::Sequence< beans::StringPair > SAL_CALL OStorage::getRelationshipByID( cons
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
// TODO/LATER: in future the unification of the ID could be checked
@@ -5189,7 +5190,7 @@ uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OStorage::getRelati
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
uno::Sequence< uno::Sequence< beans::StringPair > > aResult;
@@ -5225,7 +5226,7 @@ uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OStorage::getAllRel
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
return m_pImpl->GetAllRelationshipsIfAny();
@@ -5245,7 +5246,7 @@ void SAL_CALL OStorage::insertRelationshipByID( const ::rtl::OUString& sID, con
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
::rtl::OUString aIDTag( RTL_CONSTASCII_USTRINGPARAM( "Id" ) );
@@ -5310,7 +5311,7 @@ void SAL_CALL OStorage::removeRelationshipByID( const ::rtl::OUString& sID )
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
@@ -5352,7 +5353,7 @@ void SAL_CALL OStorage::insertRelationships( const uno::Sequence< uno::Sequence
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
::rtl::OUString aIDTag( RTL_CONSTASCII_USTRINGPARAM( "Id" ) );
@@ -5434,7 +5435,7 @@ void SAL_CALL OStorage::clearRelationships()
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != OFOPXML_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
m_pImpl->m_aRelInfo.realloc( 0 );
@@ -5487,7 +5488,7 @@ void SAL_CALL OStorage::insertStreamElementDirect(
if ( !aStreamName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aStreamName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aStreamName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); // unacceptable storage name
@@ -5584,7 +5585,7 @@ void SAL_CALL OStorage::copyElementDirectlyTo(
if ( !xDest.is() || xDest == uno::Reference< uno::XInterface >( static_cast< OWeakObject* >( this ), uno::UNO_QUERY ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 2 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& ( aElementName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) )
|| aNewName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 0 ); // unacceptable name
@@ -5840,7 +5841,7 @@ uno::Any SAL_CALL OStorage::getElementPropertyValue( const ::rtl::OUString& aEle
if ( !aElementName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aElementName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aElementName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); // TODO: unacceptable name
@@ -5851,7 +5852,7 @@ uno::Any SAL_CALL OStorage::getElementPropertyValue( const ::rtl::OUString& aEle
throw container::NoSuchElementException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
// TODO/LATER: Currently it is only implemented for MediaType property of substorages, might be changed in future
- if ( !pElement->m_bIsStorage || m_pData->m_nStorageType != PACKAGE_STORAGE || !aPropertyName.equalsAscii( "MediaType" ) )
+ if ( !pElement->m_bIsStorage || m_pData->m_nStorageType != embed::StorageFormats::PACKAGE || !aPropertyName.equalsAscii( "MediaType" ) )
throw beans::PropertyVetoException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
if ( !pElement->m_pStorage )
@@ -5943,7 +5944,7 @@ void SAL_CALL OStorage::copyStreamElementData( const ::rtl::OUString& aStreamNam
if ( !aStreamName.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aStreamName, sal_False ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Unexpected entry name syntax." ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( m_pData->m_nStorageType == OFOPXML_STORAGE
+ if ( m_pData->m_nStorageType == embed::StorageFormats::OFOPXML
&& aStreamName.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_rels" ) ) ) )
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); // unacceptable name
@@ -6090,7 +6091,7 @@ uno::Reference< embed::XExtendedStorageStream > SAL_CALL OStorage::openEncrypted
throw lang::DisposedException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
}
- if ( m_pData->m_nStorageType != PACKAGE_STORAGE )
+ if ( m_pData->m_nStorageType != embed::StorageFormats::PACKAGE )
throw packages::NoEncryptionException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
if ( !aStreamPath.getLength() || !::comphelper::OStorageHelper::IsValidZipEntryFileName( aStreamPath, sal_True ) )
diff --git a/package/source/xstor/xstorage.hxx b/package/source/xstor/xstorage.hxx
index bc90b71e4d93..f1c50e4d67bd 100644
--- a/package/source/xstor/xstorage.hxx
+++ b/package/source/xstor/xstorage.hxx
@@ -57,11 +57,6 @@
#include "mutexholder.hxx"
-
-#define PACKAGE_STORAGE 0
-#define ZIP_STORAGE 1
-#define OFOPXML_STORAGE 2
-
#define RELINFO_NO_INIT 1
#define RELINFO_READ 2
#define RELINFO_CHANGED 3
@@ -177,9 +172,9 @@ struct OStorage_Impl
SwitchablePersistenceStream* m_pSwitchStream;
- sal_Int16 m_nStorageType; // the mode in wich the storage is used
+ sal_Int32 m_nStorageType; // the mode in wich the storage is used
- // the _rels substorage that is handled in a special way in OFOPXML_STORAGE
+ // the _rels substorage that is handled in a special way in embed::StorageFormats::OFOPXML
SotElement_Impl* m_pRelStorElement;
::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xRelStorage;
::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > > m_aRelInfo;
@@ -193,13 +188,13 @@ struct OStorage_Impl
sal_Int32 nMode,
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > xProperties,
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory,
- sal_Int16 nStorageType );
+ sal_Int32 nStorageType );
OStorage_Impl( ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > xStream,
sal_Int32 nMode,
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > xProperties,
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory,
- sal_Int16 nStorageType );
+ sal_Int32 nStorageType );
// constructor for a substorage
OStorage_Impl( OStorage_Impl* pParent,
@@ -207,7 +202,7 @@ struct OStorage_Impl
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xPackageFolder,
::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > xPackage,
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory,
- sal_Int16 nStorageType );
+ sal_Int32 nStorageType );
~OStorage_Impl();
@@ -287,7 +282,7 @@ struct OStorage_Impl
static void completeStorageStreamCopy_Impl(
const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xSource,
const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xDest,
- sal_Int16 nStorageType,
+ sal_Int32 nStorageType,
const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > >& aRelInfo );
};
@@ -330,13 +325,13 @@ public:
sal_Int32 nMode,
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > xProperties,
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory,
- sal_Int16 nStorageType );
+ sal_Int32 nStorageType );
OStorage( ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > xStream,
sal_Int32 nMode,
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > xProperties,
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory,
- sal_Int16 nStorageType );
+ sal_Int32 nStorageType );
OStorage( OStorage_Impl* pImpl, sal_Bool bReadOnlyWrap );
diff --git a/package/source/zippackage/ZipPackage.cxx b/package/source/zippackage/ZipPackage.cxx
index 5c22bad46a6a..9ba26e0100c5 100644
--- a/package/source/zippackage/ZipPackage.cxx
+++ b/package/source/zippackage/ZipPackage.cxx
@@ -61,6 +61,7 @@
#include <com/sun/star/io/XActiveDataStreamer.hpp>
#include <com/sun/star/embed/XTransactedObject.hpp>
#include <com/sun/star/embed/UseBackupException.hpp>
+#include <com/sun/star/embed/StorageFormats.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
#include <cppuhelper/implbase1.hxx>
#include <ContentInfo.hxx>
@@ -183,7 +184,7 @@ ZipPackage::ZipPackage (const uno::Reference < XMultiServiceFactory > &xNewFacto
, m_bUseManifest ( sal_True )
, m_bForceRecovery ( sal_False )
, m_bMediaTypeFallbackUsed ( sal_False )
-, m_nFormat( PACKAGE_FORMAT ) // package is the default format
+, m_nFormat( embed::StorageFormats::PACKAGE ) // package is the default format
, m_bAllowRemoveOnInsert( sal_True )
, m_eMode ( e_IMode_None )
, m_xFactory( xNewFactory )
@@ -217,7 +218,7 @@ ZipPackage::~ZipPackage( void )
void ZipPackage::parseManifest()
{
- if ( m_nFormat == PACKAGE_FORMAT )
+ if ( m_nFormat == embed::StorageFormats::PACKAGE )
{
sal_Bool bManifestParsed = sal_False;
const OUString sMeta ( RTL_CONSTASCII_USTRINGPARAM ( "META-INF" ) );
@@ -427,7 +428,7 @@ void ZipPackage::parseManifest()
void ZipPackage::parseContentType()
{
- if ( m_nFormat == OFOPXML_FORMAT )
+ if ( m_nFormat == embed::StorageFormats::OFOPXML )
{
const ::rtl::OUString aContentTypes( RTL_CONSTASCII_USTRINGPARAM ( "[Content_Types].xml" ) );
try {
@@ -507,7 +508,14 @@ void ZipPackage::getZipFileContents()
nIndex = nOldIndex = 0;
pCurrent = m_pRootFolder;
const ZipEntry & rEntry = *pEnum->nextElement();
- const OUString & rName = rEntry.sPath;
+ OUString rName = rEntry.sPath;
+
+ if ( m_bForceRecovery )
+ {
+ // the PKZIP Application note version 6.2 does not allows to use '\' as separator
+ // unfortunately it is used by some implementations, so we have to support it in recovery mode
+ rName = rName.replace( '\\', '/' );
+ }
nStreamIndex = rName.lastIndexOf ( '/' );
if ( nStreamIndex != -1 )
@@ -551,9 +559,9 @@ void ZipPackage::getZipFileContents()
}
}
- if ( m_nFormat == PACKAGE_FORMAT )
+ if ( m_nFormat == embed::StorageFormats::PACKAGE )
parseManifest();
- else if ( m_nFormat == OFOPXML_FORMAT )
+ else if ( m_nFormat == embed::StorageFormats::OFOPXML )
parseContentType();
}
@@ -593,13 +601,13 @@ void SAL_CALL ZipPackage::initialize( const Sequence< Any >& aArguments )
}
else if ( aCommand.equals( OUString::createFromAscii( "purezip" ) ) )
{
- m_nFormat = ZIP_FORMAT;
+ m_nFormat = embed::StorageFormats::ZIP;
m_pRootFolder->setPackageFormat_Impl( m_nFormat );
break;
}
else if ( aCommand.equals( OUString::createFromAscii( "ofopxml" ) ) )
{
- m_nFormat = OFOPXML_FORMAT;
+ m_nFormat = embed::StorageFormats::OFOPXML;
m_pRootFolder->setPackageFormat_Impl( m_nFormat );
break;
}
@@ -654,20 +662,34 @@ void SAL_CALL ZipPackage::initialize( const Sequence< Any >& aArguments )
sal_Bool bPackFormat = sal_True;
aNamedValue.Value >>= bPackFormat;
if ( !bPackFormat )
- m_nFormat = ZIP_FORMAT;
+ m_nFormat = embed::StorageFormats::ZIP;
m_pRootFolder->setPackageFormat_Impl( m_nFormat );
}
else if ( aNamedValue.Name.equalsAscii( "StorageFormat" ) )
{
::rtl::OUString aFormatName;
- aNamedValue.Value >>= aFormatName;
- if ( aFormatName.equals( PACKAGE_STORAGE_FORMAT_STRING ) )
- m_nFormat = PACKAGE_FORMAT;
- else if ( aFormatName.equals( ZIP_STORAGE_FORMAT_STRING ) )
- m_nFormat = ZIP_FORMAT;
- else if ( aFormatName.equals( OFOPXML_STORAGE_FORMAT_STRING ) )
- m_nFormat = OFOPXML_FORMAT;
+ sal_Int32 nFormatID = 0;
+ if ( aNamedValue.Value >>= aFormatName )
+ {
+ if ( aFormatName.equals( PACKAGE_STORAGE_FORMAT_STRING ) )
+ m_nFormat = embed::StorageFormats::PACKAGE;
+ else if ( aFormatName.equals( ZIP_STORAGE_FORMAT_STRING ) )
+ m_nFormat = embed::StorageFormats::ZIP;
+ else if ( aFormatName.equals( OFOPXML_STORAGE_FORMAT_STRING ) )
+ m_nFormat = embed::StorageFormats::OFOPXML;
+ else
+ throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 );
+ }
+ else if ( aNamedValue.Value >>= nFormatID )
+ {
+ if ( nFormatID != embed::StorageFormats::PACKAGE
+ && nFormatID != embed::StorageFormats::ZIP
+ && nFormatID != embed::StorageFormats::OFOPXML )
+ throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 );
+
+ m_nFormat = nFormatID;
+ }
else
throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 );
@@ -1135,7 +1157,7 @@ uno::Reference< io::XInputStream > ZipPackage::writeTempFile()
try
{
- if ( m_nFormat == PACKAGE_FORMAT )
+ if ( m_nFormat == embed::StorageFormats::PACKAGE )
{
// Remove the old manifest.xml file as the
// manifest will be re-generated and the
@@ -1157,7 +1179,7 @@ uno::Reference< io::XInputStream > ZipPackage::writeTempFile()
// Write a magic file with mimetype
WriteMimetypeMagicFile( aZipOut );
}
- else if ( m_nFormat == OFOPXML_FORMAT )
+ else if ( m_nFormat == embed::StorageFormats::OFOPXML )
{
// Remove the old [Content_Types].xml file as the
// file will be re-generated
@@ -1175,7 +1197,7 @@ uno::Reference< io::XInputStream > ZipPackage::writeTempFile()
const OUString sVersion ( RTL_CONSTASCII_USTRINGPARAM ( "Version" ) );
const OUString sFullPath ( RTL_CONSTASCII_USTRINGPARAM ( "FullPath" ) );
- if ( m_nFormat == PACKAGE_FORMAT )
+ if ( m_nFormat == embed::StorageFormats::PACKAGE )
{
Sequence < PropertyValue > aPropSeq ( PKG_SIZE_NOENCR_MNFST );
aPropSeq [PKG_MNFST_MEDIATYPE].Name = sMediaType;
@@ -1204,11 +1226,11 @@ uno::Reference< io::XInputStream > ZipPackage::writeTempFile()
// Clean up random pool memory
rtl_random_destroyPool ( aRandomPool );
- if( m_bUseManifest && m_nFormat == PACKAGE_FORMAT )
+ if( m_bUseManifest && m_nFormat == embed::StorageFormats::PACKAGE )
{
WriteManifest( aZipOut, aManList );
}
- else if( m_nFormat == OFOPXML_FORMAT )
+ else if( m_nFormat == embed::StorageFormats::OFOPXML )
{
WriteContentTypes( aZipOut, aManList );
}
@@ -1618,7 +1640,7 @@ uno::Reference< XPropertySetInfo > SAL_CALL ZipPackage::getPropertySetInfo( )
void SAL_CALL ZipPackage::setPropertyValue( const OUString& aPropertyName, const Any& aValue )
throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
{
- if ( m_nFormat != PACKAGE_FORMAT )
+ if ( m_nFormat != embed::StorageFormats::PACKAGE )
throw UnknownPropertyException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
if (aPropertyName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("HasEncryptedEntries") )
@@ -1643,7 +1665,7 @@ Any SAL_CALL ZipPackage::getPropertyValue( const OUString& PropertyName )
throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
{
// TODO/LATER: Activate the check when zip-ucp is ready
- // if ( m_nFormat != PACKAGE_FORMAT )
+ // if ( m_nFormat != embed::StorageFormats::PACKAGE )
// throw UnknownPropertyException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
Any aAny;
diff --git a/package/source/zippackage/ZipPackageFolder.cxx b/package/source/zippackage/ZipPackageFolder.cxx
index 0bed74128467..b4648426049e 100644
--- a/package/source/zippackage/ZipPackageFolder.cxx
+++ b/package/source/zippackage/ZipPackageFolder.cxx
@@ -34,6 +34,7 @@
#include <PackageConstants.hxx>
#include <ZipPackageFolderEnumeration.hxx>
#include <com/sun/star/packages/zip/ZipConstants.hpp>
+#include <com/sun/star/embed/StorageFormats.hpp>
#include <vos/diagnose.hxx>
#include <osl/time.h>
#include <rtl/digest.h>
@@ -61,7 +62,7 @@ using vos::ORef;
Sequence < sal_Int8 > ZipPackageFolder::aImplementationId = Sequence < sal_Int8 > ();
ZipPackageFolder::ZipPackageFolder ( const Reference< XMultiServiceFactory >& xFactory,
- sal_Int16 nFormat,
+ sal_Int32 nFormat,
sal_Bool bAllowRemoveOnInsert )
: m_xFactory( xFactory )
, m_nFormat( nFormat )
@@ -317,7 +318,7 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
sal_Bool bHaveEncryptionKey = rEncryptionKey.getLength() ? sal_True : sal_False;
- if ( maContents.begin() == maContents.end() && rPath.getLength() && m_nFormat != OFOPXML_FORMAT )
+ if ( maContents.begin() == maContents.end() && rPath.getLength() && m_nFormat != embed::StorageFormats::OFOPXML )
{
// it is an empty subfolder, use workaround to store it
ZipEntry* pTempEntry = new ZipEntry();
@@ -539,11 +540,11 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
// If the entry is already stored in the zip file in the format we
// want for this write...copy it raw
- if ( !bUseNonSeekableAccess &&
- ( bRawStream || bTransportOwnEncrStreamAsRaw ||
- ( pStream->IsPackageMember() && !bToBeEncrypted &&
- ( pStream->aEntry.nMethod == DEFLATED && bToBeCompressed ) ||
- ( pStream->aEntry.nMethod == STORED && !bToBeCompressed ) ) ) )
+ if ( !bUseNonSeekableAccess
+ && ( bRawStream || bTransportOwnEncrStreamAsRaw
+ || ( pStream->IsPackageMember() && !bToBeEncrypted
+ && ( ( pStream->aEntry.nMethod == DEFLATED && bToBeCompressed )
+ || ( pStream->aEntry.nMethod == STORED && !bToBeCompressed ) ) ) ) )
{
// If it's a PackageMember, then it's an unbuffered stream and we need
// to get a new version of it as we can't seek backwards.
@@ -689,7 +690,7 @@ void ZipPackageFolder::saveContents(OUString &rPath, std::vector < Sequence < Pr
}
// folder can have a mediatype only in package format
- if ( m_nFormat == PACKAGE_FORMAT || ( m_nFormat == OFOPXML_FORMAT && !rInfo.bFolder ) )
+ if ( m_nFormat == embed::StorageFormats::PACKAGE || ( m_nFormat == embed::StorageFormats::OFOPXML && !rInfo.bFolder ) )
rManList.push_back( aPropSet );
}
@@ -741,7 +742,7 @@ void SAL_CALL ZipPackageFolder::setPropertyValue( const OUString& aPropertyName,
if (aPropertyName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("MediaType")))
{
// TODO/LATER: activate when zip ucp is ready
- // if ( m_nFormat != PACKAGE_FORMAT )
+ // if ( m_nFormat != embed::StorageFormats::PACKAGE )
// throw UnknownPropertyException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
aValue >>= sMediaType;
@@ -759,7 +760,7 @@ Any SAL_CALL ZipPackageFolder::getPropertyValue( const OUString& PropertyName )
if (PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "MediaType" ) ) )
{
// TODO/LATER: activate when zip ucp is ready
- // if ( m_nFormat != PACKAGE_FORMAT )
+ // if ( m_nFormat != embed::StorageFormats::PACKAGE )
// throw UnknownPropertyException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
return makeAny ( sMediaType );
diff --git a/package/source/zippackage/ZipPackageStream.cxx b/package/source/zippackage/ZipPackageStream.cxx
index b6893b5cb2ad..6343607c8711 100644
--- a/package/source/zippackage/ZipPackageStream.cxx
+++ b/package/source/zippackage/ZipPackageStream.cxx
@@ -28,6 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_package.hxx"
#include <com/sun/star/packages/zip/ZipConstants.hpp>
+#include <com/sun/star/embed/StorageFormats.hpp>
#include <com/sun/star/packages/zip/ZipIOException.hpp>
#include <com/sun/star/io/XInputStream.hpp>
#include <com/sun/star/io/XOutputStream.hpp>
@@ -611,7 +612,7 @@ void SAL_CALL ZipPackageStream::setPropertyValue( const OUString& aPropertyName,
{
if (aPropertyName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("MediaType")))
{
- if ( rZipPackage.getFormat() != PACKAGE_FORMAT && rZipPackage.getFormat() != OFOPXML_FORMAT )
+ if ( rZipPackage.getFormat() != embed::StorageFormats::PACKAGE && rZipPackage.getFormat() != embed::StorageFormats::OFOPXML )
throw beans::PropertyVetoException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
if ( aValue >>= sMediaType )
@@ -640,7 +641,7 @@ void SAL_CALL ZipPackageStream::setPropertyValue( const OUString& aPropertyName,
}
else if (aPropertyName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Encrypted") ) )
{
- if ( rZipPackage.getFormat() != PACKAGE_FORMAT )
+ if ( rZipPackage.getFormat() != embed::StorageFormats::PACKAGE )
throw beans::PropertyVetoException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
sal_Bool bEnc = sal_False;
@@ -664,7 +665,7 @@ void SAL_CALL ZipPackageStream::setPropertyValue( const OUString& aPropertyName,
}
else if (aPropertyName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("EncryptionKey") ) )
{
- if ( rZipPackage.getFormat() != PACKAGE_FORMAT )
+ if ( rZipPackage.getFormat() != embed::StorageFormats::PACKAGE )
throw beans::PropertyVetoException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() );
Sequence < sal_Int8 > aNewKey;
diff --git a/postprocess/packregistry/makefile.mk b/postprocess/packregistry/makefile.mk
index 863c31677a4c..002cea58f450 100644
--- a/postprocess/packregistry/makefile.mk
+++ b/postprocess/packregistry/makefile.mk
@@ -29,9 +29,9 @@ PRJ = ..
PRJNAME = postprocess
TARGET = packregistry
-MY_XCS = $(SOLARXMLDIR)/registry/schema/org/openoffice
-MY_XCU = $(SOLARXMLDIR)/registry/data/org/openoffice
-MY_MOD = $(SOLARXMLDIR)/registry/spool
+MY_XCS = registry/schema/org/openoffice
+MY_XCU = registry/data/org/openoffice
+MY_MOD = registry/spool
MY_XCDS = \
$(MISC)/base.xcd \
@@ -484,25 +484,26 @@ ALLTAR : \
$(MISC)/lang/fcfg_langpack_{$(alllangiso)}.xcd \
$(MISC)/lang/registry_{$(alllangiso)}.xcd
-{$(MY_XCDS)} : $$(MY_FILES_$$(@:b))
+{$(MY_XCDS)} : $$(MY_FILES_$$(@:b):^"$(SOLARXMLDIR)/")
$(MISC)/%.xcd .ERRREMOVE : $(MISC)/%.list
- $(XSLTPROC) --nonet -o $@ $(SOLARENV)/bin/packregistry.xslt $<
+ $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
+ $(SOLARENV)/bin/packregistry.xslt $<
$(MISC)/%.list : makefile.mk
- $(RM) $@
echo '<list>' $(foreach,i,$(MY_DEPS_$(@:b)) '<dependency file="$i"/>') \
$(foreach,i,$(MY_FILES_$(@:b)) '<filename>$i</filename>') '</list>' > $@
-$(MISC)/lang/Langpack-{$(alllangiso)}.xcd : $(MY_MOD)/$$(@:b).xcu
+$(MISC)/lang/Langpack-{$(alllangiso)}.xcd : $(SOLARXMLDIR)/$(MY_MOD)/$$(@:b).xcu
$(MISC)/lang/Langpack-%.xcd .ERRREMOVE :
$(MKDIRHIER) $(@:d)
- $(RM) $(MISC)/$(@:b).list
- echo '<list><dependency file="main"/>\
- <filename>$(MY_MOD)/$(@:b).xcu</filename></list>' > $(MISC)/$(@:b).list
- $(XSLTPROC) --nonet -o $@ $(SOLARENV)/bin/packregistry.xslt \
- $(MISC)/$(@:b).list
+ echo '<list><dependency file="main"/>' \
+ '<filename>$(MY_MOD)/$(@:b).xcu</filename></list>' > $(MISC)/$(@:b).list
+ $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
+ $(SOLARENV)/bin/packregistry.xslt $(MISC)/$(@:b).list
$(MISC)/lang/fcfg_langpack_{$(alllangiso)}.xcd : $(SOLARPCKDIR)/$$(@:b).zip
@@ -518,8 +519,8 @@ $(MISC)/lang/fcfg_langpack_%.xcd .ERRREMOVE :
echo '<list>' $(foreach,i,$(shell cd $(MISC) && \
find $(@:b).unzip -name \*.xcu -size +0c -print) \
'<filename>$i</filename>') '</list>' > $(MISC)/$(@:b).list
- $(XSLTPROC) --nonet -o $@ $(SOLARENV)/bin/packregistry.xslt \
- $(MISC)/$(@:b).list
+ $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/ -o $@ \
+ $(SOLARENV)/bin/packregistry.xslt $(MISC)/$(@:b).list
$(MISC)/lang/registry_{$(alllangiso)}.xcd : $(SOLARPCKDIR)/$$(@:b).zip \
$(SOLARPCKDIR)/fcfg_drivers_$$(@:b:s/registry_//).zip
@@ -537,5 +538,5 @@ $(MISC)/lang/registry_%.xcd .ERRREMOVE :
echo '<list>' $(foreach,i,$(shell cd $(MISC) && \
find $(@:b).unzip fcfg_drivers_$*.unzip -name \*.xcu -print) \
'<filename>$i</filename>') '</list>' > $(MISC)/$(@:b).list
- $(XSLTPROC) --nonet -o $@ $(SOLARENV)/bin/packregistry.xslt \
- $(MISC)/$(@:b).list
+ $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/ -o $@ \
+ $(SOLARENV)/bin/packregistry.xslt $(MISC)/$(@:b).list
diff --git a/qadevOOo/runner/convwatch/OfficePrint.java b/qadevOOo/runner/convwatch/OfficePrint.java
index 7f9b86f2f920..c9a656ac84b4 100644
--- a/qadevOOo/runner/convwatch/OfficePrint.java
+++ b/qadevOOo/runner/convwatch/OfficePrint.java
@@ -49,10 +49,10 @@ import com.sun.star.uno.AnyConverter;
import helper.URLHelper;
import helper.PropertyHelper;
import helper.OSHelper;
-import convwatch.FileHelper;
-import convwatch.MSOfficePrint;
-import convwatch.GraphicalTestArguments;
-import convwatch.ConvWatchCancelException;
+// import convwatch.FileHelper;
+// import convwatch.MSOfficePrint;
+// import convwatch.GraphicalTestArguments;
+// import convwatch.ConvWatchCancelException;
// import helper.Parameter;
@@ -118,7 +118,7 @@ public class OfficePrint {
*/
static String getDocumentType( XComponent _aDoc )
{
- XModel xModel = (XModel) UnoRuntime.queryInterface( XModel.class, _aDoc);
+ XModel xModel = UnoRuntime.queryInterface( XModel.class, _aDoc);
PropertyValue[] aArgs = xModel.getArgs();
for (int i=0;i<aArgs.length;i++)
{
@@ -145,6 +145,9 @@ public class OfficePrint {
* the GraphicalTestArguments must contain a living MultiServiceFactory object
* or we crash here.
* Be aware, the ownership of the document gets to you, you have to close it.
+ * @param _aGTA
+ * @param _sInputURL
+ * @return
*/
public static XComponent loadFromURL(GraphicalTestArguments _aGTA,
String _sInputURL)
@@ -158,7 +161,7 @@ public class OfficePrint {
return null;
}
Object oDsk = _aGTA.getMultiServiceFactory().createInstance("com.sun.star.frame.Desktop");
- XDesktop aDesktop = (XDesktop)UnoRuntime.queryInterface(XDesktop.class, oDsk);
+ XDesktop aDesktop = UnoRuntime.queryInterface(XDesktop.class, oDsk);
if (aDesktop != null)
{
@@ -172,7 +175,7 @@ public class OfficePrint {
// set here the loadComponentFromURL() properties
// at the moment only 'Hidden' is set, so no window is opened at work
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
// check which properties should set and count it.
// if (_aGTA.isHidden())
@@ -209,7 +212,7 @@ public class OfficePrint {
GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Load document");
// GlobalLogWriter.get().flush();
- XComponentLoader aCompLoader = (XComponentLoader) UnoRuntime.queryInterface( XComponentLoader.class, aDesktop);
+ XComponentLoader aCompLoader = UnoRuntime.queryInterface( XComponentLoader.class, aDesktop);
// XComponent aDoc = null;
@@ -251,11 +254,11 @@ public class OfficePrint {
static boolean exportToPDF(XComponent _xComponent, String _sDestinationName)
{
XServiceInfo xServiceInfo =
- (XServiceInfo) UnoRuntime.queryInterface(
+ UnoRuntime.queryInterface(
XServiceInfo.class, _xComponent
);
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
PropertyValue aFiltername = new PropertyValue();
aFiltername.Name = "FilterName";
aFiltername.Value = getFilterName_forPDF(xServiceInfo);
@@ -266,7 +269,7 @@ public class OfficePrint {
try
{
XStorable store =
- (XStorable) UnoRuntime.queryInterface(
+ UnoRuntime.queryInterface(
XStorable.class, _xComponent
);
store.storeToURL(_sDestinationName, PropertyHelper.createPropertyValueArrayFormArrayList(aPropertyList));
@@ -371,6 +374,10 @@ public class OfficePrint {
* Due to the fact we use a printer to convert the file to postscript, the default printer
* to create such postscript format must be installed, this is not tested here.
*
+ * @param _aGTA
+ * @param _sInputURL
+ * @param _sOutputURL
+ * @param _sPrintFileURL
* @return true, if print has been done.
* Be careful, true means only print returns with no errors, to be sure print is really done
* check existance of _sPrintFileURL
@@ -532,7 +539,7 @@ public class OfficePrint {
if (_aGTA.isStoreAllowed())
{
// store the document in an other directory
- XStorable aStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, _aDoc);
+ XStorable aStorable = UnoRuntime.queryInterface( XStorable.class, _aDoc);
if (aStorable != null)
{
PropertyValue [] szEmptyArgs = new PropertyValue [0];
@@ -571,7 +578,7 @@ public class OfficePrint {
// Change Pagesettings to DIN A4
GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Print document.");
- XPrintable aPrintable = (XPrintable) UnoRuntime.queryInterface( XPrintable.class, _aDoc);
+ XPrintable aPrintable = UnoRuntime.queryInterface( XPrintable.class, _aDoc);
if (aPrintable != null)
{
// System.out.println(" Set PaperFormat to DIN A4");
@@ -595,7 +602,7 @@ public class OfficePrint {
{
if (_aGTA.getPrinterName() != null)
{
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
// PropertyValue [] aPrintProps = new PropertyValue[1];
PropertyValue Arg = new PropertyValue();
Arg.Name = "Name";
@@ -619,20 +626,20 @@ public class OfficePrint {
// int nPropsCount = 0;
// If we are a SpreadSheet (calc), we need to set PrintAllSheets property to 'true'
- XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, _aDoc );
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface( XServiceInfo.class, _aDoc );
if ( xServiceInfo.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) )
{
XMultiServiceFactory xMSF = _aGTA.getMultiServiceFactory();
Object aSettings = xMSF.createInstance( "com.sun.star.sheet.GlobalSheetSettings" );
if (aSettings != null)
{
- XPropertySet xPropSet = (XPropertySet) UnoRuntime.queryInterface( XPropertySet.class, aSettings );
+ XPropertySet xPropSet = UnoRuntime.queryInterface( XPropertySet.class, aSettings );
xPropSet.setPropertyValue( "PrintAllSheets", new Boolean( true ) );
GlobalLogWriter.get().println("PrintAllSheets := true");
}
}
- ArrayList aPrintProps = new ArrayList();
+ ArrayList<PropertyValue> aPrintProps = new ArrayList<PropertyValue>();
// GlobalLogWriter.get().println("Property FileName:=" + _sPrintFileURL);
// PropertyValue [] aPrintProps = new PropertyValue[nProperties];
@@ -730,6 +737,9 @@ public class OfficePrint {
/**
+ * @param _aGTA
+ * @param _sAbsoluteOutputPath
+ * @param _sAbsoluteInputFile
* @return true, if the reference (*.prrn file) based on given output path and given input path exist.
* If OVERWRITE_REFERENCE is set, always return false.
*/
@@ -783,6 +793,11 @@ public class OfficePrint {
* if is null, print only near the Input file path
* _sPrintType ".prn" Print input file with StarOffice/OpenOffice.org and the default printer as PostScript
*
+ * @param _aGTA
+ * @param _sAbsoluteOutputPath
+ * @param _sAbsoluteInputFile
+ * @return
+ * @throws ConvWatchCancelException
*/
public static boolean buildReference(GraphicalTestArguments _aGTA,
String _sAbsoluteOutputPath,
@@ -933,7 +948,7 @@ public class OfficePrint {
try
{
Object oObj = _xMSF.createInstance("com.sun.star.document.TypeDetection");
- aTypeDetection = (XTypeDetection)UnoRuntime.queryInterface(XTypeDetection.class, oObj);
+ aTypeDetection = UnoRuntime.queryInterface(XTypeDetection.class, oObj);
}
catch(com.sun.star.uno.Exception e)
{
@@ -975,7 +990,7 @@ public class OfficePrint {
}
if (aObj != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aObj);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aObj);
if (aNameAccess != null)
{
@@ -1066,7 +1081,7 @@ public class OfficePrint {
}
if (aObj != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aObj);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aObj);
if (aNameAccess != null)
{
if (! aNameAccess.hasByName(_sFilterName))
@@ -1134,7 +1149,7 @@ public class OfficePrint {
try
{
Object oObj = _xMSF.createInstance("com.sun.star.document.TypeDetection");
- aTypeDetection = (XTypeDetection)UnoRuntime.queryInterface(XTypeDetection.class, oObj);
+ aTypeDetection =UnoRuntime.queryInterface(XTypeDetection.class, oObj);
}
catch(com.sun.star.uno.Exception e)
{
@@ -1143,7 +1158,7 @@ public class OfficePrint {
}
if (aTypeDetection != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aTypeDetection);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aTypeDetection);
if (aNameAccess != null)
{
@@ -1242,12 +1257,12 @@ public class OfficePrint {
// TODO: Do we need to wait?
TimeHelper.waitInSeconds(1, "wait after loadFromURL.");
- XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, aDoc );
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface( XServiceInfo.class, aDoc );
// String sFilter = getFilterName_forExcel(xServiceInfo);
// System.out.println("Filter is " + sFilter);
// store the document in an other directory
- XStorable xStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, aDoc);
+ XStorable xStorable = UnoRuntime.queryInterface( XStorable.class, aDoc);
if (xStorable == null)
{
GlobalLogWriter.get().println("com.sun.star.frame.XStorable is null");
@@ -1266,7 +1281,7 @@ public class OfficePrint {
// initialize PropertyArray
// PropertyValue [] aStoreProps = new PropertyValue[ nPropertyCount ];
// int nPropertyIndex = 0;
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
String sExtension = "";
diff --git a/qadevOOo/runner/graphical/BuildID.java b/qadevOOo/runner/graphical/BuildID.java
index 4c5907ff34ad..cf9188d84a47 100644
--- a/qadevOOo/runner/graphical/BuildID.java
+++ b/qadevOOo/runner/graphical/BuildID.java
@@ -93,7 +93,7 @@ public class BuildID
}
else
{
- GlobalLogWriter.get().println("soffice executable not found.");
+ GlobalLogWriter.println("soffice executable not found.");
}
// int dummy = 0;
@@ -119,7 +119,7 @@ public class BuildID
}
else
{
- GlobalLogWriter.get().println("Property Build, can't open file '" + sOfficePath + "', please check.");
+ GlobalLogWriter.println("Property Build, can't open file '" + sOfficePath + "', please check.");
}
return sBuildID;
}
@@ -144,7 +144,7 @@ public class BuildID
}
else
{
- GlobalLogWriter.get().println("Property Build, can't open file '" + sOfficePath + "', please check.");
+ GlobalLogWriter.println("Property Build, can't open file '" + sOfficePath + "', please check.");
}
return sBuildID;
}
diff --git a/qadevOOo/runner/graphical/DirectoryHelper.java b/qadevOOo/runner/graphical/DirectoryHelper.java
index f3349da2800a..46930d19425f 100644
--- a/qadevOOo/runner/graphical/DirectoryHelper.java
+++ b/qadevOOo/runner/graphical/DirectoryHelper.java
@@ -38,7 +38,7 @@ import java.util.ArrayList;
*/
public class DirectoryHelper
{
- ArrayList m_aFileList = new ArrayList();
+ ArrayList<String> m_aFileList = new ArrayList<String>();
boolean m_bRecursiveIsAllowed = true;
void setRecursiveIsAllowed(boolean _bValue)
@@ -73,6 +73,10 @@ public class DirectoryHelper
* System.out.println(aEntry);
* }
*
+ * @param _sDirectory
+ * @param _aFileFilter
+ * @param _bRecursiveIsAllowed
+ * @return list of directories
*/
public static Object[] traverse( String _sDirectory, FileFilter _aFileFilter, boolean _bRecursiveIsAllowed )
{
diff --git a/qadevOOo/runner/graphical/EnhancedComplexTestCase.java b/qadevOOo/runner/graphical/EnhancedComplexTestCase.java
index b465437f578f..c3ec2b3e8336 100644
--- a/qadevOOo/runner/graphical/EnhancedComplexTestCase.java
+++ b/qadevOOo/runner/graphical/EnhancedComplexTestCase.java
@@ -44,8 +44,8 @@ abstract public class EnhancedComplexTestCase extends ComplexTestCase implements
private void callEntry(String _sEntry, ParameterHelper _aParam)
{
- log.println("- next file is: ------------------------------");
- log.println(_sEntry);
+ // log.println("- next file is: ------------------------------");
+ log.println("File: " + _sEntry);
// TODO: check if 'sEntry' is a guilty document.
File aFile = new File(_aParam.getInputPath());
String sPath = _aParam.getInputPath();
@@ -79,7 +79,8 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
// sNewDiffPath = FileHelper.appendPath(sNewDiffPath, sNewSubDir);
// }
}
- log.println("sEntry: " + _sEntry + " " /* + sNewReferencePath + " " */ + sNewOutputPath);
+ // log.println("sEntry: " + _sEntry + " " /* + sNewReferencePath + " " */ + sNewOutputPath);
+ log.println("Outputpath: " + sNewOutputPath);
// call interface with parameters
@@ -187,12 +188,34 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
}
else
{
- String sPath = FileHelper.getPath(sInputPath);
- String sBasename = FileHelper.getBasename(sInputPath);
+ String sInputPathWithPDF = sInputPath + ".pdf";
+ File aInputPathWithPDF = new File(sInputPathWithPDF);
- // there exist an index file, therefore we assume the given
- // file is already converted to postscript or pdf
- runThroughEveryReportInIndex(sPath, sBasename, _aParam);
+ if (aInputPathWithPDF.exists() &&
+ _aParam.getReferenceType().toLowerCase().equals("pdf"))
+ {
+ // create PDF only if a pdf file exists and creatortype is set to PDF
+ callEntry(sInputPathWithPDF, _aParam);
+ }
+ else
+ {
+ String sInputPathWithPS = sInputPath + ".ps";
+
+ File aInputPathWithPS = new File(sInputPathWithPS);
+ if (aInputPathWithPS.exists())
+ {
+ callEntry(sInputPathWithPS, _aParam);
+ }
+ else
+ {
+ String sPath = FileHelper.getPath(sInputPath);
+ String sBasename = FileHelper.getBasename(sInputPath);
+
+ // there exist an index file, therefore we assume the given
+ // file is already converted to postscript or pdf
+ runThroughEveryReportInIndex(sPath, sBasename, _aParam);
+ }
+ }
}
}
}
@@ -210,7 +233,7 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
{
// special case for odb files
int nFileCount = aIniFile.getIntValue(_sBasename, "reportcount", 0);
- ArrayList aList = new ArrayList();
+ ArrayList<String> aList = new ArrayList<String>();
for (int i=0;i<nFileCount;i++)
{
String sValue = aIniFile.getValue(_sBasename, "report" + i);
@@ -230,7 +253,7 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
// get the bad status and store it into the
for (int i=0;i<aList.size();i++)
{
- String sEntry = (String)aList.get(i);
+ String sEntry = aList.get(i);
callEntry(sEntry, _aParam);
// we want to know the current status of the run through
@@ -265,7 +288,12 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
}
}
}
+ else
+ {
+ assure("File '" + sIndexFile + "' doesn't exists.", aIndexFile.exists(), true);
+ }
}
+
private String getPSorPDFNameFromIniFile(IniFile _aIniFile, String _sName)
{
boolean bHasPostscriptOrPDF = false;
@@ -419,7 +447,7 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
{
// special case for odb files
int nFileCount = aIniFile.getIntValue(sBasename, "reportcount", 0);
- ArrayList aList = new ArrayList();
+ ArrayList<String> aList = new ArrayList<String>();
for (int i=0;i<nFileCount;i++)
{
String sValue = aIniFile.getValue(sBasename, "report" + i);
@@ -439,7 +467,7 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
for (int i=0;i<aList.size();i++)
{
- String sPSFile = (String)aList.get(i);
+ String sPSFile = aList.get(i);
// TODO: this information has to come out of the ini files
String sStatusRunThrough = "";
diff --git a/qadevOOo/runner/graphical/FileHelper.java b/qadevOOo/runner/graphical/FileHelper.java
index feb9e152e5d9..892f652567c1 100644
--- a/qadevOOo/runner/graphical/FileHelper.java
+++ b/qadevOOo/runner/graphical/FileHelper.java
@@ -50,9 +50,9 @@ public class FileHelper
String sOSArch = System.getProperty("os.arch");
String sOSVersion = System.getProperty("os.version");
- GlobalLogWriter.get().println(sOSName);
- GlobalLogWriter.get().println(sOSArch);
- GlobalLogWriter.get().println(sOSVersion);
+ GlobalLogWriter.println(sOSName);
+ GlobalLogWriter.println(sOSArch);
+ GlobalLogWriter.println(sOSVersion);
}
@@ -110,7 +110,7 @@ public class FileHelper
}
catch (NullPointerException e)
{
- GlobalLogWriter.get().println("Exception caught. FileHelper.isDir('" + _sDir + "')");
+ GlobalLogWriter.println("Exception caught. FileHelper.isDir('" + _sDir + "')");
e.printStackTrace();
}
return false;
@@ -258,7 +258,7 @@ public class FileHelper
}
catch (java.io.IOException e)
{
- GlobalLogWriter.get().println("Exception caught. FileHelper.makeDirectories('" + new_dir.getAbsolutePath() + "')");
+ GlobalLogWriter.println("Exception caught. FileHelper.makeDirectories('" + new_dir.getAbsolutePath() + "')");
}
}
}
@@ -361,9 +361,9 @@ public class FileHelper
{
if (m_bDebugTextShown == false)
{
- GlobalLogWriter.get().println("Found file: " + sName);
- GlobalLogWriter.get().println("Activate debug mode.");
- GlobalLogWriter.get().println("If debug mode is no longer necessary, remove the above file.");
+ GlobalLogWriter.println("Found file: " + sName);
+ GlobalLogWriter.println("Activate debug mode.");
+ GlobalLogWriter.println("If debug mode is no longer necessary, remove the above file.");
m_bDebugTextShown = true;
}
bDebug = true;
@@ -463,6 +463,16 @@ public class FileHelper
{
return false;
}
+ // leave out files starts with '.~lock.' these are OpenOffice.org lock files
+ if (pathname.getName().startsWith(".~lock."))
+ {
+ return false;
+ }
+ // leave out files ends with '#' these could be temp files
+ if (pathname.getName().endsWith("#"))
+ {
+ return false;
+ }
if (pathname.getName().endsWith(".prn"))
{
return false;
@@ -592,7 +602,7 @@ public class FileHelper
if (_sFile.startsWith("file://"))
{
sFilename = FileHelper.getSystemPathFromFileURL(_sFile);
- GlobalLogWriter.get().println("CreateInfoFile: '" + sFilename + "'" );
+ GlobalLogWriter.println("CreateInfoFile: '" + sFilename + "'" );
}
else
{
@@ -682,7 +692,7 @@ public class FileHelper
}
catch (java.io.IOException e)
{
- GlobalLogWriter.get().println("can't create Info file.");
+ GlobalLogWriter.println("can't create Info file.");
e.printStackTrace();
}
aIniFile.close();
diff --git a/qadevOOo/runner/graphical/GlobalLogWriter.java b/qadevOOo/runner/graphical/GlobalLogWriter.java
index a8deabfbce0a..478d3323abda 100644
--- a/qadevOOo/runner/graphical/GlobalLogWriter.java
+++ b/qadevOOo/runner/graphical/GlobalLogWriter.java
@@ -33,11 +33,22 @@ import stats.SimpleLogWriter;
public class GlobalLogWriter
{
private static LogWriter m_aGlobalLogWriter = null;
- public static synchronized void println(String _sMsg)
+
+ /**
+ * This is just a helper to get clearer code.
+ * use this GlobalLogWriter.println(...)
+ * @param _sMsg
+ */
+ protected static synchronized void println(String _sMsg)
{
get().println(_sMsg);
}
- public static synchronized LogWriter get()
+
+ /**
+ * @deprecated use GlobalLogWriter.println(...) direct
+ * @return
+ */
+ protected static synchronized LogWriter get()
{
if (m_aGlobalLogWriter == null)
{
@@ -52,7 +63,7 @@ public class GlobalLogWriter
// get().initialize(null, true);
// }
- public static synchronized void set(LogWriter _aLog)
+ protected static synchronized void set(LogWriter _aLog)
{
m_aGlobalLogWriter = _aLog;
}
diff --git a/qadevOOo/runner/graphical/HTMLResult.java b/qadevOOo/runner/graphical/HTMLResult.java
index 85ee0e88d356..af2a31a308ea 100644
--- a/qadevOOo/runner/graphical/HTMLResult.java
+++ b/qadevOOo/runner/graphical/HTMLResult.java
@@ -59,7 +59,7 @@ public class HTMLResult
catch (java.io.IOException e)
{
e.printStackTrace();
- GlobalLogWriter.get().println("ERROR: Can't create HTML Outputter");
+ GlobalLogWriter.println("ERROR: Can't create HTML Outputter");
// return null;
}
// m_sFilename = sFilename;
diff --git a/qadevOOo/runner/graphical/IDocument.java b/qadevOOo/runner/graphical/IDocument.java
index 3f724d5c5d9c..e23ddd4b91a1 100644
--- a/qadevOOo/runner/graphical/IDocument.java
+++ b/qadevOOo/runner/graphical/IDocument.java
@@ -40,7 +40,7 @@ public interface IDocument
* @param _sDocument
* @param _sResult
* @param _aParams
- * @throws graphical.DocumentLoaderException
+ * @throws OfficeException
*/
public void checkOneFile(String _sDocument, String _sResult, ParameterHelper _aParams) throws OfficeException;
}
diff --git a/qadevOOo/runner/graphical/IniFile.java b/qadevOOo/runner/graphical/IniFile.java
index 832aef795e71..bd54a66b65fd 100644
--- a/qadevOOo/runner/graphical/IniFile.java
+++ b/qadevOOo/runner/graphical/IniFile.java
@@ -26,7 +26,7 @@
************************************************************************/
package graphical;
-import java.io.BufferedReader;
+// import java.io.BufferedReader;
import java.io.File;
import java.io.RandomAccessFile;
import java.util.ArrayList;
@@ -44,7 +44,7 @@ public class IniFile implements Enumeration
* Problem, if ini file changed why other write something difference, we don't realise this.
*/
private String m_sFilename;
- private ArrayList m_aList;
+ private ArrayList<String> m_aList;
boolean m_bListContainUnsavedChanges = false;
private int m_aEnumerationPos = 0;
@@ -76,13 +76,13 @@ public class IniFile implements Enumeration
}
}
- private ArrayList loadLines()
+ private ArrayList<String> loadLines()
{
File aFile = new File(m_sFilename);
- ArrayList aLines = new ArrayList();
+ ArrayList<String> aLines = new ArrayList<String>();
if (!aFile.exists())
{
- GlobalLogWriter.get().println("couldn't find file '" + m_sFilename + "', will be created.");
+ // GlobalLogWriter.println("couldn't find file '" + m_sFilename + "', will be created.");
// DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
// m_bListContainUnsavedChanges = false;
return aLines;
@@ -104,14 +104,14 @@ public class IniFile implements Enumeration
}
catch (java.io.FileNotFoundException fne)
{
- GlobalLogWriter.get().println("couldn't open file " + m_sFilename);
- GlobalLogWriter.get().println("Message: " + fne.getMessage());
+ GlobalLogWriter.println("couldn't open file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + fne.getMessage());
// DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
}
catch (java.io.IOException ie)
{
- GlobalLogWriter.get().println("Exception occurs while reading from file " + m_sFilename);
- GlobalLogWriter.get().println("Message: " + ie.getMessage());
+ GlobalLogWriter.println("Exception occurs while reading from file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
// DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
}
try
@@ -120,8 +120,8 @@ public class IniFile implements Enumeration
}
catch (java.io.IOException ie)
{
- GlobalLogWriter.get().println("Couldn't close file " + m_sFilename);
- GlobalLogWriter.get().println("Message: " + ie.getMessage());
+ GlobalLogWriter.println("Couldn't close file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
// DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
}
return aLines;
@@ -165,7 +165,7 @@ public class IniFile implements Enumeration
private String getItem(int i)
{
- return (String) m_aList.get(i);
+ return m_aList.get(i);
}
private String buildSectionName(String _sSectionName)
@@ -380,7 +380,7 @@ public class IniFile implements Enumeration
}
catch (java.lang.NumberFormatException e)
{
- GlobalLogWriter.get().println("IniFile.getIntValue(): Caught a number format exception, return the default value.");
+ GlobalLogWriter.println("IniFile.getIntValue(): Caught a number format exception, return the default value.");
}
}
return nValue;
@@ -395,6 +395,8 @@ public class IniFile implements Enumeration
write back the ini file to the disk, only if there exist changes
* @deprecated use close() instead!
*/
+
+ // TODO: make private
public void store()
{
if (m_bListContainUnsavedChanges == false)
@@ -411,7 +413,7 @@ public class IniFile implements Enumeration
aFile.delete();
if (aFile.exists())
{
- GlobalLogWriter.get().println("Couldn't delete the file " + m_sFilename);
+ GlobalLogWriter.println("Couldn't delete the file " + m_sFilename);
return;
// DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, "Couldn't delete the file " + m_sFilename);
}
@@ -439,14 +441,14 @@ public class IniFile implements Enumeration
}
catch (java.io.FileNotFoundException fne)
{
- GlobalLogWriter.get().println("couldn't open file for writing " + m_sFilename);
- GlobalLogWriter.get().println("Message: " + fne.getMessage());
+ GlobalLogWriter.println("couldn't open file for writing " + m_sFilename);
+ GlobalLogWriter.println("Message: " + fne.getMessage());
// DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
}
catch (java.io.IOException ie)
{
- GlobalLogWriter.get().println("Exception occurs while writing to file " + m_sFilename);
- GlobalLogWriter.get().println("Message: " + ie.getMessage());
+ GlobalLogWriter.println("Exception occurs while writing to file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
// DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
}
}
@@ -467,7 +469,10 @@ public class IniFile implements Enumeration
1. section doesn't exist, goto end and insert a new section, insert a new key value pair
2. section exist but key not, search section, search key, if key is -1 get last known key position and insert new key value pair there
3. section exist and key exist, remove the old key and insert the key value pair at the same position
- */
+ * @param _sSection
+ * @param _sKey
+ * @param _sValue
+ */
public void insertValue(String _sSection, String _sKey, String _sValue)
{
int i = findSection(_sSection);
@@ -637,7 +642,7 @@ public class IniFile implements Enumeration
{
while (i < m_aList.size())
{
- String sLine = (String) m_aList.get(i);
+ String sLine = m_aList.get(i);
if (sLine.startsWith("["))
{
return i;
@@ -657,7 +662,7 @@ public class IniFile implements Enumeration
int nLineWithSection = findNextSection(m_aEnumerationPos);
if (nLineWithSection != -1)
{
- String sSection = (String) m_aList.get(nLineWithSection);
+ String sSection = m_aList.get(nLineWithSection);
m_aEnumerationPos = findNextSection(nLineWithSection + 1);
sSection = sectionToString(sSection);
return sSection;
diff --git a/qadevOOo/runner/graphical/JPEGComparator.java b/qadevOOo/runner/graphical/JPEGComparator.java
index ed3417e04c9c..a643b2b333c3 100644
--- a/qadevOOo/runner/graphical/JPEGComparator.java
+++ b/qadevOOo/runner/graphical/JPEGComparator.java
@@ -26,18 +26,19 @@
*
* ***********************************************************************
*/
-
package graphical;
import helper.OSHelper;
import helper.ProcessHandler;
import java.io.File;
+import java.io.IOException;
/**
* Helper class to interpret a jpg filename
*/
class NameDPIPage
{
+
String Name;
int DPI;
int Page;
@@ -69,20 +70,20 @@ class NameDPIPage
String sDPI = sNameNoSuffix.substring(nDPIStart + 1, sNameNoSuffix.length() - 8);
try
{
- nDPI = Integer.valueOf(sDPI).intValue();
+ nDPI = Integer.valueOf(sDPI).intValue();
}
- catch(java.lang.NumberFormatException e)
+ catch (java.lang.NumberFormatException e)
{
- GlobalLogWriter.get().println("DPI: Number format exception");
+ GlobalLogWriter.println("DPI: Number format exception");
}
String sPage = sNameNoSuffix.substring(sNameNoSuffix.length() - 4);
try
{
- nPage = Integer.valueOf(sPage).intValue();
+ nPage = Integer.valueOf(sPage).intValue();
}
- catch(java.lang.NumberFormatException e)
+ catch (java.lang.NumberFormatException e)
{
- GlobalLogWriter.get().println("Page: Number format exception");
+ GlobalLogWriter.println("Page: Number format exception");
}
}
}
@@ -95,6 +96,77 @@ class NameDPIPage
}
}
+class CountNotXXXPixelsFromImage extends Thread
+{
+
+ private String m_sFilename;
+ protected int m_nValue;
+
+ CountNotXXXPixelsFromImage(String _sFilename)
+ {
+ m_sFilename = _sFilename;
+ }
+
+ public int getValue()
+ {
+ return m_nValue;
+ }
+
+ protected void setValue(int _nValue)
+ {
+ m_nValue = _nValue;
+ }
+
+ protected String getFilename()
+ {
+ return m_sFilename;
+ }
+}
+
+class CountNotWhitePixelsFromImage extends CountNotXXXPixelsFromImage
+{
+
+ CountNotWhitePixelsFromImage(String _sFilename)
+ {
+ super(_sFilename);
+ }
+
+ public void run()
+ {
+ try
+ {
+ final int nNotWhiteCount = PixelCounter.countNotWhitePixelsFromImage(getFilename());
+ setValue(nNotWhiteCount);
+ }
+ catch (java.io.IOException e)
+ {
+ m_nValue = -1;
+ }
+ }
+}
+
+class CountNotBlackPixelsFromImage extends CountNotXXXPixelsFromImage
+{
+
+ CountNotBlackPixelsFromImage(String _sFilename)
+ {
+ super(_sFilename);
+ }
+
+ public void run()
+ {
+ try
+ {
+ final int nNotBlackCount = PixelCounter.countNotBlackPixelsFromImage(getFilename());
+ setValue(nNotBlackCount);
+ }
+ catch (java.io.IOException e)
+ {
+ m_nValue = -1;
+ }
+ }
+}
+
/**
*
* @author ll93751
@@ -102,10 +174,12 @@ class NameDPIPage
public class JPEGComparator extends EnhancedComplexTestCase
{
// @Override
+
public String[] getTestMethodNames()
{
return new String[]{"CompareJPEGvsJPEG"};
}
+ private Tolerance m_aTolerance;
/**
* test function.
@@ -121,8 +195,8 @@ public class JPEGComparator extends EnhancedComplexTestCase
public void checkOneFile(String _sDocumentName, String _sResult, ParameterHelper _aParams) throws OfficeException
{
- // private void callEveryPictureInIniFile(IniFile _aIniFile, String _sSectionName, ParameterHelper _aParam)
- // {
+ // private void callEveryPictureInIniFile(IniFile _aIniFile, String _sSectionName, ParameterHelper _aParam)
+ // {
String sPath = FileHelper.getPath(_sDocumentName);
String sSectionName = FileHelper.getBasename(_sDocumentName);
@@ -141,8 +215,9 @@ public class JPEGComparator extends EnhancedComplexTestCase
// only which has 'pages' has also pictures
int nPages = aIniFile.getIntValue(sSectionName, "pages", 0);
String sJPEGSchema = aIniFile.getValue(sSectionName, "jpegschema");
-
- for (int i=1 ; i<=nPages ; i++)
+ int nTolerance = aIniFile.getIntValue(sSectionName, "tolerance", 0);
+ m_aTolerance = new Tolerance(nTolerance);
+ for (int i = 1; i <= nPages; i++)
{
String sJPEGFilename = JPEGCreator.getFilenameForJPEGSchema(sJPEGSchema, i);
// String sPath = FileHelper.getPath(_aParam.getInputPath());
@@ -171,7 +246,6 @@ public class JPEGComparator extends EnhancedComplexTestCase
evaluateResult(sResultIniFile, _aParams);
}
-
private void evaluateResult(String _sDocument, ParameterHelper _aParams)
{
String sResultIniFile = _sDocument + ".ini";
@@ -185,7 +259,7 @@ public class JPEGComparator extends EnhancedComplexTestCase
IniFile aResultIniFile = new IniFile(sResultIniFile);
int nPages = aResultIniFile.getIntValue("global", "pages", 0);
- for (int i=0;i<nPages;i++)
+ for (int i = 0; i < nPages; i++)
{
String sCurrentPage = "page" + String.valueOf(i + 1);
int nPercent = aResultIniFile.getIntValue(sCurrentPage, "percent", -1);
@@ -195,13 +269,13 @@ public class JPEGComparator extends EnhancedComplexTestCase
}
else if (nPercent <= 5)
{
- bad ++;
- ok_status=2;
+ bad++;
+ ok_status = 2;
}
else
{
- ugly ++;
- ok_status=3;
+ ugly++;
+ ok_status = 3;
}
}
@@ -226,7 +300,7 @@ public class JPEGComparator extends EnhancedComplexTestCase
sBad = " bad:=" + bad;
sStatusMessage += sBad;
}
- if (ugly > 0)
+ if (ugly > 0)
{
sUgly = " ugly:=" + ugly;
sStatusMessage += sUgly;
@@ -263,53 +337,67 @@ public class JPEGComparator extends EnhancedComplexTestCase
_aParams.getTestParameters().put("current_ok_status", ok_status);
// if we have a ugly page, we must return this as a FAILED STATUS in Log file!
- // assure( "There exist pages marked as ugly.", ugly == 0)
+ assure("There exist pages marked as ugly.", ugly == 0);
}
private void checkOnePicture(String _sDocumentName, String _sResult, ParameterHelper _aParams)
{
GlobalLogWriter.println("JPEG: Compare difference between '" + _sDocumentName + "' and '" + _sResult + "'");
- File aResultFile = new File(_sResult);
- if (aResultFile.isDirectory())
- {
- // result is just a directory, so we search for the basename of the source and take this.
- String sBasename = FileHelper.getBasename(_sDocumentName);
- String sResultFilename = FileHelper.appendPath(_sResult, sBasename);
- aResultFile = new File(sResultFilename);
- if (aResultFile.exists())
- {
- // Original and Result exists
- String sInputPath = _aParams.getInputPath();
- if (sInputPath.toLowerCase().endsWith("index.ini"))
- {
- // special case
- // we want to get the buildid from the info file.
-
- }
-
- compareJPEG(_sDocumentName, sResultFilename, _aParams);
-
- }
- else
- {
- GlobalLogWriter.println("Warning: Result JPEG doesn't exists '" + sResultFilename + "'");
- }
- }
- else
- {
- // result is also a file
- if (aResultFile.exists())
- {
- compareJPEG(_sDocumentName, _sResult, _aParams);
- }
- else
- {
- GlobalLogWriter.println("Warning: Result JPEG doesn't exists '" + _sResult + "'");
- }
- }
- }
+ File aResultFile = new File(_sResult);
+ if (aResultFile.isDirectory())
+ {
+ // result is just a directory, so we search for the basename of the source and take this.
+ String sBasename = FileHelper.getBasename(_sDocumentName);
+ String sResultFilename = FileHelper.appendPath(_sResult, sBasename);
+ aResultFile = new File(sResultFilename);
+ if (aResultFile.exists())
+ {
+ // Original and Result exists
+ String sInputPath = _aParams.getInputPath();
+ if (sInputPath.toLowerCase().endsWith("index.ini"))
+ {
+ // special case
+ // we want to get the buildid from the info file.
+ }
+ compareJPEG(_sDocumentName, sResultFilename, _aParams);
+ }
+ else
+ {
+ String sResultFilenamePDF = util.utils.replaceAll13(sResultFilename, ".ps_", ".pdf_");
+ File aResultPDFFile = new File(sResultFilenamePDF);
+ if (aResultPDFFile.exists())
+ {
+ // Original and Result exists
+ String sInputPath = _aParams.getInputPath();
+ if (sInputPath.toLowerCase().endsWith("index.ini"))
+ {
+ // special case
+ // we want to get the buildid from the info file.
+ }
+
+ compareJPEG(_sDocumentName, sResultFilenamePDF, _aParams);
+ }
+ else
+ {
+ GlobalLogWriter.println("Warning: Result JPEG doesn't exists '" + sResultFilename + "'");
+ }
+ }
+ }
+ else
+ {
+ // result is also a file
+ if (aResultFile.exists())
+ {
+ compareJPEG(_sDocumentName, _sResult, _aParams);
+ }
+ else
+ {
+ GlobalLogWriter.println("Warning: Result JPEG doesn't exists '" + _sResult + "'");
+ }
+ }
+ }
/**
* compare 2 JPEGs, it is a need, that both _sDocumentName and _sResultFilename exist.
@@ -318,7 +406,6 @@ public class JPEGComparator extends EnhancedComplexTestCase
* @param _aParams
* @return 0=no difference !=0 both files differ
*/
-
private void compareJPEG(String _sDocumentName, String _sResult, ParameterHelper _aParams)
{
NameDPIPage aNameDPIPage = NameDPIPage.interpret(_sDocumentName);
@@ -328,7 +415,7 @@ public class JPEGComparator extends EnhancedComplexTestCase
String sDestinationBasename = FileHelper.getBasename(_sResult);
String sDestinationPath = FileHelper.getPath(_sResult);
- if (! sSourcePath.equals(sDestinationPath))
+ if (!sSourcePath.equals(sDestinationPath))
{
// we want to have all in one Directory, Original, Reference and the Difference result.
// copy the original file to the reference path
@@ -354,9 +441,23 @@ public class JPEGComparator extends EnhancedComplexTestCase
// this means, 1=only one color, no differences found.
int nResult = identify(sDifference);
int nPercentColorDiffer = 0;
- String sResult = "NO";
+
+ String sResult = "YES";
+
+ if (m_aTolerance != null)
+ {
+ final int nAcceptedTolerance = m_aTolerance.getAccept();
+ if (nResult <= nAcceptedTolerance)
+ {
+ nResult = 1;
+ sResult = "IN TOLERANCE";
+ GlobalLogWriter.println("The differences are in tolerance.");
+
+ }
+ }
if (nResult != 1)
{
+ sResult = "NO";
try
{
nPercentColorDiffer = estimateGfx(sSource, sDestination, sDifference);
@@ -366,10 +467,6 @@ public class JPEGComparator extends EnhancedComplexTestCase
GlobalLogWriter.println("Can't estimate the different colors. " + e.getMessage());
}
}
- else
- {
- sResult = "YES";
- }
// store the result in a result.ini file
String sResultFile = FileHelper.appendPath(sDestinationPath, aNameDPIPage.Name + ".ini");
@@ -380,14 +477,16 @@ public class JPEGComparator extends EnhancedComplexTestCase
}
IniFile aResultIni = new IniFile(sResultFile);
- String[] aComment = {
+ String[] aComment =
+ {
"; This file is automatically created by a graphical.JPEGComparator run",
"; ",
"; If you see this file in a browser you may have forgotten to set the follows in the property file",
"; " + PropertyName.DOC_COMPARATOR_HTML_OUTPUT_PREFIX + "=http://<computer>/gfxcmp_ui/cw.php?inifile=",
"; Please check the documentation if you got confused.",
"; ",
- "; "};
+ "; "
+ };
aResultIni.insertFirstComment(aComment);
// write down the global flags
@@ -396,7 +495,7 @@ public class JPEGComparator extends EnhancedComplexTestCase
// INIoutput.writeValue("buildid", _sBuildID);
// INIoutput.writeValue("refbuildid", _sRefBuildID);
- String sRefBuildId = (String)_aParams.getTestParameters().get("RefBuildId");
+ String sRefBuildId = (String) _aParams.getTestParameters().get("RefBuildId");
if (sRefBuildId == null)
{
sRefBuildId = "";
@@ -410,8 +509,8 @@ public class JPEGComparator extends EnhancedComplexTestCase
// write down flags for each page
String sSection = "page" + String.valueOf(nPage);
- aResultIni.insertValue(sSection, "oldgfx", sSource);
- aResultIni.insertValue(sSection, "newgfx", sDestination);
+ aResultIni.insertValue(sSection, "oldgfx", sSource);
+ aResultIni.insertValue(sSection, "newgfx", sDestination);
aResultIni.insertValue(sSection, "diffgfx", sDifference);
aResultIni.insertValue(sSection, "percent", nPercentColorDiffer);
aResultIni.insertValue(sSection, "BM", "false");
@@ -490,8 +589,6 @@ public class JPEGComparator extends EnhancedComplexTestCase
// INIoutput.close();
// return bResultIsOk;
// }
-
-
/**
* count how much pixel differ and between Old or New and the Difference graphics
*
@@ -517,75 +614,119 @@ public class JPEGComparator extends EnhancedComplexTestCase
* @return the count of different pixels
* @throws java.io.IOException if file access is not possible
*/
-
public static int estimateGfx(String _sOldGfx, String _sNewGfx, String _sDiffGfx)
- throws java.io.IOException
- {
- // new count pixels
- final int nNotWhiteCount_OldGraphic = PixelCounter.countNotWhitePixelsFromImage(_sOldGfx);
- final int nNotWhiteCount_NewGraphic = PixelCounter.countNotWhitePixelsFromImage(_sNewGfx);
- final int nNotBlackCount_DiffGraphic = PixelCounter.countNotBlackPixelsFromImage(_sDiffGfx);
+ throws java.io.IOException
+ {
+ TimeHelper a = new TimeHelper();
+ a.start();
+ // Count Pixels
+ final int nNotWhiteCount_OldGraphic = PixelCounter.countNotWhitePixelsFromImage(_sOldGfx);
+ final int nNotWhiteCount_NewGraphic = PixelCounter.countNotWhitePixelsFromImage(_sNewGfx);
+ final int nNotBlackCount_DiffGraphic = PixelCounter.countNotBlackPixelsFromImage(_sDiffGfx);
+
+ // Count Pixels in different threads
+// CountNotWhitePixelsFromImage t1 = new CountNotWhitePixelsFromImage(_sOldGfx);
+// CountNotWhitePixelsFromImage t2 = new CountNotWhitePixelsFromImage(_sNewGfx);
+// CountNotBlackPixelsFromImage t3 = new CountNotBlackPixelsFromImage(_sDiffGfx);
+// t1.start();
+// t2.start();
+// t3.start();
+// try
+// {
+// t1.join();
+// }
+// catch (InterruptedException ex)
+// {
+// GlobalLogWriter.get().println("Thread 1 failed: " + ex.getMessage());
+// }
+// try
+// {
+// t2.join();
+// }
+// catch (InterruptedException ex)
+// {
+// GlobalLogWriter.get().println("Thread 2 failed: " + ex.getMessage());
+// }
+// try
+// {
+// t3.join();
+// }
+// catch (InterruptedException ex)
+// {
+// GlobalLogWriter.get().println("Thread 3 failed: " + ex.getMessage());
+// }
+// final int nNotWhiteCount_OldGraphic = t1.getValue();
+// final int nNotWhiteCount_NewGraphic = t2.getValue();
+// final int nNotBlackCount_DiffGraphic = t3.getValue();
+
+ a.stop();
+ GlobalLogWriter.println("Thread Time is: " + a.getTime());
- int nMinNotWhiteCount = Math.min(nNotWhiteCount_NewGraphic, nNotWhiteCount_OldGraphic);
+ int nMinNotWhiteCount = Math.min(nNotWhiteCount_NewGraphic, nNotWhiteCount_OldGraphic);
- // check if not zero
+ // check if not zero
+ if (nMinNotWhiteCount == 0)
+ {
+ nMinNotWhiteCount = Math.max(nNotWhiteCount_NewGraphic, nNotWhiteCount_OldGraphic);
if (nMinNotWhiteCount == 0)
{
- nMinNotWhiteCount = Math.max(nNotWhiteCount_NewGraphic, nNotWhiteCount_OldGraphic);
- if (nMinNotWhiteCount == 0)
- {
- nMinNotWhiteCount = 1;
- }
+ nMinNotWhiteCount = 1;
}
-
- int nPercent = Math.abs(nNotBlackCount_DiffGraphic * 100 / nMinNotWhiteCount);
- GlobalLogWriter.get().println( "Graphics check, pixel based:" + String.valueOf(nPercent) + "% pixel differ ");
- return nPercent;
}
- private static int compareJPEG(String _sOldGfx, String _sNewGfx, String _sDiffGfx)
+ int nPercent = Math.abs(nNotBlackCount_DiffGraphic * 100 / nMinNotWhiteCount);
+ GlobalLogWriter.println("Graphics check, pixel based:" + String.valueOf(nPercent) + "% pixel differ ");
+ return nPercent;
+ }
+
+ private static int compareJPEG(String _sOldGfx, String _sNewGfx, String _sDiffGfx)
+ {
+ String sComposite = "composite";
+ if (OSHelper.isWindows())
{
- String sComposite = "composite";
- if (OSHelper.isWindows())
+ sComposite = "composite.exe";
+ String sIMPath = (String) param.get("imagemagick.path");
+ if (sIMPath != null)
{
- sComposite = "composite.exe";
+ sComposite = FileHelper.appendPath(sIMPath, sComposite);
}
+ }
- // String sCommand = sComposite + " -compose difference " +
- // StringHelper.doubleQuoteIfNeed(_sOldGfx) + " " +
- // StringHelper.doubleQuoteIfNeed(_sNewGfx) + " " +
- // StringHelper.doubleQuoteIfNeed(_sDiffGfx);
+ // String sCommand = sComposite + " -compose difference " +
+ // StringHelper.doubleQuoteIfNeed(_sOldGfx) + " " +
+ // StringHelper.doubleQuoteIfNeed(_sNewGfx) + " " +
+ // StringHelper.doubleQuoteIfNeed(_sDiffGfx);
- String[] sCommandArray =
- {
- sComposite,
- "-compose",
- "difference",
- _sOldGfx,
- _sNewGfx,
- _sDiffGfx
- };
-
- ProcessHandler aHandler = new ProcessHandler(sCommandArray);
- boolean bBackValue = aHandler.executeSynchronously();
- int nExitCode = aHandler.getExitCode();
- if (nExitCode != 0)
- {
- GlobalLogWriter.println("'" + sComposite + "' return with ");
- String sBack = aHandler.getOutputText();
- GlobalLogWriter.get().println("'" + sBack + "'");
- }
- else
+ String[] sCommandArray =
+ {
+ sComposite,
+ "-compose",
+ "difference",
+ _sOldGfx,
+ _sNewGfx,
+ _sDiffGfx
+ };
+
+ ProcessHandler aHandler = new ProcessHandler(sCommandArray);
+ boolean bBackValue = aHandler.executeSynchronously();
+ int nExitCode = aHandler.getExitCode();
+ if (nExitCode != 0)
+ {
+ GlobalLogWriter.println("'" + sComposite + "' return with ");
+ String sBack = aHandler.getOutputText();
+ GlobalLogWriter.println("'" + sBack + "'");
+ }
+ else
+ {
+ // creates an extra smaller difference picture
+ File aDiffFile = new File(_sDiffGfx);
+ if (aDiffFile.exists())
{
- // creates an extra smaller difference picture
- File aDiffFile = new File(_sDiffGfx);
- if (aDiffFile.exists())
- {
- JPEGCreator.convertToNearSameFileWithWidth340(_sDiffGfx);
- }
+ JPEGCreator.convertToNearSameFileWithWidth340(_sDiffGfx);
}
- return nExitCode;
}
+ return nExitCode;
+ }
/**
* wrapper for ImageMagick identify,
@@ -593,58 +734,60 @@ public class JPEGComparator extends EnhancedComplexTestCase
* if it's only one color (nResult==1), like background color, there is no difference.
*/
int identify(String _sDiffGfx)
+ {
+ int nResult = 0;
+ // would like to know what the meaning of %k is for ImageMagick's 'identify'
+ String sIM_Format = "%k";
+ // if (OSHelper.isWindows())
+ // {
+ // sIM_Format = "%%k";
+ // }
+
+ String sIdentify = "identify";
+ if (OSHelper.isWindows())
{
- int nResult = 0;
- // would like to know what the meaning of %k is for ImageMagick's 'identify'
- String sIM_Format = "%k";
- // if (OSHelper.isWindows())
- // {
- // sIM_Format = "%%k";
- // }
-
- String sIdentify = "identify";
- if (OSHelper.isWindows())
+ sIdentify = "identify.exe";
+ String sIMPath = (String) param.get("imagemagick.path");
+ if (sIMPath != null)
{
- sIdentify = "identify.exe";
+ sIdentify = FileHelper.appendPath(sIMPath, sIdentify);
}
+ }
- // String sCommand = sIdentify + " " + sIM_Format + " " + StringHelper.doubleQuoteIfNeed(_sDiffGfx);
-
- String[] sCommandArray =
- {
- sIdentify,
- "-format",
- sIM_Format,
- _sDiffGfx
- };
- ProcessHandler aHandler = new ProcessHandler(sCommandArray);
- boolean bBackValue = aHandler.executeSynchronously();
- int nExitCode = aHandler.getExitCode();
-
- String sBack = aHandler.getOutputText();
- GlobalLogWriter.get().println("'" + sBack + "'");
+ // String sCommand = sIdentify + " " + sIM_Format + " " + StringHelper.doubleQuoteIfNeed(_sDiffGfx);
- // try to interpret the result, which we get as a String
- try
- {
- int nIdx = sBack.indexOf("\n");
- if (nIdx > 0)
- {
- sBack = sBack.substring(0, nIdx);
- }
-
- nResult = Integer.valueOf(sBack).intValue();
- }
- catch(java.lang.NumberFormatException e)
+ String[] sCommandArray =
+ {
+ sIdentify,
+ "-format",
+ sIM_Format,
+ _sDiffGfx
+ };
+ ProcessHandler aHandler = new ProcessHandler(sCommandArray);
+ boolean bBackValue = aHandler.executeSynchronously();
+ int nExitCode = aHandler.getExitCode();
+
+ String sBack = aHandler.getOutputText();
+ GlobalLogWriter.println("'" + sBack + "'");
+
+ // try to interpret the result, which we get as a String
+ try
+ {
+ int nIdx = sBack.indexOf("\n");
+ if (nIdx > 0)
{
- GlobalLogWriter.get().println("identify(): Number format exception");
- nResult = 0;
+ sBack = sBack.substring(0, nIdx);
}
- return nResult;
- }
-
-
+ nResult = Integer.valueOf(sBack).intValue();
+ }
+ catch (java.lang.NumberFormatException e)
+ {
+ GlobalLogWriter.println("identify(): Number format exception");
+ nResult = 0;
+ }
+ return nResult;
+ }
// public static void main(String [] _args)
// {
//// give an index.ini file, ok
@@ -670,5 +813,4 @@ public class JPEGComparator extends EnhancedComplexTestCase
//
// org.openoffice.Runner.main(args);
// }
-
}
diff --git a/qadevOOo/runner/graphical/JPEGCreator.java b/qadevOOo/runner/graphical/JPEGCreator.java
index 5f6343d9780d..a4336229e448 100644
--- a/qadevOOo/runner/graphical/JPEGCreator.java
+++ b/qadevOOo/runner/graphical/JPEGCreator.java
@@ -75,18 +75,35 @@ public class JPEGCreator extends EnhancedComplexTestCase
{
createSmallPictures(sJPEGNameSchema);
+ // read out tolerance file
+ String sFileDir = FileHelper.getPath(_sDocumentName);
+ String sBasename = FileHelper.getBasename(_sDocumentName);
+ int nTolerance = 0;
+ String sToleranceFile = FileHelper.appendPath(sFileDir, "tolerance.ini");
+ File aToleranceFile = new File(sToleranceFile);
+ if (aToleranceFile.exists())
+ {
+ IniFile aIniFile = new IniFile(sToleranceFile);
+ nTolerance = aIniFile.getIntValue(sBasename, "accept", 0); // default for all pages
+ aIniFile.close();
+ }
+
String sIndexFile = FileHelper.appendPath(_sResult, "index.ini");
File aIndexFile = new File(sIndexFile);
if (aIndexFile.exists())
{
// store only if an index file exists
IniFile aIniFile = new IniFile(sIndexFile);
- String sBasename = FileHelper.getBasename(_sDocumentName);
aIniFile.insertValue(sBasename, "jpegschema", sJPEGNameSchema);
aIniFile.insertValue(sBasename, "pages", nPages);
+ aIniFile.insertValue(sBasename, "tolerance", nTolerance);
aIniFile.close();
}
}
+ else
+ {
+ assure("There are no pages in document:'" + _sDocumentName + "', maybe document currupt?", false, true);
+ }
}
/**
@@ -96,6 +113,12 @@ public class JPEGCreator extends EnhancedComplexTestCase
*/
public void createSmallPictures(String _sJPEGSchema)
{
+ ParameterHelper aParam = new ParameterHelper(param);
+ if (! aParam.createSmallPictures())
+ {
+ return;
+ }
+
int nPages = 0;
if (_sJPEGSchema.length() > 0)
{
@@ -124,6 +147,11 @@ public class JPEGCreator extends EnhancedComplexTestCase
*/
public static void convertToNearSameFileWithWidth340(String _sJPEGFilename)
{
+ ParameterHelper aParam = new ParameterHelper(param);
+ if (! aParam.createSmallPictures())
+ {
+ return;
+ }
String sJPEGFilename = _sJPEGFilename.replaceAll("\\\\", "/");
// if (OSHelper.isWindows())
// {
@@ -160,7 +188,13 @@ private static void convertToWidth340(String _sFrom, String _To)
{
// TODO!
// HACK Hard coded!
- sConvertEXE = "C:\\Programme\\ImageMagick-6.0.3-q8\\convert.exe";
+ // sConvertEXE = "C:\\Programme\\ImageMagick-6.0.3-q8\\convert.exe";
+ sConvertEXE = "convert.exe";
+ String sConvertPath = (String)param.get("imagemagick.path");
+ if (sConvertPath != null)
+ {
+ sConvertEXE = FileHelper.appendPath(sConvertPath, sConvertEXE);
+ }
}
String[] sCommandArray =
@@ -178,7 +212,7 @@ private static void convertToWidth340(String _sFrom, String _To)
String sBack = aHandler.getOutputText();
if (sBack.length() > 0)
{
- GlobalLogWriter.get().println("'" + sBack + "'");
+ GlobalLogWriter.println("'" + sBack + "'");
}
// try to interpret the result, which we get as a String
// try
@@ -223,7 +257,7 @@ private static void convertToWidth340(String _sFrom, String _To)
}
else
{
- GlobalLogWriter.get().println("File: '" + _sFile + "' doesn't exist.");
+ GlobalLogWriter.println("File: '" + _sFile + "' doesn't exist.");
return "";
}
String sFileDir = FileHelper.getPath(_sFile);
@@ -291,6 +325,16 @@ private static void convertToWidth340(String _sFrom, String _To)
if (OSHelper.isWindows())
{
sGhostscriptEXE = "gswin32c.exe";
+ String sGhostscriptEXE2 = (String)param.get("gs.exe");
+ if (sGhostscriptEXE2 != null)
+ {
+ sGhostscriptEXE = sGhostscriptEXE2;
+ }
+ String sGhostscriptPath = (String)param.get("gs.path");
+ if (sGhostscriptPath != null)
+ {
+ sGhostscriptEXE = FileHelper.appendPath(sGhostscriptPath, sGhostscriptEXE);
+ }
}
// String sCommand = sGhostscriptEXE + " -dNOPROMPT -dBATCH -sDEVICE=jpeg -r" + String.valueOf(_nResolutionInDPI) + " -dNOPAUSE -sOutputFile=" + StringHelper.doubleQuoteIfNeed(sJPGFilename) + " " + StringHelper.doubleQuoteIfNeed(sOriginalFile);
@@ -333,6 +377,7 @@ private static void convertToWidth340(String _sFrom, String _To)
{
// return only a valid schema name if there at least one page.
sJPEGNameSchema = "";
+ assure("Document '" + sPostscriptOrPDFFile + "' doesn't create pages.", false, true);
}
}
else
diff --git a/qadevOOo/runner/graphical/MSOfficePostscriptCreator.java b/qadevOOo/runner/graphical/MSOfficePostscriptCreator.java
index 8a85c6b32afd..86eb28143ed2 100644
--- a/qadevOOo/runner/graphical/MSOfficePostscriptCreator.java
+++ b/qadevOOo/runner/graphical/MSOfficePostscriptCreator.java
@@ -88,14 +88,14 @@ public class MSOfficePostscriptCreator implements IOffice
if (! isMSOfficeDocumentFormat(m_sDocumentName))
{
- GlobalLogWriter.get().println("This document type is not recognized as MSOffice format, as default fallback StarOffice/OpenOffice.org instead is used.");
+ GlobalLogWriter.println("This document type is not recognized as MSOffice format, as default fallback StarOffice/OpenOffice.org instead is used.");
throw new OfficeException("This document type is not recognized as MSOffice format, as default fallback StarOffice/OpenOffice.org instead is used.");
}
}
public void storeAsPostscript() throws OfficeException
{
- GlobalLogWriter.get().println("USE MSOFFICE AS EXPORT FORMAT.");
+ GlobalLogWriter.println("USE MSOFFICE AS EXPORT FORMAT.");
try
{
String sDocumentName = m_sDocumentName + ".ps";
@@ -112,12 +112,12 @@ public class MSOfficePostscriptCreator implements IOffice
catch(OfficeException e)
{
e.printStackTrace();
- GlobalLogWriter.get().println(e.getMessage());
+ GlobalLogWriter.println(e.getMessage());
throw new OfficeException("Exception caught. Problem with MSOffice printer methods.");
}
catch(java.io.IOException e)
{
- GlobalLogWriter.get().println(e.getMessage());
+ GlobalLogWriter.println(e.getMessage());
throw new OfficeException("IOException caught. Problem with MSOffice printer methods.");
}
}
@@ -177,11 +177,11 @@ public class MSOfficePostscriptCreator implements IOffice
private boolean isMSOfficeDocumentFormat(String _sFile)
{
String sDocumentSuffix = FileHelper.getSuffix(_sFile);
- if (isWordDocument(sDocumentSuffix)) return true;
- if (isExcelDocument(sDocumentSuffix)) return true;
- if (isPowerPointDocument(sDocumentSuffix)) return true;
+ if (isWordDocument(sDocumentSuffix)) {return true;}
+ if (isExcelDocument(sDocumentSuffix)) {return true;}
+ if (isPowerPointDocument(sDocumentSuffix)) {return true;}
// if suffix is xml, return also true, but we can't decide if word or excel
- if (sDocumentSuffix.toLowerCase().endsWith(".xml")) return true;
+ if (sDocumentSuffix.toLowerCase().endsWith(".xml")) {return true;}
return false;
}
@@ -191,7 +191,7 @@ public class MSOfficePostscriptCreator implements IOffice
{
String sDocumentSuffix = FileHelper.getSuffix(_sInputFile);
String sFilterName = _aGTA.getExportFilterName();
- ArrayList aStartCommand = new ArrayList();
+ ArrayList<String> aStartCommand = new ArrayList<String>();
if (isWordDocument(sDocumentSuffix))
{
aStartCommand = createWordStoreHelper();
@@ -222,7 +222,7 @@ public class MSOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("No Microsoft Office document format found.");
+ GlobalLogWriter.println("No Microsoft Office document format found.");
throw new WrongSuffixException("No MS office document format found.");
}
@@ -249,6 +249,11 @@ public class MSOfficePostscriptCreator implements IOffice
// -----------------------------------------------------------------------------
/**
* print the given file (_sInputFile) to the file name (_sPrintFile)
+ * @param _aGTA
+ * @param _sInputFile
+ * @param _sPrintFilename
+ * @throws OfficeException
+ * @throws java.io.IOException
*/
public void printToFileWithMSOffice( ParameterHelper _aGTA,
String _sInputFile,
@@ -258,7 +263,7 @@ public class MSOfficePostscriptCreator implements IOffice
setPrinterName(_aGTA.getPrinterName());
- ArrayList aStartCommand = new ArrayList();
+ ArrayList<String> aStartCommand = new ArrayList<String>();
if (isWordDocument(sDocumentSuffix))
{
aStartCommand = createWordPrintHelper();
@@ -293,7 +298,7 @@ public class MSOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("No Microsoft Office document format found.");
+ GlobalLogWriter.println("No Microsoft Office document format found.");
// TODO: use a better Exception!!!
throw new WrongSuffixException("No Mircosoft Office document format found.");
}
@@ -368,7 +373,13 @@ public class MSOfficePostscriptCreator implements IOffice
}
- ArrayList createWordPrintHelper() throws java.io.IOException
+ private String getPerlExe()
+ {
+ final String sPerlExe = System.getProperty("perl.exe", "perl");
+ return sPerlExe;
+ }
+
+ ArrayList<String> createWordPrintHelper() throws java.io.IOException
{
// create a program in tmp file
String sTmpPath = util.utils.getUsersTempDir();
@@ -376,7 +387,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sPrintViaWord = "printViaWord.pl";
- ArrayList aList = searchLocalFile(sPrintViaWord);
+ ArrayList<String> aList = searchLocalFile(sPrintViaWord);
if (aList.isEmpty() == false)
{
return aList;
@@ -465,30 +476,30 @@ public class MSOfficePostscriptCreator implements IOffice
out.write( "}" + ls);
out.close();
- aList.add("perl");
+ aList.add(getPerlExe());
aList.add(sFileName);
return aList;
}
// TODO: Maybe give a possibility to say where search the script from outside
- ArrayList searchLocalFile(String _sScriptName)
+ ArrayList<String> searchLocalFile(String _sScriptName)
{
String userdir = System.getProperty("user.dir");
- ArrayList aList = new ArrayList();
+ ArrayList<String> aList = new ArrayList<String>();
String sFileName = FileHelper.appendPath(userdir, _sScriptName);
File aPerlScript = new File(sFileName);
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("Search for local existance of " + aPerlScript.getAbsolutePath());
+ GlobalLogWriter.println("Search for local existance of " + aPerlScript.getAbsolutePath());
}
if (aPerlScript.exists())
{
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("OK, found it, use this instead the internal one.");
+ GlobalLogWriter.println("OK, found it, use this instead the internal one.");
}
String sName = aPerlScript.getAbsolutePath();
@@ -501,7 +512,7 @@ public class MSOfficePostscriptCreator implements IOffice
return aList;
}
- ArrayList createWordStoreHelper() throws java.io.IOException
+ ArrayList<String> createWordStoreHelper() throws java.io.IOException
{
// create a program in tmp file
String sTmpPath = util.utils.getUsersTempDir();
@@ -510,7 +521,7 @@ public class MSOfficePostscriptCreator implements IOffice
// ArrayList aList = new ArrayList();
String sSaveViaWord = "saveViaWord.pl";
- ArrayList aList = searchLocalFile(sSaveViaWord);
+ ArrayList<String> aList = searchLocalFile(sSaveViaWord);
if (aList.isEmpty() == false)
{
return aList;
@@ -519,7 +530,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sName = FileHelper.appendPath(sTmpPath, sSaveViaWord);
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("No local found, create a perl script: " + sName);
+ GlobalLogWriter.println("No local found, create a perl script: " + sName);
}
File aFile = new File(sName);
@@ -577,13 +588,13 @@ public class MSOfficePostscriptCreator implements IOffice
out.write( "$Word->Quit(); " + ls );
out.close();
- aList.add("perl");
+ aList.add(getPerlExe());
aList.add(sName);
return aList;
}
- ArrayList createExcelPrintHelper() throws java.io.IOException
+ ArrayList<String> createExcelPrintHelper() throws java.io.IOException
{
// create a program in tmp file
String sTmpPath = util.utils.getUsersTempDir();
@@ -591,7 +602,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sPrintViaExcel = "printViaExcel.pl";
- ArrayList aList = searchLocalFile(sPrintViaExcel);
+ ArrayList<String> aList = searchLocalFile(sPrintViaExcel);
if (aList.isEmpty() == false)
{
return aList;
@@ -599,14 +610,20 @@ public class MSOfficePostscriptCreator implements IOffice
String sName = FileHelper.appendPath(sTmpPath, sPrintViaExcel);
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("No local found, create a perl script: " + sName);
+ GlobalLogWriter.println("No local found, create a perl script: " + sName);
}
File aFile = new File(sName);
FileWriter out = new FileWriter(aFile);
- out.write( "eval 'exec perl -wS $0 ${1+\"$@\"}' " + ls );
- out.write( " if 0; " + ls );
+ // out.write( "eval 'exec perl -wS $0 ${1+\"$@\"}' " + ls );
+ // out.write( " if 0; " + ls );
+ out.write("#BEGIN" + ls);
+ out.write("#{" + ls);
+ out.write("#" + ls);
+ out.write("# # insert HACK" + ls);
+ out.write("# unshift(@INC, '');" + ls);
+ out.write("#}" + ls);
out.write( "use strict; " + ls );
out.write( " " + ls );
out.write( "if ( $^O ne \"MSWin32\") " + ls );
@@ -675,12 +692,12 @@ public class MSOfficePostscriptCreator implements IOffice
out.write( "}" + ls);
out.close();
- aList.add("perl");
+ aList.add(getPerlExe());
aList.add(sName);
return aList;
}
- ArrayList createExcelStoreHelper() throws java.io.IOException
+ ArrayList<String> createExcelStoreHelper() throws java.io.IOException
{
// create a program in tmp file
String sTmpPath = util.utils.getUsersTempDir();
@@ -688,7 +705,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sSaveViaExcel = "saveViaExcel.pl";
- ArrayList aList = searchLocalFile(sSaveViaExcel);
+ ArrayList<String> aList = searchLocalFile(sSaveViaExcel);
if (aList.isEmpty() == false)
{
return aList;
@@ -696,7 +713,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sName = FileHelper.appendPath(sTmpPath, sSaveViaExcel);
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("No local found, create a script: " + sName);
+ GlobalLogWriter.println("No local found, create a script: " + sName);
}
File aFile = new File(sName);
@@ -764,12 +781,12 @@ public class MSOfficePostscriptCreator implements IOffice
out.write( "$Excel->Quit(); " + ls );
out.close();
- aList.add("perl");
+ aList.add(getPerlExe());
aList.add(sName);
return aList;
}
- ArrayList createPowerPointPrintHelper() throws java.io.IOException
+ ArrayList<String> createPowerPointPrintHelper() throws java.io.IOException
{
// create a program in tmp file
String sTmpPath = util.utils.getUsersTempDir();
@@ -777,7 +794,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sPrintViaPowerPoint = "printViaPowerPoint.pl";
- ArrayList aList = searchLocalFile(sPrintViaPowerPoint);
+ ArrayList<String> aList = searchLocalFile(sPrintViaPowerPoint);
if (aList.isEmpty() == false)
{
return aList;
@@ -785,7 +802,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sName = FileHelper.appendPath(sTmpPath, sPrintViaPowerPoint);
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("No local found, create a script: " + sName);
+ GlobalLogWriter.println("No local found, create a script: " + sName);
}
File aFile = new File(sName);
@@ -865,7 +882,7 @@ public class MSOfficePostscriptCreator implements IOffice
out.write( "}" + ls);
out.close();
- aList.add("perl");
+ aList.add(getPerlExe());
aList.add(sName);
return aList;
}
@@ -879,7 +896,7 @@ public class MSOfficePostscriptCreator implements IOffice
File aFile = new File(_sFilename);
if (! aFile.exists())
{
- GlobalLogWriter.get().println("couldn't find file " + _sFilename);
+ GlobalLogWriter.println("couldn't find file " + _sFilename);
return "";
}
RandomAccessFile aReader = null;
@@ -911,7 +928,7 @@ public class MSOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("Unknown/unsupported data file: " + aLine);
+ GlobalLogWriter.println("Unknown/unsupported data file: " + aLine);
}
}
}
diff --git a/qadevOOo/runner/graphical/Office.java b/qadevOOo/runner/graphical/Office.java
index 88aeebc6b049..8ecee36cc742 100644
--- a/qadevOOo/runner/graphical/Office.java
+++ b/qadevOOo/runner/graphical/Office.java
@@ -48,6 +48,7 @@ public class Office implements IOffice
m_sResult = _sResult;
if (_aParam.getReferenceType().toLowerCase().equals("ooo") ||
+ _aParam.getReferenceType().toLowerCase().equals("ps") ||
_aParam.getReferenceType().toLowerCase().equals("pdf"))
{
m_aOffice = new OpenOfficePostscriptCreator(_aParam, m_sResult);
diff --git a/qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java b/qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java
index a325ba5aaf0d..a0592d5ce143 100644
--- a/qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java
+++ b/qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java
@@ -64,7 +64,7 @@ class PropertySetHelper
XPropertySet m_xPropertySet;
public PropertySetHelper(Object _aObj)
{
- m_xPropertySet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, _aObj);
+ m_xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, _aObj);
}
/**
@@ -115,12 +115,12 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
try
{
XInterface xInterface = (XInterface) getMultiServiceFactory().createInstance( "com.sun.star.frame.Desktop" );
- m_xDesktop = (XDesktop) UnoRuntime.queryInterface(XDesktop.class, xInterface);
+ m_xDesktop = UnoRuntime.queryInterface(XDesktop.class, xInterface);
}
catch (com.sun.star.uno.Exception e)
{
- GlobalLogWriter.get().println("ERROR: uno.Exception caught");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: uno.Exception caught");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
}
return m_xDesktop;
@@ -149,7 +149,7 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
{
if (m_xMultiServiceFactory == null)
{
- m_xMultiServiceFactory = (XMultiServiceFactory)m_aParameterHelper.getMultiServiceFactory();
+ m_xMultiServiceFactory = m_aParameterHelper.getMultiServiceFactory();
}
return m_xMultiServiceFactory;
}
@@ -192,95 +192,11 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
/**
* This is the main test Function of current ReportDesignerTest
+ * @param _sDocument
+ * @return
*/
-// public void load(String _sDocumentName)
-// {
-// // convwatch.GlobalLogWriter.set(log);
-//
-// // GlobalLogWriter.get().println("Set office watcher");
-// // OfficeWatcher aWatcher = (OfficeWatcher)m_aParameterHelper.getTestParameters().get("Watcher");
-// // GlobalLogWriter.get().setWatcher(aWatcher);
-//
-// try
-// {
-//
-// // -------------------- preconditions, try to find an office --------------------
-//
-//// String sAppExecutionCommand = (String) m_aParameterHelper.getTestParameters().get("AppExecutionCommand");
-//// GlobalLogWriter.get().println("sAppExecutionCommand='" + sAppExecutionCommand + "'");
-////
-//// String sUser = System.getProperty("user.name");
-//// GlobalLogWriter.get().println("user.name='" + sUser + "'");
-////
-//// // String sVCSID = System.getProperty("VCSID");
-//// // GlobalLogWriter.get().println("VCSID='" + sVCSID + "'");
-//// // m_sMailAddress = sVCSID + "@openoffice.org";
-//// m_sMailAddress = System.getProperty("MailAddress");
-//// GlobalLogWriter.get().println("Assumed mail address: " + m_sMailAddress);
-////
-//// m_sParentDistinct = System.getProperty("ParentDistinct");
-////
-//// m_sSourceVersion = System.getProperty("SourceVersion");
-//// m_sSourceName = System.getProperty("SourceName");
-//// m_sDestinationVersion = System.getProperty("DestinationVersion");
-//// m_sDestinationName = System.getProperty("DestinationName");
-//// // createDBEntry();
-//// // GlobalLogWriter.get().println("Current CWS: " + m_sCWS_WORK_STAMP);
-//// // GlobalLogWriter.get().println("Current MWS: " + m_sUPDMinor);
-////
-//// if (m_sSourceVersion == null)
-//// {
-//// System.out.println("Error, Sourceversion is null.");
-//// System.exit(1);
-//// }
-////
-//// sAppExecutionCommand = sAppExecutionCommand.replaceAll( "\\$\\{USERNAME\\}", sUser);
-//// GlobalLogWriter.get().println("sAppExecutionCommand='" + sAppExecutionCommand + "'");
-//
-// // an other way to replace strings
-// // sAppExecutionCommand = utils.replaceAll13(sAppExecutionCommand, "${USERNAME}", sUser);
-//
-// // checkIfOfficeExists(sAppExecutionCommand);
-// // param.put("AppExecutionCommand", new String(sAppExecutionCommand));
-//
-// // System.exit(1);
-//
-// // --------------------------- Start the given Office ---------------------------
-//
-// // startOffice();
-//
-// // ------------------------------ Start a test run ------------------------------
-//
-// // String sCurrentDirectory = System.getProperty("user.dir");
-// // GlobalLogWriter.get().println("Current Dir: " + sCurrentDirectory);
-//// String sDocument = (String) m_aParameterHelper.getTestParameters().get(convwatch.PropertyName.DOC_COMPARATOR_INPUT_PATH);
-//// sDocument = helper.StringHelper.removeQuoteIfExists( sDocument );
-// startTestForFile(_sDocumentName);
-// // if (sDocument.toLowerCase().indexOf("writer") >= 0)
-// // {
-// // startTestForFile(sDocument, WRITER);
-// // }
-// // else if (sDocument.toLowerCase().indexOf("calc") >= 0)
-// // {
-// // startTestForFile(sDocument, CALC);
-// // }
-// // else
-// // {
-// // assure("Can't identify the document no 'writer' nor 'calc' in it's name given.", false);
-// // }
-// }
-// catch (AssureException e)
-// {
-// // stopOffice();
-// // throw new AssureException(e.getMessage());
-// }
-//
-// // ------------------------------ Office shutdown ------------------------------
-// // stopOffice();
-// }
-// -----------------------------------------------------------------------------
- public ArrayList load(String _sDocument /*, int _nType*/)
+ public ArrayList<String> load(String _sDocument /*, int _nType*/)
{
// We need to copy the database file to a place where we have write access, NEVER use the docpool for this
String sOutputPath = m_aParameterHelper.getOutputPath();
@@ -295,9 +211,9 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
assure("There exists no file: " + sDestinationFile, FileHelper.exists(sDestinationFile));
String sFileURL = URLHelper.getFileURLFromSystemPath(sDestinationFile);
- GlobalLogWriter.get().println("File URL: " + sFileURL);
+ GlobalLogWriter.println("File URL: " + sFileURL);
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
// FYI: it is not allowed to open the document read only
// PropertyValue aReadOnly = new PropertyValue(); // always overwrite already exist files
@@ -307,7 +223,7 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
XComponent xDocComponent = loadComponent(sFileURL, getXDesktop(), aPropertyList);
- GlobalLogWriter.get().println("Load done");
+ GlobalLogWriter.println("Load done");
// context = createUnoService("com.sun.star.sdb.DatabaseContext")
// oDataBase = context.getByName("hh")
// oDBDoc = oDataBase.DatabaseDocument
@@ -318,35 +234,35 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
// reportContainer = oDBDoc.getReportDocuments()
// report = reportContainer.loadComponentFromURL("Report40","",0,args)
- ArrayList aList = null;
+ ArrayList<String> aList = null;
try
{
// XInterface x = (XInterface)getMultiServiceFactory().createInstance("com.sun.star.sdb.DatabaseContext");
// assure("can't create instance of com.sun.star.sdb.DatabaseContext", x != null);
-// GlobalLogWriter.get().println("createInstance com.sun.star.sdb.DatabaseContext done");
+// GlobalLogWriter.println("createInstance com.sun.star.sdb.DatabaseContext done");
// XNameAccess xNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, x);
// showElements(xNameAccess);
// Object aObj = xNameAccess.getByName(sFileURL);
-// GlobalLogWriter.get().println("1");
+// GlobalLogWriter.println("1");
// PropertySetHelper aHelper = new PropertySetHelper(aObj);
// XDocumentDataSource xDataSource = (XDocumentDataSource)UnoRuntime.queryInterface(XDocumentDataSource.class, aObj);
// Object aDatabaseDocument = aHelper.getPropertyValueAsObject("DatabaseDocument");
// XOfficeDatabaseDocument xOfficeDBDoc = xDataSource.getDatabaseDocument();
- XOfficeDatabaseDocument xOfficeDBDoc = (XOfficeDatabaseDocument)UnoRuntime.queryInterface(XOfficeDatabaseDocument.class, xDocComponent);
+ XOfficeDatabaseDocument xOfficeDBDoc = UnoRuntime.queryInterface(XOfficeDatabaseDocument.class, xDocComponent);
// XOfficeDatabaseDocument xOfficeDBDoc = (XOfficeDatabaseDocument)UnoRuntime.queryInterface(XOfficeDatabaseDocument.class, xDataSource);
assure("can't access DatabaseDocument", xOfficeDBDoc != null);
-// GlobalLogWriter.get().println("2");
+// GlobalLogWriter.println("2");
- XModel xDBSource = (XModel)UnoRuntime.queryInterface(XModel.class, xOfficeDBDoc);
+ XModel xDBSource = UnoRuntime.queryInterface(XModel.class, xOfficeDBDoc);
Object aController = xDBSource.getCurrentController();
assure("Controller of xOfficeDatabaseDocument is empty!", aController != null);
-// GlobalLogWriter.get().println("3");
+// GlobalLogWriter.println("3");
- XDatabaseDocumentUI aDBDocUI = (XDatabaseDocumentUI)UnoRuntime.queryInterface(XDatabaseDocumentUI.class, aController);
+ XDatabaseDocumentUI aDBDocUI = UnoRuntime.queryInterface(XDatabaseDocumentUI.class, aController);
aDBDocUI.connect();
boolean isConnect = aDBDocUI.isConnected();
if (isConnect)
@@ -360,19 +276,19 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
// aHelper = new PropertySetHelper(aController);
- XReportDocumentsSupplier xSupplier = (XReportDocumentsSupplier)UnoRuntime.queryInterface(XReportDocumentsSupplier.class, xOfficeDBDoc);
+ XReportDocumentsSupplier xSupplier = UnoRuntime.queryInterface(XReportDocumentsSupplier.class, xOfficeDBDoc);
XNameAccess xNameAccess = xSupplier.getReportDocuments();
assure("xOfficeDatabaseDocument returns no Report Document", xNameAccess != null);
-// GlobalLogWriter.get().println("5");
+// GlobalLogWriter.println("5");
showElements(xNameAccess);
// Object aActiveConnectionObj = aHelper.getPropertyValueAsObject("ActiveConnection");
Object aActiveConnectionObj = aDBDocUI.getActiveConnection();
assure("ActiveConnection is empty", aActiveConnectionObj != null);
-// GlobalLogWriter.get().println("5");
+// GlobalLogWriter.println("5");
- ArrayList aPropertyList2 = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList2 = new ArrayList<PropertyValue>();
PropertyValue aActiveConnection = new PropertyValue();
aActiveConnection.Name = "ActiveConnection";
@@ -384,8 +300,8 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
}
catch(Exception/*com.sun.star.uno.Exception*/ e)
{
- GlobalLogWriter.get().println("ERROR: Exception caught");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: Exception caught");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
// String mTestDocumentPath = (String) param.get("TestDocumentPath");
@@ -413,7 +329,7 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
String sDBConnection = (String)m_aParameterHelper.getTestParameters().get( convwatch.PropertyName.DB_CONNECTION_STRING );
if (sDBConnection != null && sDBConnection.length() > 0)
{
- GlobalLogWriter.get().println("DBConnection: " + sDBConnection);
+ GlobalLogWriter.println("DBConnection: " + sDBConnection);
// TODO: DB
// DB.init(sDBConnection);
@@ -447,9 +363,9 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
}
}
- private ArrayList loadAndStoreReports(XNameAccess _xNameAccess, ArrayList _aPropertyList /*, int _nType*/ )
+ private ArrayList<String> loadAndStoreReports(XNameAccess _xNameAccess, ArrayList<PropertyValue> _aPropertyList /*, int _nType*/ )
{
- ArrayList aList = new ArrayList();
+ ArrayList<String> aList = new ArrayList<String>();
if (_xNameAccess != null)
{
String[] sElementNames = _xNameAccess.getElementNames();
@@ -473,7 +389,7 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
private String getFormatExtension(Object _xComponent /* int _nType*/ )
{
String sExtension;
- XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, _xComponent );
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface( XServiceInfo.class, _xComponent );
if ( xServiceInfo.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) )
{
// calc
@@ -567,7 +483,7 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
String sOutputURL = URLHelper.getFileURLFromSystemPath(sOutputPath);
- ArrayList aPropertyList = new ArrayList(); // set some properties for storeAsURL
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>(); // set some properties for storeAsURL
// PropertyValue aFileFormat = new PropertyValue();
// aFileFormat.Name = "FilterName";
@@ -580,19 +496,19 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
aPropertyList.add(aOverwrite);
// store the document in an other directory
- XStorable aStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, _xComponent);
+ XStorable aStorable = UnoRuntime.queryInterface( XStorable.class, _xComponent);
if (aStorable != null)
{
- GlobalLogWriter.get().println("store document as URL: '" + sOutputURL + "'");
+ GlobalLogWriter.println("store document as URL: '" + sOutputURL + "'");
try
{
aStorable.storeAsURL(sOutputURL, PropertyHelper.createPropertyValueArrayFormArrayList(aPropertyList));
}
catch (com.sun.star.io.IOException e)
{
- GlobalLogWriter.get().println("ERROR: Exception caught");
- GlobalLogWriter.get().println("Can't write document URL: '" + sOutputURL + "'");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: Exception caught");
+ GlobalLogWriter.println("Can't write document URL: '" + sOutputURL + "'");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
}
return sBackPathName;
@@ -601,26 +517,26 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
private XComponent loadComponent(String _sName, Object _xComponent, ArrayList _aPropertyList)
{
XComponent xDocComponent = null;
- XComponentLoader xComponentLoader = (XComponentLoader) UnoRuntime.queryInterface( XComponentLoader.class, _xComponent );
+ XComponentLoader xComponentLoader = UnoRuntime.queryInterface( XComponentLoader.class, _xComponent );
try
{
PropertyValue[] aLoadProperties = PropertyHelper.createPropertyValueArrayFormArrayList(_aPropertyList);
- GlobalLogWriter.get().println("Load component: '" + _sName + "'");
+ GlobalLogWriter.println("Load component: '" + _sName + "'");
xDocComponent = xComponentLoader.loadComponentFromURL(_sName, "_blank", FrameSearchFlag.ALL, aLoadProperties);
- GlobalLogWriter.get().println("Load component: '" + _sName + "' done");
+ GlobalLogWriter.println("Load component: '" + _sName + "' done");
}
catch (com.sun.star.io.IOException e)
{
- GlobalLogWriter.get().println("ERROR: Exception caught");
- GlobalLogWriter.get().println("Can't load document '" + _sName + "'");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: Exception caught");
+ GlobalLogWriter.println("Can't load document '" + _sName + "'");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
- GlobalLogWriter.get().println("ERROR: Exception caught");
- GlobalLogWriter.get().println("Illegal Arguments given to loadComponentFromURL.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: Exception caught");
+ GlobalLogWriter.println("Illegal Arguments given to loadComponentFromURL.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
return xDocComponent;
}
@@ -628,16 +544,16 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
private void closeComponent(XComponent _xDoc)
{
// Close the document
- XCloseable xCloseable = (XCloseable) UnoRuntime.queryInterface(XCloseable.class, _xDoc);
+ XCloseable xCloseable = UnoRuntime.queryInterface(XCloseable.class, _xDoc);
try
{
xCloseable.close(true);
}
catch (com.sun.star.util.CloseVetoException e)
{
- GlobalLogWriter.get().println("ERROR: CloseVetoException caught");
- GlobalLogWriter.get().println("CloseVetoException occured Can't close document.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: CloseVetoException caught");
+ GlobalLogWriter.println("CloseVetoException occured Can't close document.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
}
diff --git a/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java b/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java
index 06330a06d9ab..d918634f8d30 100644
--- a/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java
+++ b/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java
@@ -89,7 +89,7 @@ public class OpenOfficePostscriptCreator implements IOffice
m_aDocument = loadFromURL(m_aParameterHelper, sInputFileURL);
if (m_aDocument == null)
{
- GlobalLogWriter.get().println("loadDocumentFromURL() failed with document: " + sInputFileURL);
+ GlobalLogWriter.println("loadDocumentFromURL() failed with document: " + sInputFileURL);
throw new OfficeException("load(): failed with document" + sInputFileURL);
}
@@ -101,7 +101,8 @@ public class OpenOfficePostscriptCreator implements IOffice
if (m_aDocument != null)
{
String sDocumentName = FileHelper.appendPath(m_sOutputURL, m_sBasename);
- if (m_aParameterHelper.getReferenceType().toLowerCase().equals("ooo"))
+ if (m_aParameterHelper.getReferenceType().toLowerCase().equals("ooo") ||
+ m_aParameterHelper.getReferenceType().toLowerCase().equals("ps") )
{
String sPrintURL = sDocumentName + ".ps";
@@ -115,13 +116,13 @@ public class OpenOfficePostscriptCreator implements IOffice
storeAsPDF(m_aParameterHelper, m_aDocument, sPDFURL);
String sBasename = FileHelper.getBasename(sPDFURL);
- FileHelper.addBasenameToIndex(m_sOutputURL, sBasename, "OOo", "pdf-export", m_sDocumentName);
+ FileHelper.addBasenameToIndex(m_sOutputURL, sBasename, "pdf", "pdf-export", m_sDocumentName);
}
else
{
throw new OfficeException("unknown reference type");
}
- GlobalLogWriter.get().println("Close document.");
+ GlobalLogWriter.println("Close document.");
m_aDocument.dispose();
}
}
@@ -147,11 +148,11 @@ public class OpenOfficePostscriptCreator implements IOffice
try
{
sValue = AnyConverter.toString(_aValue.Value);
- GlobalLogWriter.get().println("Property " + sName + ":=" + sValue);
+ GlobalLogWriter.println("Property " + sName + ":=" + sValue);
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
- GlobalLogWriter.get().println("showProperty: can't convert a object to string.");
+ GlobalLogWriter.println("showProperty: can't convert a object to string. " + e.getMessage());
}
}
@@ -160,7 +161,7 @@ public class OpenOfficePostscriptCreator implements IOffice
*/
private String getDocumentType( XComponent _aDoc )
{
- XModel xModel = (XModel) UnoRuntime.queryInterface( XModel.class, _aDoc);
+ XModel xModel = UnoRuntime.queryInterface( XModel.class, _aDoc);
PropertyValue[] aArgs = xModel.getArgs();
for (int i=0;i<aArgs.length;i++)
{
@@ -180,7 +181,7 @@ public class OpenOfficePostscriptCreator implements IOffice
private void showDocumentType( XComponent _aDoc )
{
String sNameValue = getDocumentType(_aDoc);
- GlobalLogWriter.get().println(" Property: '" + sNameValue);
+ GlobalLogWriter.println(" Property: '" + sNameValue);
}
/**
* load a OpenOffice.org document from a given URL (_sInputURL)
@@ -196,15 +197,15 @@ public class OpenOfficePostscriptCreator implements IOffice
{
if (_aGTA.getMultiServiceFactory() == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory in GraphicalTestArgument not set.");
+ GlobalLogWriter.println("MultiServiceFactory in GraphicalTestArgument not set.");
return null;
}
Object oDsk = _aGTA.getMultiServiceFactory().createInstance("com.sun.star.frame.Desktop");
- XDesktop aDesktop = (XDesktop)UnoRuntime.queryInterface(XDesktop.class, oDsk);
+ XDesktop aDesktop = UnoRuntime.queryInterface(XDesktop.class, oDsk);
if (aDesktop != null)
{
- GlobalLogWriter.get().println("com.sun.star.frame.Desktop created.");
+ GlobalLogWriter.println("com.sun.star.frame.Desktop created.");
// String sInputURL = aCurrentParameter.sInputURL;
// String sOutputURL = aCurrentParameter.sOutputURL;
// String sPrintFileURL = aCurrentParameter.sPrintToFileURL;
@@ -214,7 +215,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// set here the loadComponentFromURL() properties
// at the moment only 'Hidden' is set, so no window is opened at work
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
// check which properties should set and count it.
// if (_aGTA.isHidden())
@@ -253,10 +254,10 @@ public class OpenOfficePostscriptCreator implements IOffice
aPropertyList.add(ReadOnly);
showProperty(ReadOnly);
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Load document");
- // GlobalLogWriter.get().flush();
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Load document");
+ // GlobalLogWriter.flush();
- XComponentLoader aCompLoader = (XComponentLoader) UnoRuntime.queryInterface( XComponentLoader.class, aDesktop);
+ XComponentLoader aCompLoader = UnoRuntime.queryInterface( XComponentLoader.class, aDesktop);
// XComponent aDoc = null;
@@ -265,30 +266,31 @@ public class OpenOfficePostscriptCreator implements IOffice
_aGTA.getPerformance().stopTime(PerformanceContainer.Load);
if (aDoc != null)
{
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Load document done.");
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Load document done.");
showDocumentType(aDoc);
_aGTA.setDocumentType(getDocumentType(aDoc));
+// TODO: TimeHelper.waitInSeconds(20, "Wait after load document. Maybe helps due to layouting problems.");
}
else
{
- GlobalLogWriter.get().println(" Load document failed.");
+ GlobalLogWriter.println(" Load document failed.");
if (_aGTA.getImportFilterName() != null && _aGTA.getImportFilterName().length() > 0)
{
- GlobalLogWriter.get().println(" Please check FilterName := '" + _aGTA.getImportFilterName() + "'");
+ GlobalLogWriter.println(" Please check FilterName := '" + _aGTA.getImportFilterName() + "'");
}
- GlobalLogWriter.get().println("");
+ GlobalLogWriter.println("");
}
}
else
{
- GlobalLogWriter.get().println("com.sun.star.frame.Desktop failed.");
+ GlobalLogWriter.println("com.sun.star.frame.Desktop failed.");
}
}
catch ( com.sun.star.uno.Exception e )
{
// Some exception occures.FAILED
- GlobalLogWriter.get().println("UNO Exception caught.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("UNO Exception caught.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
e.printStackTrace();
aDoc = null;
}
@@ -298,11 +300,11 @@ public class OpenOfficePostscriptCreator implements IOffice
private boolean exportToPDF(XComponent _xComponent, String _sDestinationName)
{
XServiceInfo xServiceInfo =
- (XServiceInfo) UnoRuntime.queryInterface(
+ UnoRuntime.queryInterface(
XServiceInfo.class, _xComponent
);
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
PropertyValue aFiltername = new PropertyValue();
aFiltername.Name = "FilterName";
aFiltername.Value = getFilterName_forPDF(xServiceInfo);
@@ -310,18 +312,19 @@ public class OpenOfficePostscriptCreator implements IOffice
showProperty(aFiltername);
boolean bWorked = true;
+// TODO: TimeHelper.waitInSeconds(20, "Wait before storeToURL. Maybe helps due to layouting problems.");
try
{
XStorable store =
- (XStorable) UnoRuntime.queryInterface(
+ UnoRuntime.queryInterface(
XStorable.class, _xComponent
);
store.storeToURL(_sDestinationName, PropertyHelper.createPropertyValueArrayFormArrayList(aPropertyList));
}
catch (com.sun.star.io.IOException e)
{
- GlobalLogWriter.get().println("IO Exception caught.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("IO Exception caught.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
bWorked = false;
}
@@ -383,13 +386,13 @@ public class OpenOfficePostscriptCreator implements IOffice
//
// if (aDoc == null)
// {
-// GlobalLogWriter.get().println("Can't load document.");
+// GlobalLogWriter.println("Can't load document.");
// return bBack;
// }
// bBack = storeAsPDF(_aGTA, aDoc, _sOutputURL);
// FileHelper.createInfoFile(_sOutputURL, _aGTA, "as pdf");
//
-// GlobalLogWriter.get().println("Close document.");
+// GlobalLogWriter.println("Close document.");
// aDoc.dispose();
// return bBack;
// }
@@ -406,7 +409,7 @@ public class OpenOfficePostscriptCreator implements IOffice
if (!bBack)
{
- GlobalLogWriter.get().println("Can't store document as PDF.");
+ GlobalLogWriter.println("Can't store document as PDF.");
// bBack = false;
throw new OfficeException("Can't store document as PDF");
}
@@ -444,17 +447,17 @@ public class OpenOfficePostscriptCreator implements IOffice
// {
// // don't store document
// // input and output are equal OR
-// GlobalLogWriter.get().println("Warning: Inputpath and Outputpath are equal. Document will not stored again.");
+// GlobalLogWriter.println("Warning: Inputpath and Outputpath are equal. Document will not stored again.");
// disallowStore();
// }
// bBack = impl_printToFileWithOOo(_aGTA, aDoc, _sOutputURL, _sPrintFileURL);
//
-// GlobalLogWriter.get().println("Close document.");
+// GlobalLogWriter.println("Close document.");
// aDoc.dispose();
// }
// else
// {
-// GlobalLogWriter.get().println("loadDocumentFromURL() failed with document: " + _sInputURL);
+// GlobalLogWriter.println("loadDocumentFromURL() failed with document: " + _sInputURL);
// }
// return bBack;
// }
@@ -471,7 +474,7 @@ public class OpenOfficePostscriptCreator implements IOffice
boolean bFailed = true; // always be a pessimist,
if (_aDoc == null)
{
- GlobalLogWriter.get().println("No document is given.");
+ GlobalLogWriter.println("No document is given.");
return bBack;
}
@@ -482,27 +485,27 @@ public class OpenOfficePostscriptCreator implements IOffice
if (isStoreAllowed())
{
// store the document in an other directory
- XStorable aStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, _aDoc);
+ XStorable aStorable = UnoRuntime.queryInterface( XStorable.class, _aDoc);
if (aStorable != null)
{
PropertyValue [] szEmptyArgs = new PropertyValue [0];
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Store document.");
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Store document.");
_aGTA.getPerformance().startTime(PerformanceContainer.Store);
aStorable.storeAsURL(_sOutputURL, szEmptyArgs);
_aGTA.getPerformance().stopTime(PerformanceContainer.Store);
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Store document done.");
- TimeHelper.waitInSeconds(1, "After store as URL to:" + _sOutputURL);
- GlobalLogWriter.get().println("Reload stored file test.");
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Store document done.");
+ // TimeHelper.waitInSeconds(1, "After store as URL to:" + _sOutputURL);
+ GlobalLogWriter.println("Reload stored file test.");
XComponent aDoc = loadFromURL(_aGTA, _sOutputURL);
if (aDoc == null)
{
- GlobalLogWriter.get().println("Reload stored file test failed, can't reload file: " + _sOutputURL);
+ GlobalLogWriter.println("Reload stored file test failed, can't reload file: " + _sOutputURL);
}
else
{
- XCloseable xClose = (XCloseable)UnoRuntime.queryInterface(XCloseable.class, aDoc);
+ XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, aDoc);
if (xClose != null)
{
xClose.close(true);
@@ -511,7 +514,7 @@ public class OpenOfficePostscriptCreator implements IOffice
{
aDoc.dispose();
}
- TimeHelper.waitInSeconds(1, "after close temp document");
+ // TimeHelper.waitInSeconds(1, "after close temp document");
}
}
}
@@ -528,8 +531,8 @@ public class OpenOfficePostscriptCreator implements IOffice
catch ( com.sun.star.uno.Exception e )
{
// Some exception occures.FAILED
- GlobalLogWriter.get().println("UNO Exception caught.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("UNO Exception caught.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
e.printStackTrace();
bBack = false;
@@ -541,8 +544,8 @@ public class OpenOfficePostscriptCreator implements IOffice
// System.out.println("Document loaded.");
// Change Pagesettings to DIN A4
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Print document.");
- XPrintable aPrintable = (XPrintable) UnoRuntime.queryInterface( XPrintable.class, _aDoc);
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Print document.");
+ XPrintable aPrintable = UnoRuntime.queryInterface( XPrintable.class, _aDoc);
if (aPrintable != null)
{
// System.out.println(" Set PaperFormat to DIN A4");
@@ -566,14 +569,14 @@ public class OpenOfficePostscriptCreator implements IOffice
{
if (_aGTA.getPrinterName() != null)
{
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
// PropertyValue [] aPrintProps = new PropertyValue[1];
PropertyValue Arg = new PropertyValue();
Arg.Name = "Name";
Arg.Value = _aGTA.getPrinterName();
aPropertyList.add(Arg);
showProperty(Arg);
- // GlobalLogWriter.get().println("Printername is not null, so set to " + _aGTA.getPrinterName());
+ // GlobalLogWriter.println("Printername is not null, so set to " + _aGTA.getPrinterName());
aPrintable.setPrinter(PropertyHelper.createPropertyValueArrayFormArrayList(aPropertyList));
}
}
@@ -590,21 +593,21 @@ public class OpenOfficePostscriptCreator implements IOffice
// int nPropsCount = 0;
// If we are a SpreadSheet (calc), we need to set PrintAllSheets property to 'true'
- XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, _aDoc );
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface( XServiceInfo.class, _aDoc );
if ( xServiceInfo.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) )
{
XMultiServiceFactory xMSF = _aGTA.getMultiServiceFactory();
Object aSettings = xMSF.createInstance( "com.sun.star.sheet.GlobalSheetSettings" );
if (aSettings != null)
{
- XPropertySet xPropSet = (XPropertySet) UnoRuntime.queryInterface( XPropertySet.class, aSettings );
+ XPropertySet xPropSet = UnoRuntime.queryInterface( XPropertySet.class, aSettings );
xPropSet.setPropertyValue( "PrintAllSheets", new Boolean( true ) );
- GlobalLogWriter.get().println("PrintAllSheets := true");
+ GlobalLogWriter.println("PrintAllSheets := true");
}
}
- ArrayList aPrintProps = new ArrayList();
- // GlobalLogWriter.get().println("Property FileName:=" + _sPrintFileURL);
+ ArrayList<PropertyValue> aPrintProps = new ArrayList<PropertyValue>();
+ // GlobalLogWriter.println("Property FileName:=" + _sPrintFileURL);
// PropertyValue [] aPrintProps = new PropertyValue[nProperties];
PropertyValue Arg = new PropertyValue();
@@ -639,13 +642,13 @@ public class OpenOfficePostscriptCreator implements IOffice
showProperty(Arg);
}
- // GlobalLogWriter.get().println("Start printing.");
+ // GlobalLogWriter.println("Start printing.");
_aGTA.getPerformance().startTime(PerformanceContainer.Print);
aPrintable.print(PropertyHelper.createPropertyValueArrayFormArrayList(aPrintProps));
TimeHelper.waitInSeconds(1, "Start waiting for print ready.");
- GlobalLogWriter.get().println("Wait until document is printed.");
+ GlobalLogWriter.println("Wait until document is printed.");
boolean isBusy = true;
int nPrintCount = 0;
while (isBusy)
@@ -663,21 +666,22 @@ public class OpenOfficePostscriptCreator implements IOffice
if (nPrintCount > 3600)
{
// we will never wait >1h until print is ready!
- GlobalLogWriter.get().println("ERROR: Cancel print due to too long wait.");
+ GlobalLogWriter.println("ERROR: Cancel print due to too long wait.");
throw new com.sun.star.uno.Exception("Convwatch exception, wait too long for printing.");
}
}
- // TimeHelper.waitInSeconds(40, "Start waiting after print ready.");
+// TODO:
+// TimeHelper.waitInSeconds(40, "Start waiting after print ready.");
_aGTA.getPerformance().stopTime(PerformanceContainer.Print);
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Print document done.");
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Print document done.");
// Create a .info file near the printed '.ps' or '.prn' file.
FileHelper.createInfoFile(_sPrintFileURL, _aGTA);
}
else
{
- GlobalLogWriter.get().println("Can't get XPrintable interface.");
+ GlobalLogWriter.println("Can't get XPrintable interface.");
}
bFailed = false;
bBack = true;
@@ -685,8 +689,8 @@ public class OpenOfficePostscriptCreator implements IOffice
catch ( com.sun.star.uno.Exception e )
{
// Some exception occures.FAILED
- GlobalLogWriter.get().println("UNO Exception caught.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("UNO Exception caught.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
e.printStackTrace();
bBack = false;
@@ -694,17 +698,20 @@ public class OpenOfficePostscriptCreator implements IOffice
if (bFailed == true)
{
- GlobalLogWriter.get().println("convwatch.OfficePrint: FAILED");
+ GlobalLogWriter.println("convwatch.OfficePrint: FAILED");
}
else
{
- GlobalLogWriter.get().println("convwatch.OfficePrint: OK");
+ GlobalLogWriter.println("convwatch.OfficePrint: OK");
}
return bBack;
}
/**
+ * @param _aGTA
+ * @param _sAbsoluteOutputPath
+ * @param _sAbsoluteInputFile
* @return true, if the reference (*.prrn file) based on given output path and given input path exist.
* If OVERWRITE_REFERENCE is set, always return false.
*/
@@ -744,7 +751,7 @@ public class OpenOfficePostscriptCreator implements IOffice
String sAbsolutePrintFilename = FileHelper.appendPath(sOutputPath, sPrintFilename + ".prn");
if (FileHelper.exists(sAbsolutePrintFilename) && _aGTA.getOverwrite() == false)
{
- GlobalLogWriter.get().println("Reference already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
+ GlobalLogWriter.println("Reference already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
return true;
}
return false;
@@ -797,7 +804,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// String sAbsolutePrintFilename = sOutputPath + fs + sPrintFilename + ".prn";
// if (FileHelper.exists(sAbsolutePrintFilename) && _aGTA.getOverwrite() == false)
// {
-// GlobalLogWriter.get().println("Reference already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
+// GlobalLogWriter.println("Reference already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
// return true;
// }
//
@@ -816,7 +823,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// }
// else
// {
-// GlobalLogWriter.get().println("OfficePrint.buildreference(): Unknown print type.");
+// GlobalLogWriter.println("OfficePrint.buildreference(): Unknown print type.");
// return false;
// }
// return printToFile(_aGTA, sInputFileURL, sOutputFileURL, sPrintFileURL);
@@ -845,14 +852,14 @@ public class OpenOfficePostscriptCreator implements IOffice
// }
// else if (_aGTA.getReferenceType().toLowerCase().equals("pdf"))
// {
-// GlobalLogWriter.get().println("USE PDF AS EXPORT FORMAT.");
+// GlobalLogWriter.println("USE PDF AS EXPORT FORMAT.");
// bBack = storeAsPDF(_aGTA, _sInputFileURL, _sPrintFileURL);
// }
// else if (_aGTA.getReferenceType().toLowerCase().equals("msoffice"))
// {
// if (MSOfficePostscriptCreator.isMSOfficeDocumentFormat(_sInputFileURL))
// {
-// GlobalLogWriter.get().println("USE MSOFFICE AS EXPORT FORMAT.");
+// GlobalLogWriter.println("USE MSOFFICE AS EXPORT FORMAT.");
// MSOfficePostscriptCreator a = new MSOfficePostscriptCreator();
// try
// {
@@ -862,19 +869,19 @@ public class OpenOfficePostscriptCreator implements IOffice
// catch(OfficeException e)
// {
// e.printStackTrace();
-// GlobalLogWriter.get().println(e.getMessage());
+// GlobalLogWriter.println(e.getMessage());
// throw new OfficeException("Exception caught. Problem with MSOffice printer methods.");
// }
// catch(java.io.IOException e)
// {
-// GlobalLogWriter.get().println(e.getMessage());
+// GlobalLogWriter.println(e.getMessage());
// throw new OfficeException("IOException caught. Problem with MSOffice printer methods.");
// }
// bBack = true;
// }
// else
// {
-// GlobalLogWriter.get().println("This document type is not recognized as MSOffice format, as default fallback StarOffice/OpenOffice.org instead is used.");
+// GlobalLogWriter.println("This document type is not recognized as MSOffice format, as default fallback StarOffice/OpenOffice.org instead is used.");
// bBack = printToFileWithOOo(_aGTA, _sInputFileURL, _sOutputFileURL, _sPrintFileURL);
// }
// }
@@ -898,24 +905,24 @@ public class OpenOfficePostscriptCreator implements IOffice
if (_xMSF == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory not set.");
+ GlobalLogWriter.println("MultiServiceFactory not set.");
return;
}
XTypeDetection aTypeDetection = null;
try
{
Object oObj = _xMSF.createInstance("com.sun.star.document.TypeDetection");
- aTypeDetection = (XTypeDetection)UnoRuntime.queryInterface(XTypeDetection.class, oObj);
+ aTypeDetection = UnoRuntime.queryInterface(XTypeDetection.class, oObj);
}
catch(com.sun.star.uno.Exception e)
{
- GlobalLogWriter.get().println("Can't get com.sun.star.document.TypeDetection.");
+ GlobalLogWriter.println("Can't get com.sun.star.document.TypeDetection.");
return;
}
if (aTypeDetection != null)
{
String sType = aTypeDetection.queryTypeByURL(_sInputURL);
- GlobalLogWriter.get().println("Type is: " + sType);
+ GlobalLogWriter.println("Type is: " + sType);
}
}
@@ -931,7 +938,7 @@ public class OpenOfficePostscriptCreator implements IOffice
if (_xMSF == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory not set.");
+ GlobalLogWriter.println("MultiServiceFactory not set.");
return null;
}
// XFilterFactory aFilterFactory = null;
@@ -942,12 +949,12 @@ public class OpenOfficePostscriptCreator implements IOffice
}
catch(com.sun.star.uno.Exception e)
{
- GlobalLogWriter.get().println("Can't get com.sun.star.document.FilterFactory.");
+ GlobalLogWriter.println("Can't get com.sun.star.document.FilterFactory.");
return null;
}
if (aObj != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aObj);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aObj);
if (aNameAccess != null)
{
@@ -965,7 +972,7 @@ public class OpenOfficePostscriptCreator implements IOffice
if (! aNameAccess.hasByName(_sFilterName))
{
- GlobalLogWriter.get().println("FilterFactory.hasByName() says there exist no '" + _sFilterName + "'" );
+ GlobalLogWriter.println("FilterFactory.hasByName() says there exist no '" + _sFilterName + "'" );
return null;
}
@@ -993,17 +1000,17 @@ public class OpenOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("There are no elements for FilterName '" + _sFilterName + "'");
+ GlobalLogWriter.println("There are no elements for FilterName '" + _sFilterName + "'");
return null;
}
}
catch (com.sun.star.container.NoSuchElementException e)
{
- GlobalLogWriter.get().println("NoSuchElementException caught. " + e.getMessage());
+ GlobalLogWriter.println("NoSuchElementException caught. " + e.getMessage());
}
catch (com.sun.star.lang.WrappedTargetException e)
{
- GlobalLogWriter.get().println("WrappedTargetException caught. " + e.getMessage());
+ GlobalLogWriter.println("WrappedTargetException caught. " + e.getMessage());
}
}
}
@@ -1022,7 +1029,7 @@ public class OpenOfficePostscriptCreator implements IOffice
if (_xMSF == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory not set.");
+ GlobalLogWriter.println("MultiServiceFactory not set.");
return null;
}
// XFilterFactory aFilterFactory = null;
@@ -1033,17 +1040,17 @@ public class OpenOfficePostscriptCreator implements IOffice
}
catch(com.sun.star.uno.Exception e)
{
- GlobalLogWriter.get().println("Can't get com.sun.star.document.FilterFactory.");
+ GlobalLogWriter.println("Can't get com.sun.star.document.FilterFactory.");
return null;
}
if (aObj != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aObj);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aObj);
if (aNameAccess != null)
{
if (! aNameAccess.hasByName(_sFilterName))
{
- GlobalLogWriter.get().println("FilterFactory.hasByName() says there exist no '" + _sFilterName + "'" );
+ GlobalLogWriter.println("FilterFactory.hasByName() says there exist no '" + _sFilterName + "'" );
return null;
}
@@ -1071,17 +1078,17 @@ public class OpenOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("There are no elements for FilterName '" + _sFilterName + "'");
+ GlobalLogWriter.println("There are no elements for FilterName '" + _sFilterName + "'");
return null;
}
}
catch (com.sun.star.container.NoSuchElementException e)
{
- GlobalLogWriter.get().println("NoSuchElementException caught. " + e.getMessage());
+ GlobalLogWriter.println("NoSuchElementException caught. " + e.getMessage());
}
catch (com.sun.star.lang.WrappedTargetException e)
{
- GlobalLogWriter.get().println("WrappedTargetException caught. " + e.getMessage());
+ GlobalLogWriter.println("WrappedTargetException caught. " + e.getMessage());
}
}
}
@@ -1099,23 +1106,23 @@ public class OpenOfficePostscriptCreator implements IOffice
if (_xMSF == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory not set.");
+ GlobalLogWriter.println("MultiServiceFactory not set.");
return null;
}
XTypeDetection aTypeDetection = null;
try
{
Object oObj = _xMSF.createInstance("com.sun.star.document.TypeDetection");
- aTypeDetection = (XTypeDetection)UnoRuntime.queryInterface(XTypeDetection.class, oObj);
+ aTypeDetection = UnoRuntime.queryInterface(XTypeDetection.class, oObj);
}
catch(com.sun.star.uno.Exception e)
{
- GlobalLogWriter.get().println("Can't get com.sun.star.document.TypeDetection.");
+ GlobalLogWriter.println("Can't get com.sun.star.document.TypeDetection.");
return null;
}
if (aTypeDetection != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aTypeDetection);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aTypeDetection);
if (aNameAccess != null)
{
@@ -1128,7 +1135,7 @@ public class OpenOfficePostscriptCreator implements IOffice
if (! aNameAccess.hasByName(_sInternalFilterName))
{
- GlobalLogWriter.get().println("TypeDetection.hasByName() says there exist no '" + _sInternalFilterName + "'" );
+ GlobalLogWriter.println("TypeDetection.hasByName() says there exist no '" + _sInternalFilterName + "'" );
return null;
}
@@ -1148,15 +1155,15 @@ public class OpenOfficePostscriptCreator implements IOffice
if (aPropertyValue.Name.equals("Extensions"))
{
aExtensions = (String[])aPropertyValue.Value;
- GlobalLogWriter.get().println(" Possible extensions are: " + String.valueOf(aExtensions.length));
+ GlobalLogWriter.println(" Possible extensions are: " + String.valueOf(aExtensions.length));
if (aExtensions.length > 0)
{
for (int j=0;j<aExtensions.length;j++)
{
- GlobalLogWriter.get().println(" " + aExtensions[j]);
+ GlobalLogWriter.println(" " + aExtensions[j]);
}
sExtension = aExtensions[0];
- GlobalLogWriter.get().println("");
+ GlobalLogWriter.println("");
}
}
}
@@ -1164,17 +1171,17 @@ public class OpenOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("There are no elements for FilterName '" + _sInternalFilterName + "'");
+ GlobalLogWriter.println("There are no elements for FilterName '" + _sInternalFilterName + "'");
return null;
}
}
catch (com.sun.star.container.NoSuchElementException e)
{
- GlobalLogWriter.get().println("NoSuchElementException caught. " + e.getMessage());
+ GlobalLogWriter.println("NoSuchElementException caught. " + e.getMessage());
}
catch (com.sun.star.lang.WrappedTargetException e)
{
- GlobalLogWriter.get().println("WrappedTargetException caught. " + e.getMessage());
+ GlobalLogWriter.println("WrappedTargetException caught. " + e.getMessage());
}
}
}
@@ -1187,7 +1194,7 @@ public class OpenOfficePostscriptCreator implements IOffice
XMultiServiceFactory xMSF = _aGTA.getMultiServiceFactory();
if (xMSF == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory in GraphicalTestArgument not set.");
+ GlobalLogWriter.println("MultiServiceFactory in GraphicalTestArgument not set.");
return;
}
@@ -1196,33 +1203,33 @@ public class OpenOfficePostscriptCreator implements IOffice
XComponent aDoc = loadFromURL( _aGTA, sInputURL);
if (aDoc == null)
{
- GlobalLogWriter.get().println("Can't load document '"+ sInputURL + "'");
+ GlobalLogWriter.println("Can't load document '"+ sInputURL + "'");
return;
}
if (_sOutputPath == null)
{
- GlobalLogWriter.get().println("Outputpath not set.");
+ GlobalLogWriter.println("Outputpath not set.");
return;
}
if (! isStoreAllowed())
{
- GlobalLogWriter.get().println("It's not allowed to store, check Input/Output path.");
+ GlobalLogWriter.println("It's not allowed to store, check Input/Output path.");
return;
}
// TODO: Do we need to wait?
// TimeHelper.waitInSeconds(1, "wait after loadFromURL.");
- XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, aDoc );
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface( XServiceInfo.class, aDoc );
// String sFilter = getFilterName_forExcel(xServiceInfo);
// System.out.println("Filter is " + sFilter);
// store the document in an other directory
- XStorable xStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, aDoc);
+ XStorable xStorable = UnoRuntime.queryInterface( XStorable.class, aDoc);
if (xStorable == null)
{
- GlobalLogWriter.get().println("com.sun.star.frame.XStorable is null");
+ GlobalLogWriter.println("com.sun.star.frame.XStorable is null");
return;
}
@@ -1238,7 +1245,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// initialize PropertyArray
// PropertyValue [] aStoreProps = new PropertyValue[ nPropertyCount ];
// int nPropertyIndex = 0;
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
String sExtension = "";
@@ -1247,22 +1254,22 @@ public class OpenOfficePostscriptCreator implements IOffice
String sInternalFilterName = getInternalFilterName(sFilterName, xMSF);
String sServiceName = getServiceNameFromFilterName(sFilterName, xMSF);
- GlobalLogWriter.get().println("Filter detection:");
+ GlobalLogWriter.println("Filter detection:");
// check if service name from file filter is the same as from the loaded document
boolean bServiceFailed = false;
if (sServiceName == null || sInternalFilterName == null)
{
- GlobalLogWriter.get().println("Given FilterName '" + sFilterName + "' seems to be unknown.");
+ GlobalLogWriter.println("Given FilterName '" + sFilterName + "' seems to be unknown.");
bServiceFailed = true;
}
if (! xServiceInfo.supportsService(sServiceName))
{
- GlobalLogWriter.get().println("Service from FilterName '" + sServiceName + "' is not supported by loaded document.");
+ GlobalLogWriter.println("Service from FilterName '" + sServiceName + "' is not supported by loaded document.");
bServiceFailed = true;
}
if (bServiceFailed == true)
{
- GlobalLogWriter.get().println("Please check '" + PropertyName.DOC_CONVERTER_EXPORT_FILTER_NAME + "' in the property file.");
+ GlobalLogWriter.println("Please check '" + PropertyName.DOC_CONVERTER_EXPORT_FILTER_NAME + "' in the property file.");
return;
}
@@ -1273,7 +1280,7 @@ public class OpenOfficePostscriptCreator implements IOffice
sExtension = getFileExtension(sInternalFilterName, xMSF);
if (sExtension == null)
{
- GlobalLogWriter.get().println("Can't found an extension for filtername, take it from the source.");
+ GlobalLogWriter.println("Can't found an extension for filtername, take it from the source.");
}
}
@@ -1283,7 +1290,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// aStoreProps[nPropertyIndex ++] = Arg;
aPropertyList.add(Arg);
showProperty(Arg);
- GlobalLogWriter.get().println("FilterName is set to: " + sFilterName);
+ GlobalLogWriter.println("FilterName is set to: " + sFilterName);
}
String sOutputURL = "";
@@ -1311,38 +1318,41 @@ public class OpenOfficePostscriptCreator implements IOffice
if (FileHelper.exists(sOutputFile) && _aGTA.getOverwrite() == false)
{
- GlobalLogWriter.get().println("File already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
+ GlobalLogWriter.println("File already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
return;
}
sOutputURL = URLHelper.getFileURLFromSystemPath(sOutputFile);
- GlobalLogWriter.get().println("Store document as '" + sOutputURL + "'");
+ GlobalLogWriter.println("Store document as '" + sOutputURL + "'");
xStorable.storeAsURL(sOutputURL, PropertyHelper.createPropertyValueArrayFormArrayList(aPropertyList));
- GlobalLogWriter.get().println("Document stored.");
+ GlobalLogWriter.println("Document stored.");
}
catch (com.sun.star.io.IOException e)
{
- GlobalLogWriter.get().println("Can't store document '" + sOutputURL + "'. Message is :'" + e.getMessage() + "'");
+ GlobalLogWriter.println("Can't store document '" + sOutputURL + "'. Message is :'" + e.getMessage() + "'");
}
// TODO: Do we need to wait?
// TimeHelper.waitInSeconds(1, "unknown in OfficePrint.convertDocument()");
}
-
- private boolean shouldOfficeStart()
- {
- String sNoOffice = (String)m_aParameterHelper.getTestParameters().get( "NoOffice" );
- if (sNoOffice != null)
- {
- if (sNoOffice.toLowerCase().startsWith("t") || sNoOffice.toLowerCase().startsWith("y"))
- {
- return false;
- }
- }
- return true;
- }
+ /**
+ *
+ * @return false, if 'NoOffice=yes' is given
+ */
+// private boolean shouldOfficeStart()
+// {
+// String sNoOffice = (String)m_aParameterHelper.getTestParameters().get( "NoOffice" );
+// if (sNoOffice != null)
+// {
+// if (sNoOffice.toLowerCase().startsWith("t") || sNoOffice.toLowerCase().startsWith("y"))
+// {
+// return false;
+// }
+// }
+// return true;
+// }
OfficeProvider m_aProvider = null;
private void startOffice()
@@ -1370,7 +1380,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// Watcher Object is need in log object to give a simple way to say if a running office is alive.
// As long as a log comes, it pings the Watcher and says the office is alive, if not an
// internal counter increase and at a given point (300 seconds) the office is killed.
- GlobalLogWriter.get().println("Set office watcher");
+ GlobalLogWriter.println("Set office watcher");
if (GlobalLogWriter.get().getWatcher() == null)
{
OfficeWatcher aWatcher = (OfficeWatcher)m_aParameterHelper.getTestParameters().get("Watcher");
@@ -1383,7 +1393,11 @@ public class OpenOfficePostscriptCreator implements IOffice
// Office shutdown
if (m_aProvider != null)
{
- m_aProvider.closeExistingOffice(m_aParameterHelper.getTestParameters(), true);
+ String sAppExecCmd = (String)m_aParameterHelper.getTestParameters().get("AppExecutionCommand");
+ if (sAppExecCmd != null && sAppExecCmd.length() > 0)
+ {
+ m_aProvider.closeExistingOffice(m_aParameterHelper.getTestParameters(), true);
+ }
// if (OSHelper.isWindows())
// {
// aSemaphore.V(aSemaphore.getSemaphoreFile());
diff --git a/qadevOOo/runner/graphical/ParameterHelper.java b/qadevOOo/runner/graphical/ParameterHelper.java
index e3545a56e73b..598ee6c53007 100644
--- a/qadevOOo/runner/graphical/ParameterHelper.java
+++ b/qadevOOo/runner/graphical/ParameterHelper.java
@@ -193,7 +193,7 @@ public class ParameterHelper
String sReferenceType = (String)getTestParameters().get( PropertyName.DOC_COMPARATOR_REFERENCE_TYPE );
if (sReferenceType == null || sReferenceType.length() == 0)
{
- m_sReferenceType = "OOo";
+ m_sReferenceType = "ps";
}
else
{
@@ -241,6 +241,7 @@ public class ParameterHelper
/**
* Helper function to get the buildid of the current used OpenOffice.org
* out of the AppExecutionCommand the build ID
+ * @return
*/
public String getBuildID()
{
@@ -265,11 +266,12 @@ public class ParameterHelper
// check if MultiServiceFactory is given
if (getReferenceType().toLowerCase().equals("pdf") ||
+ getReferenceType().toLowerCase().equals("ps") ||
getReferenceType().toLowerCase().equals("ooo"))
{
if (xMSF == null)
{
- GlobalLogWriter.get().println("ERROR! MultiServiceFactory not given.");
+ GlobalLogWriter.println("ERROR! MultiServiceFactory not given.");
}
}
return xMSF;
@@ -417,5 +419,15 @@ public class ParameterHelper
return m_sHTMLPrefix;
}
+ public boolean createSmallPictures()
+ {
+ // boolean bCreateSmallPictures = true;
+ boolean bNoSmallPictures = m_aCurrentParams.getBool( PropertyName.NO_SMALL_PICTURES);
+ if (bNoSmallPictures == true)
+ {
+ return false;
+ }
+ return true;
+ }
}
diff --git a/qadevOOo/runner/graphical/PerformanceContainer.java b/qadevOOo/runner/graphical/PerformanceContainer.java
index c31d1efb79db..ab3b292926e5 100644
--- a/qadevOOo/runner/graphical/PerformanceContainer.java
+++ b/qadevOOo/runner/graphical/PerformanceContainer.java
@@ -59,7 +59,7 @@ public class PerformanceContainer /* extends *//* implements */ {
{
if (_nCurrentTimer == 0)
{
- GlobalLogWriter.get().println("Forgotten to initialise a start timer.");
+ GlobalLogWriter.println("Forgotten to initialise a start timer.");
return 0;
}
long nMeanTime = System.currentTimeMillis();
@@ -160,7 +160,7 @@ public class PerformanceContainer /* extends *//* implements */ {
}
catch (NumberFormatException e)
{
- GlobalLogWriter.get().println("Can't convert string to double " + _sStr);
+ GlobalLogWriter.println("Can't convert string to double " + _sStr);
}
return nValue;
}
@@ -185,7 +185,7 @@ public class PerformanceContainer /* extends *//* implements */ {
File aFile = new File(sFilename);
if (! aFile.exists())
{
- GlobalLogWriter.get().println("couldn't find file " + sFilename);
+ GlobalLogWriter.println("couldn't find file " + sFilename);
return;
}
@@ -236,13 +236,13 @@ public class PerformanceContainer /* extends *//* implements */ {
}
catch (java.io.FileNotFoundException fne)
{
- GlobalLogWriter.get().println("couldn't open file " + sFilename);
- GlobalLogWriter.get().println("Message: " + fne.getMessage());
+ GlobalLogWriter.println("couldn't open file " + sFilename);
+ GlobalLogWriter.println("Message: " + fne.getMessage());
}
catch (java.io.IOException ie)
{
- GlobalLogWriter.get().println("Exception while reading file " + sFilename);
- GlobalLogWriter.get().println("Message: " + ie.getMessage());
+ GlobalLogWriter.println("Exception while reading file " + sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
}
try
{
@@ -250,8 +250,8 @@ public class PerformanceContainer /* extends *//* implements */ {
}
catch (java.io.IOException ie)
{
- GlobalLogWriter.get().println("Couldn't close file " + sFilename);
- GlobalLogWriter.get().println("Message: " + ie.getMessage());
+ GlobalLogWriter.println("Couldn't close file " + sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
}
}
diff --git a/qadevOOo/runner/graphical/PropertyName.java b/qadevOOo/runner/graphical/PropertyName.java
index 8ca2835e8086..729fd0c33c38 100644
--- a/qadevOOo/runner/graphical/PropertyName.java
+++ b/qadevOOo/runner/graphical/PropertyName.java
@@ -69,5 +69,5 @@ public interface PropertyName
// final public static String DB_CONNECTION_STRING = "DB_CONNECTION_STRING";
// final public static String CHECK_NEED_TOOLS = "CHECK_NEED_TOOLS";
// final public static String CREATE_DEFAULT = "CREATE_DEFAULT_REFERENCE";
-
+ final public static String NO_SMALL_PICTURES = "NoSmallPictures";
}
diff --git a/qadevOOo/runner/graphical/TimeHelper.java b/qadevOOo/runner/graphical/TimeHelper.java
index d0180d82e423..057f9cd19494 100644
--- a/qadevOOo/runner/graphical/TimeHelper.java
+++ b/qadevOOo/runner/graphical/TimeHelper.java
@@ -29,6 +29,8 @@
package graphical;
+import java.util.Calendar;
+
/**
*
* @author ll93751
@@ -42,9 +44,48 @@ public class TimeHelper
*/
static void waitInSeconds(int _nSeconds, String _sReason)
{
- GlobalLogWriter.get().println("Wait " + String.valueOf(_nSeconds) + " sec. Reason: " + _sReason);
+ GlobalLogWriter.println("Wait 0.25 * " + String.valueOf(_nSeconds) + " sec. Reason: " + _sReason);
try {
- java.lang.Thread.sleep(_nSeconds * 1000);
+ java.lang.Thread.sleep(_nSeconds * 250);
} catch (java.lang.InterruptedException e2) {}
}
+
+ private int m_nSeconds;
+ private int m_nMilliSeconds;
+ private long m_nRealMilliSeconds;
+
+ private boolean m_bIsStopped = false;
+
+ public TimeHelper()
+ {}
+
+ public void start()
+ {
+ m_bIsStopped = false;
+ Calendar cal = Calendar.getInstance();
+ m_nSeconds = cal.get(Calendar.SECOND);
+ m_nMilliSeconds = cal.get(Calendar.MILLISECOND);
+ }
+ public void stop()
+ {
+ Calendar cal = Calendar.getInstance();
+ m_bIsStopped = true;
+ int nSeconds = cal.get(Calendar.SECOND);
+ m_nSeconds = nSeconds - m_nSeconds;
+ if (m_nSeconds < 0)
+ {
+ // add a minute
+ m_nSeconds += 60;
+ }
+
+ int nMilliSeconds = cal.get(Calendar.MILLISECOND);
+ m_nMilliSeconds = nMilliSeconds - m_nMilliSeconds;
+ m_nRealMilliSeconds = m_nSeconds * 1000 + m_nMilliSeconds;
+ }
+
+ public String getTime()
+ {
+ return String.valueOf(m_nRealMilliSeconds);
+ }
+
}
diff --git a/qadevOOo/runner/graphical/Tolerance.java b/qadevOOo/runner/graphical/Tolerance.java
new file mode 100644
index 000000000000..90e853c9124c
--- /dev/null
+++ b/qadevOOo/runner/graphical/Tolerance.java
@@ -0,0 +1,23 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package graphical;
+
+/**
+ *
+ * @author ll93751
+ */
+public class Tolerance
+{
+ private int m_nTolerance;
+ public Tolerance(int _nAccept)
+ {
+ m_nTolerance = _nAccept;
+ }
+ public int getAccept()
+ {
+ return m_nTolerance;
+ }
+}
diff --git a/qadevOOo/runner/graphical/makefile.mk b/qadevOOo/runner/graphical/makefile.mk
index db1f84ca26ca..4e1b0e98cba1 100644
--- a/qadevOOo/runner/graphical/makefile.mk
+++ b/qadevOOo/runner/graphical/makefile.mk
@@ -64,7 +64,8 @@ PostscriptCreator.java \
PropertyName.java \
TimeHelper.java \
WrongEnvironmentException.java \
-WrongSuffixException.java
+WrongSuffixException.java \
+Tolerance.java
# GraphicalComparator.java
diff --git a/qadevOOo/runner/helper/OfficeProvider.java b/qadevOOo/runner/helper/OfficeProvider.java
index adeecbdeba1d..8589de47ea82 100644
--- a/qadevOOo/runner/helper/OfficeProvider.java
+++ b/qadevOOo/runner/helper/OfficeProvider.java
@@ -130,9 +130,7 @@ public class OfficeProvider implements AppProvider
try
{
- desk = (XDesktop) UnoRuntime.queryInterface(XDesktop.class,
- msf.createInstance(
- "com.sun.star.frame.Desktop"));
+ desk = UnoRuntime.queryInterface(XDesktop.class, msf.createInstance("com.sun.star.frame.Desktop"));
}
catch (com.sun.star.uno.Exception ue)
{
@@ -341,18 +339,15 @@ public class OfficeProvider implements AppProvider
{
// Get component context
- final XComponentContext xcomponentcontext = com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(
- null);
+ final XComponentContext xcomponentcontext = com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null);
// initial serviceManager
final XMultiComponentFactory xLocalServiceManager = xcomponentcontext.getServiceManager();
// create a connector, so that it can contact the office
// XUnoUrlResolver urlResolver = UnoUrlResolver.create(xcomponentcontext);
- final Object xUrlResolver = xLocalServiceManager.createInstanceWithContext(
- "com.sun.star.bridge.UnoUrlResolver", xcomponentcontext);
- final XUnoUrlResolver urlResolver = (XUnoUrlResolver) UnoRuntime.queryInterface(
- XUnoUrlResolver.class, xUrlResolver);
+ final Object xUrlResolver = xLocalServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", xcomponentcontext);
+ final XUnoUrlResolver urlResolver = UnoRuntime.queryInterface(XUnoUrlResolver.class, xUrlResolver);
final Object rInitialObject = urlResolver.resolve(connectStr);
@@ -363,8 +358,7 @@ public class OfficeProvider implements AppProvider
debug = true;
dbg("resolved url");
- xMSF = (XMultiServiceFactory) UnoRuntime.queryInterface(
- XMultiServiceFactory.class, rInitialObject);
+ xMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, rInitialObject);
}
return xMSF;
@@ -485,7 +479,7 @@ public class OfficeProvider implements AppProvider
try
{
Object quickStarter = msf.createInstance("com.sun.star.office.Quickstart");
- XFastPropertySet fps = (XFastPropertySet) UnoRuntime.queryInterface(XFastPropertySet.class, quickStarter);
+ XFastPropertySet fps = UnoRuntime.queryInterface(XFastPropertySet.class, quickStarter);
fps.setFastPropertyValue(0, false);
}
catch (com.sun.star.uno.Exception ex)
@@ -495,9 +489,7 @@ public class OfficeProvider implements AppProvider
try
{
- desk = (XDesktop) UnoRuntime.queryInterface(XDesktop.class,
- msf.createInstance(
- "com.sun.star.frame.Desktop"));
+ desk = UnoRuntime.queryInterface(XDesktop.class, msf.createInstance("com.sun.star.frame.Desktop"));
msf = null;
if (desk != null)
@@ -616,9 +608,7 @@ public class OfficeProvider implements AppProvider
{
while (compEnum.hasMoreElements())
{
- final XCloseable closer = (XCloseable) UnoRuntime.queryInterface(
- XCloseable.class,
- compEnum.nextElement());
+ final XCloseable closer = UnoRuntime.queryInterface(XCloseable.class, compEnum.nextElement());
if (closer != null)
{
@@ -658,8 +648,7 @@ public class OfficeProvider implements AppProvider
if (xPathSubst != null)
{
- return (XStringSubstitution) UnoRuntime.queryInterface(
- XStringSubstitution.class, xPathSubst);
+ return UnoRuntime.queryInterface(XStringSubstitution.class, xPathSubst);
}
else
{
@@ -790,6 +779,7 @@ public class OfficeProvider implements AppProvider
this.ow = ow;
}
+ @Override
public void run()
{
System.out.println(utils.getDateTime() + "OfficeProvider:Owp: start ");
diff --git a/qadevOOo/runner/org/openoffice/Runner.java b/qadevOOo/runner/org/openoffice/Runner.java
index 63486ca9d3f3..a3741774917e 100644
--- a/qadevOOo/runner/org/openoffice/Runner.java
+++ b/qadevOOo/runner/org/openoffice/Runner.java
@@ -182,8 +182,9 @@ public class Runner
}
}
- public static boolean run(String... args) {
- System.out.println("OOoRunner Main() version from 20100125 (yyyymmdd)");
+ public static boolean run(String... args)
+ {
+ System.out.println("OOoRunner Main() version from 20100323 (yyyymmdd)");
setStartTime(getTime());
diff --git a/qadevOOo/runner/util/utils.java b/qadevOOo/runner/util/utils.java
index 1091824480a6..3f882f10fafb 100644
--- a/qadevOOo/runner/util/utils.java
+++ b/qadevOOo/runner/util/utils.java
@@ -45,6 +45,7 @@ import com.sun.star.beans.XPropertySet;
import com.sun.star.beans.Property;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.uno.UnoRuntime;
+import com.sun.star.ucb.InteractiveAugmentedIOException;
import com.sun.star.ucb.XSimpleFileAccess;
import com.sun.star.lang.XServiceInfo;
@@ -542,16 +543,10 @@ public class utils {
return res;
}
- /**
- * Copies file to a new location using OpenOffice.org features. If the target
- * file already exists, the file is deleted.
- *
- * @returns <code>true</code> if the file was successfully copied,
- * <code>false</code> if some errors occured (e.g. file is locked, used
- * by another process).
- */
- public static boolean overwriteFile(XMultiServiceFactory xMsf, String oldF, String newF) {
- boolean res = false;
+ private static void overwriteFile_impl(
+ XMultiServiceFactory xMsf, String oldF, String newF)
+ throws InteractiveAugmentedIOException
+ {
try {
Object fileacc = xMsf.createInstance("com.sun.star.comp.ucb.SimpleFileAccess");
@@ -561,15 +556,42 @@ public class utils {
simpleAccess.kill(newF);
}
simpleAccess.copy(oldF, newF);
- res = true;
- } catch (com.sun.star.ucb.InteractiveAugmentedIOException e) {
- return false;
+ } catch (InteractiveAugmentedIOException e) {
+ throw e;
} catch (com.sun.star.uno.Exception e) {
- System.out.println("Couldn't copy " + oldF + " to " + newF + ".");
+ System.out.println("Couldn't copy " + oldF + " to " + newF + ":");
e.printStackTrace();
+ throw new RuntimeException(e);
}
+ }
- return res;
+ /**
+ * Copies file to a new location using OpenOffice.org features. If the target
+ * file already exists, the file is deleted.
+ *
+ * @returns <code>true</code> if the file was successfully copied,
+ * <code>false</code> if some errors occured (e.g. file is locked, used
+ * by another process).
+ */
+ public static boolean tryOverwriteFile(
+ XMultiServiceFactory xMsf, String oldF, String newF)
+ {
+ try {
+ overwriteFile_impl(xMsf, oldF, newF);
+ } catch (InteractiveAugmentedIOException e) {
+ return false;
+ }
+ return true;
+ }
+
+ public static void doOverwriteFile(
+ XMultiServiceFactory xMsf, String oldF, String newF)
+ {
+ try {
+ overwriteFile_impl(xMsf, oldF, newF);
+ } catch (InteractiveAugmentedIOException e) {
+ throw new RuntimeException(e);
+ }
}
public static boolean hasPropertyByName(XPropertySet props, String aName) {
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java
index c0668a254195..47b24a337f2c 100644
--- a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java
@@ -327,8 +327,7 @@ public class _XAccessibleContext extends MultiMethodTest {
}
tRes.tested("getLocale()",
- (loc != null) && (loc.Language.length() > 0) &&
- (loc.Country.length() > 0));
+ (loc != null) && (loc.Language.length() > 0));
}
protected boolean checkStates(String[] expectedStateNames,
diff --git a/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java b/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java
index c4e80ee8a1d7..9c96506938da 100644
--- a/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java
+++ b/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java
@@ -61,48 +61,50 @@ public class _XMessageBoxFactory extends MultiMethodTest {
final UITools tools = new UITools(
(XMultiServiceFactory) tParam.getMSF(),
UnoRuntime.queryInterface(XWindow.class, mb));
- final State[] state = new State[] { State.NONE };
+ final boolean[] done = new boolean[] { false };
+ final boolean[] good = new boolean[] { false };
XRequestCallback async = AsyncCallback.create(
tParam.getComponentContext());
async.addCallback(
new XCallback() {
public void notify(Object aData) {
mb.execute();
+ synchronized (done) {
+ done[0] = true;
+ done.notifyAll();
+ }
}
},
Any.VOID);
async.addCallback(
new XCallback() {
public void notify(Object aData) {
- boolean ok = true;
try {
tools.clickButton("OK");
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
- e.printStackTrace();
- ok = false;
+ throw new RuntimeException(e);
}
- synchronized (state) {
- state[0] = ok ? State.GOOD : State.BAD;
- state.notifyAll();
+ synchronized (good) {
+ good[0] = true;
}
}
},
Any.VOID);
- boolean ok;
- synchronized (state) {
- while (state[0] == State.NONE) {
+ synchronized (done) {
+ while (!done[0]) {
try {
- state.wait();
+ done.wait();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
- ok = state[0] == State.GOOD;
+ }
+ boolean ok;
+ synchronized (good) {
+ ok = good[0];
}
tRes.tested("createMessageBox()", ok);
}
-
- private enum State { NONE, GOOD, BAD };
}
diff --git a/qadevOOo/tests/java/mod/_dbaccess/ORowSet.java b/qadevOOo/tests/java/mod/_dbaccess/ORowSet.java
index 37311b118d0e..c349d5dcdb28 100644
--- a/qadevOOo/tests/java/mod/_dbaccess/ORowSet.java
+++ b/qadevOOo/tests/java/mod/_dbaccess/ORowSet.java
@@ -293,7 +293,7 @@ public class ORowSet extends TestCase {
oldF = utils.getFullURL(origDB);
newF = tempFolder + tableName + ".dbf";
}
- while ( !utils.overwriteFile( orb, oldF, newF ) );
+ while ( !utils.tryOverwriteFile( orb, oldF, newF ) );
m_tableFile = newF;
}
diff --git a/qadevOOo/tests/java/mod/_forms/ODatabaseForm.java b/qadevOOo/tests/java/mod/_forms/ODatabaseForm.java
index fe44c30e7c05..4b360e20fd10 100644
--- a/qadevOOo/tests/java/mod/_forms/ODatabaseForm.java
+++ b/qadevOOo/tests/java/mod/_forms/ODatabaseForm.java
@@ -311,7 +311,7 @@ public class ODatabaseForm extends TestCase {
oldF = utils.getFullURL(origDB);
newF = utils.getOfficeTemp((XMultiServiceFactory) tParam.getMSF()) + tableName +
".dbf";
- } while (!utils.overwriteFile(((XMultiServiceFactory) tParam.getMSF()), oldF, newF) &&
+ } while (!utils.tryOverwriteFile(((XMultiServiceFactory) tParam.getMSF()), oldF, newF) &&
(uniqueSuffix++ < 50));
}
}
diff --git a/qadevOOo/tests/java/mod/_sfx/StandaloneDocumentInfo.java b/qadevOOo/tests/java/mod/_sfx/StandaloneDocumentInfo.java
index 715fdc72d371..81e0d459c0a3 100644
--- a/qadevOOo/tests/java/mod/_sfx/StandaloneDocumentInfo.java
+++ b/qadevOOo/tests/java/mod/_sfx/StandaloneDocumentInfo.java
@@ -87,7 +87,7 @@ public class StandaloneDocumentInfo extends TestCase {
destUrl = utils.getOfficeTemp((XMultiServiceFactory)tParam.getMSF()) +
"SfxStandaloneDocInfoObject.sdw";
- utils.overwriteFile((XMultiServiceFactory)tParam.getMSF(), srcUrl, destUrl) ;
+ utils.doOverwriteFile((XMultiServiceFactory)tParam.getMSF(), srcUrl, destUrl) ;
}
/**
diff --git a/sal/prj/build.lst b/sal/prj/build.lst
index c96c3977f725..638252ad4ee8 100644
--- a/sal/prj/build.lst
+++ b/sal/prj/build.lst
@@ -18,5 +18,4 @@ sa sal\cppunittester nmake - all sa_cppunittester sa_cpprt.u sa_util NULL
sa sal\qa\ByteSequence nmake - all sa_qa_ByteSequence sa_cppunittester sa_util NULL
sa sal\qa\OStringBuffer nmake - all sa_qa_OStringBuffer sa_cppunittester sa_util NULL
sa sal\qa\osl\mutex nmake - all sa_qa_osl_mutex sa_cppunittester sa_util NULL
-sa sal\qa\osl\pipe nmake - all sa_qa_osl_pipe sa_cppunittester sa_util NULL
sa sal\qa\osl\profile nmake - all sa_qa_osl_profile sa_cppunittester sa_util NULL
diff --git a/sal/qa/ByteSequence/ByteSequence.cxx b/sal/qa/ByteSequence/ByteSequence.cxx
index 3a408edb3ef0..7c9ff2eaef94 100644
--- a/sal/qa/ByteSequence/ByteSequence.cxx
+++ b/sal/qa/ByteSequence/ByteSequence.cxx
@@ -1,605 +1,194 @@
/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sal.hxx"
-#include <Byte_Const.h>
-#include <rtl/byteseq.h>
-
-#include <rtl/byteseq.hxx>
+#include "sal/config.h"
#include "cppunit/TestAssert.h"
#include "cppunit/TestFixture.h"
#include "cppunit/extensions/HelperMacros.h"
#include "cppunit/plugin/TestPlugIn.h"
+#include "rtl/byteseq.hxx"
+#include "sal/types.h"
-using namespace rtl;
-
-namespace rtl_ByteSequence
-{
-
-//------------------------------------------------------------------------
-// testing constructors
-//------------------------------------------------------------------------
-
-class ctor : public CppUnit::TestFixture
- {
- public:
-
- void ctor_001()
- {
- ::rtl::ByteSequence aByteSeq1;
- ::rtl::ByteSequence aByteSeq2( &kTestEmptyByteSeq );
- CPPUNIT_ASSERT_MESSAGE
- (
- "Creates an empty sequence",
- aByteSeq1.getLength() == 0 &&
- aByteSeq1 == aByteSeq2
- );
- }
-
- void ctor_002()
- {
- ::rtl::ByteSequence aByteSeq;
- ::rtl::ByteSequence aByteSeqtmp( aByteSeq );
- CPPUNIT_ASSERT_MESSAGE
- (
- "Creates a copy of given sequence",
- aByteSeq == aByteSeqtmp
- );
-
- }
-
- void ctor_003()
- {
- ::rtl::ByteSequence aByteSeq( &kTestByteSeq1 );
- sal_Int32 nNewLen = aByteSeq.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Copy constructor Creates a copy from the C-Handle ",
- nNewLen == kTestSeqLen1
- );
- }
-
- void ctor_003_1()
- {
- ::rtl::ByteSequence aByteSeq( &kTestByteSeq2 );
- sal_Int32 nNewLen = aByteSeq.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Copy constructor Creates a copy from the C-Handle: reference count > 1 ",
- nNewLen == kTestSeqLen2
- );
- }
-
- void ctor_004()
- {
- sal_Int8 * pElements = &kTestByte4;
- sal_Int32 len = kTestByteCount1;
- ::rtl::ByteSequence aByteSeq( pElements, len);
- sal_Int32 nNewLen = aByteSeq.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Creates a copy of given data bytes",
- aByteSeq[1] == pElements[1] &&
- len == nNewLen
-
- );
- }
-
- void ctor_005()
- {
- sal_Int32 len = 50;
- ::rtl::ByteSequence aByteSeq( len );
- sal_Int32 nNewLen = aByteSeq.getLength();
- sal_Bool res = sal_True;
- for (sal_Int32 i=0; i<len; i++)
- {
- if (aByteSeq[i] != 0)
- res = sal_False;
- }
- CPPUNIT_ASSERT_MESSAGE
- (
- "Creates sequence of given length and initializes all bytes to 0",
- nNewLen == len && res
-
- );
- }
-
- void ctor_006()
- {
- sal_Int32 len = 39;
- ::rtl::ByteSequence aByteSeq( len , BYTESEQ_NODEFAULT );
- sal_Int32 nNewLen = aByteSeq.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Creates sequence of given length and does NOT initialize data",
- nNewLen == len
-
- );
- }
-
- void ctor_007()
- {
- ::rtl::ByteSequence aByteSeq( &kTestByteSeq3, BYTESEQ_NOACQUIRE );
- sal_Int32 nNewLen = aByteSeq.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Creates a sequence from a C-Handle without acquiring the handle, thus taking over ownership",
- nNewLen == kTestSeqLen3
- );
- }
-
- CPPUNIT_TEST_SUITE(ctor);
- CPPUNIT_TEST(ctor_001);
- CPPUNIT_TEST(ctor_002);
- CPPUNIT_TEST(ctor_003);
- CPPUNIT_TEST(ctor_003_1);
- CPPUNIT_TEST(ctor_004);
- CPPUNIT_TEST(ctor_005);
- CPPUNIT_TEST(ctor_006);
- CPPUNIT_TEST(ctor_007);
- CPPUNIT_TEST_SUITE_END();
- };
-
-class assign : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void assign_001()
- {
- sal_Int32 len = kTestByteCount1;
- sal_Int32 len2 = len - 1;
- sal_Int8 * pElements = &kTestByte;
- ::rtl::ByteSequence aByteSeq1( kTestByte5, len);
- ::rtl::ByteSequence aByteSeq2( pElements, len2);
- aByteSeq2 = aByteSeq1;
- sal_Int32 nNewLen = aByteSeq2.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Assignment operator: assign longer sequence to another",
- aByteSeq1 == aByteSeq2 &&
- nNewLen == len
- );
- }
-
- void assign_002()
- {
- sal_Int32 len = kTestByteCount1 - 1 ;
- ::rtl::ByteSequence aByteSeq1( len );
- sal_Int8 * pElements = &kTestByte1;
- ::rtl::ByteSequence aByteSeq2( pElements, len + 1);
- aByteSeq2 = aByteSeq1;
- sal_Int32 nNewLen = aByteSeq2.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Assignment operator: assign shorter sequence to another",
- aByteSeq1 == aByteSeq2 &&
- nNewLen == len
- );
- }
-
- void assign_003()
- {
- sal_Int32 len = kTestByteCount1 - 1 ;
- const sal_Int8 * pElements = &kTestByte2;
- ::rtl::ByteSequence aByteSeq1( pElements, len + 1 );
- ::rtl::ByteSequence aByteSeq2( len, BYTESEQ_NODEFAULT );
- aByteSeq2 = aByteSeq1;
- sal_Int32 nNewLen = aByteSeq2.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Assignment operator: assign sequence to another sequence having no data initialized",
- aByteSeq1 == aByteSeq2 &&
- nNewLen == kTestByteCount1
- );
- }
-
- void assign_004()
- {
- ::rtl::ByteSequence aByteSeq1;
- sal_Int32 len = kTestByteCount1 ;
- const sal_Int8 * pElements = &kTestByte;
- ::rtl::ByteSequence aByteSeq2( pElements, len);
- aByteSeq2 = aByteSeq1;
- sal_Int32 nNewLen = aByteSeq2.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Assignment operator: assign empty sequence to another not empty sequence",
- aByteSeq1 == aByteSeq2 &&
- nNewLen == 0
- );
- }
-
- CPPUNIT_TEST_SUITE(assign);
- CPPUNIT_TEST(assign_001);
- CPPUNIT_TEST(assign_002);
- CPPUNIT_TEST(assign_003);
- CPPUNIT_TEST(assign_004);
- CPPUNIT_TEST_SUITE_END();
-}; // class operator=
-
-
-class equal : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void equal_001()
- {
- sal_Int32 len = kTestByteCount1 ;
- sal_Int8 * pElements = &kTestByte;
- ::rtl::ByteSequence aByteSeq1( pElements, len-1);
- ::rtl::ByteSequence aByteSeq2( pElements, len);
- sal_Bool res = aByteSeq1 == aByteSeq2;
- CPPUNIT_ASSERT_MESSAGE
- (
- "Equality operator: compare two sequences 1",
- !res
- );
- }
-
- void equal_002()
- {
- sal_Int32 len = kTestByteCount1 ;
- const sal_Int8 * pElements = &kTestByte;
- ::rtl::ByteSequence aByteSeq1( pElements, len);
- ::rtl::ByteSequence aByteSeq2( pElements, len);
- sal_Bool res = aByteSeq1 == aByteSeq2;
- CPPUNIT_ASSERT_MESSAGE
- (
- "Equality operator: compare two sequences 2",
- res
- );
- }
-
- void equal_003()
- {
- sal_Int32 len = kTestByteCount1 ;
- const sal_Int8 * pElements = kTestByte5;
- ::rtl::ByteSequence aByteSeq1( pElements, len);
- pElements = kTestByte6;
- ::rtl::ByteSequence aByteSeq2( pElements, len);
- sal_Bool res = aByteSeq1 == aByteSeq2;
- CPPUNIT_ASSERT_MESSAGE
- (
- "Equality operator: compare two sequences 2",
- !res
- );
- }
- CPPUNIT_TEST_SUITE(equal);
- CPPUNIT_TEST(equal_001);
- CPPUNIT_TEST(equal_002);
- CPPUNIT_TEST(equal_003);
- CPPUNIT_TEST_SUITE_END();
-}; // class equal
+namespace {
-
-class notequal : public CppUnit::TestFixture
-{
+class Test: public CppUnit::TestFixture {
public:
- // initialise your test code values here.
- void setUp()
- {
+ void test_default() {
+ rtl::ByteSequence s;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength());
}
- void tearDown()
- {
+ void test_size0() {
+ rtl::ByteSequence s(sal_Int32(0));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength());
}
- // insert your test code here.
- void notequal_001()
- {
- sal_Int32 len = kTestByteCount1 ;
- const sal_Int8 * pElements = &kTestByte;
- ::rtl::ByteSequence aByteSeq1( pElements, len-1);
- ::rtl::ByteSequence aByteSeq2( pElements, len);
- sal_Bool res = aByteSeq1 != aByteSeq2;
- CPPUNIT_ASSERT_MESSAGE
- (
- "Equality operator: compare two sequences 1",
- res
- );
+ void test_size5() {
+ rtl::ByteSequence s(5);
+ sal_Int8 const * p = s.getConstArray();
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength());
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[0]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[1]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[2]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[3]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[4]);
}
- void notequal_002()
- {
- sal_Int32 len = kTestByteCount1 ;
- const sal_Int8 * pElements = &kTestByte;
- ::rtl::ByteSequence aByteSeq1( pElements, len);
- ::rtl::ByteSequence aByteSeq2( pElements, len);
- sal_Bool res = aByteSeq1 != aByteSeq2;
- CPPUNIT_ASSERT_MESSAGE
- (
- "Equality operator: compare two sequences 2",
- !res
- );
- }
-
- CPPUNIT_TEST_SUITE(notequal);
- CPPUNIT_TEST(notequal_001);
- CPPUNIT_TEST(notequal_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class notequal
-
-
-class getArray : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void getArray_001()
- {
- sal_Int32 len = kTestByteCount1 ;
- sal_Int8 * pElements = &kTestByte;
- ::rtl::ByteSequence aByteSeq1( pElements, len);
- sal_Int8 * pArray = aByteSeq1.getArray();
- sal_Bool res = sal_True;
- for (sal_Int32 i = 0; i < len; i++)
- {
- if (pElements[i] != pArray[i])
- res = sal_False;
- }
- CPPUNIT_ASSERT_MESSAGE
- (
- "Gets the pointer to byte array: one element sequence",
- res == sal_True
- );
- }
-
- void getArray_002()
- {
- sal_Int8 * pElements = kTestByte6;
- ::rtl::ByteSequence aByteSeq(pElements, 5);
- sal_Int8 * pArray = aByteSeq.getArray();
- sal_Bool res = sal_True;
- for (sal_Int32 i = 0; i < 5; i++)
- {
- if (pElements[i] != pArray[i])
- res = sal_False;
- }
- CPPUNIT_ASSERT_MESSAGE
- (
- "Gets the pointer to byte array: more elements sequence",
- res == sal_True
- );
- }
-
- CPPUNIT_TEST_SUITE(getArray);
- CPPUNIT_TEST(getArray_001);
- CPPUNIT_TEST(getArray_002);
- CPPUNIT_TEST_SUITE_END();
-}; // class getArray
-
-
-class realloc : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
+ void test_noinit0() {
+ rtl::ByteSequence s(0, rtl::BYTESEQ_NODEFAULT);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength());
}
- void tearDown()
- {
+ void test_noinit5() {
+ rtl::ByteSequence s(5, rtl::BYTESEQ_NODEFAULT);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength());
}
- // insert your test code here.
- void realloc_001()
- {
- ::rtl::ByteSequence aByteSeq;
- sal_Int32 nSize = 20;
- aByteSeq.realloc( nSize );
- sal_Int32 nNewLen = aByteSeq.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Reallocates sequence to new length: empty sequence",
- nNewLen == nSize
- );
+ void test_elem0() {
+ rtl::ByteSequence s(0, 0);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength());
}
- void realloc_002()
- {
- //reference count > 1
- ::rtl::ByteSequence aByteSeq( &kTestByteSeq2 ); //34
- sal_Int32 nSize = 20;
- aByteSeq.realloc( nSize );
- sal_Int32 nNewLen = aByteSeq.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Reallocates sequence: reference count > 1 && nSize < nElements",
- nNewLen == nSize
- );
+ void test_elem5() {
+ sal_Int8 const a[5] = { 0, 1, 2, 3, 4 };
+ rtl::ByteSequence s(a, 5);
+ sal_Int8 const * p = s.getConstArray();
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength());
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[0]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(1), p[1]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(2), p[2]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(3), p[3]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(4), p[4]);
}
- void realloc_003()
- {
- //reference count > 1
- ::rtl::ByteSequence aByteSeq( &kTestByteSeq2 ); //34
- sal_Int32 nSize = kTestSeqLen2 + 5;
- sal_Int32 nElements = kTestSeqLen2;
- aByteSeq.realloc( nSize );
- sal_Int32 nNewLen = aByteSeq.getLength();
- sal_Bool res = sal_True;
- for (int i = nSize; i < nElements; i++)
- {
- sal_Int8 nValue = aByteSeq[i];
- if (nValue != 0)
- res = sal_False;
+ void test_copy() {
+ rtl::ByteSequence s1(5);
+ {
+ rtl::ByteSequence s2(s1);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s2.getLength());
+ CPPUNIT_ASSERT_EQUAL(s1.getConstArray(), s2.getConstArray());
+ CPPUNIT_ASSERT_EQUAL(s1.getHandle(), s2.getHandle());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), s1.getHandle()->nRefCount);
}
- CPPUNIT_ASSERT_MESSAGE
- (
- "Reallocates sequence: reference count > 1 && nSize > nElements",
- nNewLen == nSize
- && res == sal_True
- );
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s1.getHandle()->nRefCount);
}
- void realloc_004()
- {
- sal_Int8 * pElements = &kTestByte3;
- sal_Int32 len = kTestByteCount3;
- ::rtl::ByteSequence aByteSeq( pElements, len);
- sal_Int32 nSize = kTestByteCount3 - 10 ;
- aByteSeq.realloc( nSize );
- sal_Int32 nNewLen = aByteSeq.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Reallocates sequence: nSize < nElements",
- nNewLen == nSize
- );
- }
-
- void realloc_005()
- {
- sal_Int8 * pElements = kTestByte6;
- sal_Int32 len = 4;
- ::rtl::ByteSequence aByteSeq( pElements, len);
- sal_Int32 nSize = len + 10 ;
- aByteSeq.realloc( nSize );
- sal_Int32 nNewLen = aByteSeq.getLength();
- CPPUNIT_ASSERT_MESSAGE
- (
- "Reallocates sequence: nSize > nElements",
- nNewLen == nSize
- );
+ void test_fromC() {
+ sal_Sequence c = { 1, 1, { 0 } };
+ {
+ rtl::ByteSequence s(&c);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s.getLength());
+ CPPUNIT_ASSERT_EQUAL(
+ static_cast< void const * >(c.elements),
+ static_cast< void const * >(s.getConstArray()));
+ CPPUNIT_ASSERT_EQUAL(&c, s.getHandle());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), c.nRefCount);
+ }
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), c.nRefCount);
}
- CPPUNIT_TEST_SUITE(realloc);
- CPPUNIT_TEST(realloc_001);
- CPPUNIT_TEST(realloc_002);
- CPPUNIT_TEST(realloc_003);
- CPPUNIT_TEST(realloc_004);
- CPPUNIT_TEST(realloc_005);
- //CPPUNIT_TEST(realloc_006);
+ void test_noacquire() {
+ sal_Sequence c = { 2, 1, { 0 } };
+ {
+ rtl::ByteSequence s(&c, rtl::BYTESEQ_NOACQUIRE);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s.getLength());
+ CPPUNIT_ASSERT_EQUAL(
+ static_cast< void const * >(c.elements),
+ static_cast< void const * >(s.getConstArray()));
+ CPPUNIT_ASSERT_EQUAL(&c, s.getHandle());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), c.nRefCount);
+ }
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), c.nRefCount);
+ }
+
+ void test_getArray() {
+ sal_Int8 const a[5] = { 0, 1, 2, 3, 4 };
+ rtl::ByteSequence s1(a, 5);
+ rtl::ByteSequence s2(s1);
+ sal_Int8 * p = s2.getArray();
+ p[2] = 10;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s1.getHandle()->nRefCount);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s2.getHandle()->nRefCount);
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(2), s1.getConstArray()[2]);
+ CPPUNIT_ASSERT_EQUAL(sal_Int8(10), s2.getConstArray()[2]);
+ }
+
+ void test_same0() {
+ rtl::ByteSequence s1;
+ rtl::ByteSequence s2;
+ CPPUNIT_ASSERT_EQUAL(sal_True, s1 == s2);
+ CPPUNIT_ASSERT_EQUAL(sal_True, s2 == s1);
+ CPPUNIT_ASSERT_EQUAL(sal_False, s1 != s2);
+ CPPUNIT_ASSERT_EQUAL(sal_False, s2 != s1);
+ }
+
+ void test_diffLen() {
+ sal_Int8 const a[5] = { 0, 1, 2, 3, 4 };
+ rtl::ByteSequence s1(a, 5);
+ rtl::ByteSequence s2(a, 4);
+ CPPUNIT_ASSERT_EQUAL(sal_False, s1 == s2);
+ CPPUNIT_ASSERT_EQUAL(sal_False, s2 == s1);
+ CPPUNIT_ASSERT_EQUAL(sal_True, s1 != s2);
+ CPPUNIT_ASSERT_EQUAL(sal_True, s2 != s1);
+ }
+
+ void test_diffElem() {
+ sal_Int8 const a1[5] = { 0, 1, 2, 3, 4 };
+ rtl::ByteSequence s1(a1, 5);
+ sal_Int8 const a2[5] = { 0, 1, 10, 3, 4 };
+ rtl::ByteSequence s2(a2, 5);
+ CPPUNIT_ASSERT_EQUAL(sal_False, s1 == s2);
+ CPPUNIT_ASSERT_EQUAL(sal_False, s2 == s1);
+ CPPUNIT_ASSERT_EQUAL(sal_True, s1 != s2);
+ CPPUNIT_ASSERT_EQUAL(sal_True, s2 != s1);
+ }
+
+ CPPUNIT_TEST_SUITE(Test);
+ CPPUNIT_TEST(test_default);
+ CPPUNIT_TEST(test_size0);
+ CPPUNIT_TEST(test_size5);
+ CPPUNIT_TEST(test_noinit0);
+ CPPUNIT_TEST(test_noinit5);
+ CPPUNIT_TEST(test_elem0);
+ CPPUNIT_TEST(test_elem5);
+ CPPUNIT_TEST(test_copy);
+ CPPUNIT_TEST(test_fromC);
+ CPPUNIT_TEST(test_noacquire);
+ CPPUNIT_TEST(test_getArray);
+ CPPUNIT_TEST(test_same0);
+ CPPUNIT_TEST(test_diffLen);
+ CPPUNIT_TEST(test_diffElem);
CPPUNIT_TEST_SUITE_END();
-}; // class realloc
-
-
-class getData : public CppUnit::TestFixture
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
+};
- void tearDown()
- {
- }
-
- // insert your test code here.
- void getData_001()
- {
- sal_Int8 * pElements = kTestByte5;
- ::rtl::ByteSequence aByteSeq(pElements, 4);
- sal_Bool res = sal_True;
- if (aByteSeq[0] != kTestByte)
- res = sal_False;
-
- if (aByteSeq[1] != kTestByte1)
- res = sal_False;
-
- if (aByteSeq[2] != kTestByte2)
- res = sal_False;
-
- if (aByteSeq[3] != kTestByte3)
- res = sal_False;
-
- CPPUNIT_ASSERT_MESSAGE
- (
- "Obtains a reference to byte indexed at given position: empty sequence",
- res == sal_True
- );
- }
-
- void getData_002()
- {
- ::rtl::ByteSequence aByteSeq( &kTestByteSeq2 );
- sal_Int8 nValue = aByteSeq[0];
- CPPUNIT_ASSERT_MESSAGE
- (
- "Obtains a reference to byte indexed at given position: reference count > 1",
- nValue == kTestChar2 //not sure what is right,hehe
- );
- }
-
- void getData_003()
- {
- ::rtl::ByteSequence aByteSeq( &kTestByteSeq3 );
- sal_Int8 nValue = aByteSeq[0];
- CPPUNIT_ASSERT_MESSAGE
- (
- "Obtains a reference to byte indexed at given position: reference count = 1",
- nValue == kTestChar3 //not sure what is right,hehe
- );
- }
-
- CPPUNIT_TEST_SUITE(getData);
- CPPUNIT_TEST(getData_001);
- CPPUNIT_TEST(getData_002);
- CPPUNIT_TEST(getData_003);
- CPPUNIT_TEST_SUITE_END();
-}; // class getData
+CPPUNIT_TEST_SUITE_REGISTRATION(Test);
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::ctor);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::assign);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::equal);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::notequal);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::getArray);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::realloc);
-CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::getData);
-} // namespace ByteSequence
+}
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/qa/ByteSequence/Byte_Const.h b/sal/qa/ByteSequence/Byte_Const.h
deleted file mode 100644
index 2d167b7d673c..000000000000
--- a/sal/qa/ByteSequence/Byte_Const.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef _BYTE_CONST_H_
-#define _BYTE_CONST_H_
-
-//------------------------------------------------------------------------
-//------------------------------------------------------------------------
-#include <sal/types.h>
-
-//------------------------------------------------------------------------
-//------------------------------------------------------------------------
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-//------------------------------------------------------------------------
-//------------------------------------------------------------------------
-const sal_Int32 kTestByteCount1 = 7;
-const sal_Int32 kTestByteCount2 = 0;
-const sal_Int32 kTestByteCount3 = 45;
-const sal_Int32 kTestByteCount4 = 100;
-const sal_Int32 kTestByteCount5 = 23;
-const sal_Int32 kTestByteCount6 = 90;
-
-
-sal_Int8 kTestByte = 100;
-sal_Int8 kTestByte1 = 0;
-sal_Int8 kTestByte2 = 1;
-sal_Int8 kTestByte3 = 2;
-sal_Int8 kTestByte4 = -98;
-
-sal_Int8 kTestByte5[] = {kTestByte, kTestByte1, kTestByte2, kTestByte3, kTestByte4};
-
-sal_Int8 kTestByte60 = 56;
-sal_Int8 kTestByte61 = -1;
-sal_Int8 kTestByte62 = -23;
-sal_Int8 kTestByte63 = 21;
-sal_Int8 kTestByte64 = -128;
-sal_Int8 kTestByte65 = 127;
-sal_Int8 kTestByte6[] = {kTestByte60, kTestByte61, kTestByte62, kTestByte63, kTestByte64, kTestByte65};
-
-//------------------------------------------------------------------------
-
-char kTestChar = 45;
-char kTestChar0 = 0;
- char kTestChar1 = (char)((500 & 0xff) - 256);
-char kTestChar2 = 78;
- char kTestChar3 = (char)(-155 & 0xff);
-
-sal_Int32 kTestSeqLen0 = 0;
-sal_Int32 kTestSeqLen1 = 5;
-sal_Int32 kTestSeqLen2 = 34;
-sal_Int32 kTestSeqLen3 = 270;
-
-sal_Sequence kTestEmptyByteSeq =
-{
- 1, /* sal_Int32 refCount; */
- kTestSeqLen0, /* sal_Int32 length; */
- { kTestChar0 } /* sal_Unicode buffer[1]; */
-};
-
-sal_Sequence kTestByteSeq1 =
-{
- 1, /* sal_Int32 refCount; */
- kTestSeqLen1, /* sal_Int32 length; */
- { kTestChar1 } /* sal_Unicode buffer[1]; */
-};
-
-sal_Sequence kTestByteSeq2 =
-{
- 3, /* sal_Int32 refCount; */
- kTestSeqLen2, /* sal_Int32 length; */
- { kTestChar2 } /* sal_Unicode buffer[1]; */
-};
-
-sal_Sequence kTestByteSeq3 =
-{
- 2, /* sal_Int32 refCount; */
- kTestSeqLen3, /* sal_Int32 length; */
- { kTestChar3 } /* sal_Unicode buffer[1]; */
-};
-
-//------------------------------------------------------------------------
-//------------------------------------------------------------------------
-
-#ifdef __cplusplus
-}
-#endif
-
-//------------------------------------------------------------------------
-//------------------------------------------------------------------------
-
-#endif /* _BYTE_CONST_H_ */
-
-
diff --git a/sal/qa/ByteSequence/makefile.mk b/sal/qa/ByteSequence/makefile.mk
index 972444ca8b57..9f7bfcfd25ce 100644
--- a/sal/qa/ByteSequence/makefile.mk
+++ b/sal/qa/ByteSequence/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -23,65 +23,33 @@
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
-#*************************************************************************
+#***********************************************************************/
.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
nothing .PHONY:
.ELSE
-PRJ=..$/..
-
-PRJNAME=sal
-TARGET=qa_bytesequence
-# this is removed at the moment because we need some enhancements
-# TESTDIR=TRUE
-
-ENABLE_EXCEPTIONS=TRUE
+PRJ = ../..
+PRJNAME = sal
+TARGET = qa_ByteSequence
-# --- Settings -----------------------------------------------------
+ENABLE_EXCEPTIONS = TRUE
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
+.INCLUDE: settings.mk
CFLAGSCXX += $(CPPUNIT_CFLAGS)
-#----------------------------------- OStringBuffer -----------------------------------
-
-SHL1OBJS= \
- $(SLO)$/ByteSequence.obj
-
-SHL1TARGET= rtl_ByteSequence
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
+SHL1IMPLIB = i$(SHL1TARGET)
+SHL1OBJS = $(SLO)/ByteSequence.obj
SHL1RPATH = NONE
+SHL1STDLIBS = $(CPPUNITLIB) $(SALLIB)
+SHL1TARGET = rtl_ByteSequence
+SHL1VERSIONMAP = $(PRJ)/qa/export.map
+DEF1NAME = $(SHL1TARGET)
-# --- BEGIN --------------------------------------------------------
-SHL2OBJS= \
- $(SLO)$/rtl_old_testbyteseq.obj
-SHL2TARGET= rtl_old_testbyteseq
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
-
-SHL2IMPLIB= i$(SHL2TARGET)
-
-DEF2NAME =$(SHL2TARGET)
-SHL2VERSIONMAP = $(PRJ)$/qa$/export.map
-SHL2RPATH = NONE
-# END --------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
+SLOFILES = $(SHL1OBJS)
-.INCLUDE : target.mk
-.INCLUDE : _cppunit.mk
+.INCLUDE: target.mk
+.INCLUDE: _cppunit.mk
.END
diff --git a/sal/qa/ByteSequence/rtl_old_testbyteseq.cxx b/sal/qa/ByteSequence/rtl_old_testbyteseq.cxx
deleted file mode 100644
index 61c312162c78..000000000000
--- a/sal/qa/ByteSequence/rtl_old_testbyteseq.cxx
+++ /dev/null
@@ -1,134 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sal.hxx"
-// LLA:
-// this file is converted to use with testshl2
-// original was placed in sal/test/textenc.cxx
-// -----------------------------------------------------------------------------
-
-#include <stdio.h>
-
-#include <osl/diagnose.h>
-#include <rtl/byteseq.hxx>
-
-using namespace ::rtl;
-
-#include "cppunit/TestAssert.h"
-#include "cppunit/TestFixture.h"
-#include "cppunit/extensions/HelperMacros.h"
-#include "cppunit/plugin/TestPlugIn.h"
-
-namespace rtl_testbyteseq
-{
-
-// -----------------------------------------------------------------------------
-
-class oldbyteseq : public CppUnit::TestFixture
-{
-public:
- void test_bytesequence_001();
-
- CPPUNIT_TEST_SUITE( oldbyteseq );
- CPPUNIT_TEST( test_bytesequence_001 );
- CPPUNIT_TEST_SUITE_END( );
-};
-
-// -----------------------------------------------------------------------------
-
-void oldbyteseq::test_bytesequence_001()
-{
- signed char a[5] = { 1 , 2 , 3 , 4 , 5 };
-
- // test the c++ wrapper
- {
- ByteSequence seq;
- OSL_ENSURE( ! seq.getLength() , "" );
-
- ByteSequence seq2( a , 5 );
-
- OSL_ENSURE( !( seq == seq2) , "" );
-
- seq = seq2;
- OSL_ENSURE( seq == seq2 , "" );
-
- seq[0] = 2;
- OSL_ENSURE( !(seq == seq2) , "" );
-
- seq = ByteSequence( a , 5 );
- OSL_ENSURE( seq == seq2 , "" );
-
- seq = ByteSequence( 5 ); // default value is 0 for each byte
- OSL_ENSURE( !( seq == seq2 ) , "" );
- }
-
- {
- sal_Sequence *pSeq = 0;
- rtl_byte_sequence_construct( &pSeq , 0 );
-
- // implementation dependent test.
- OSL_ENSURE( pSeq->nRefCount == 2 , "invalid refcount for empty sequence" );
-
- sal_Sequence *pSeq2 = 0;
- rtl_byte_sequence_constructFromArray( &pSeq2 , a , 5 );
-
- OSL_ENSURE( ! rtl_byte_sequence_equals( pSeq , pSeq2 ) , "" );
-
- rtl_byte_sequence_assign( &pSeq , pSeq2 );
- OSL_ENSURE( pSeq == pSeq2 , "" );
- OSL_ENSURE( rtl_byte_sequence_equals( pSeq , pSeq2 ) , "" );
-
- rtl_byte_sequence_reference2One( &pSeq );
- (( sal_Int8*) rtl_byte_sequence_getConstArray( pSeq ) )[0] = 2;
-
- OSL_ENSURE( ! rtl_byte_sequence_equals( pSeq , pSeq2 ) , "" );
-
- rtl_byte_sequence_constructFromArray( &pSeq , a , 5 );
- OSL_ENSURE( rtl_byte_sequence_equals( pSeq , pSeq2 ) , "" );
-
- rtl_byte_sequence_construct( &pSeq , 5 );
- OSL_ENSURE( ! rtl_byte_sequence_equals( pSeq , pSeq2 ) , "" );
-
-
-
- rtl_byte_sequence_release( pSeq2 );
- rtl_byte_sequence_release( pSeq );
- }
-
-
- printf( "test bytesequence OK\n" );
-
-}
-
-} // namespace osl_test_file
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( rtl_testbyteseq::oldbyteseq );
-
-// -----------------------------------------------------------------------------
-CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/qa/osl/mutex/osl_Mutex.cxx b/sal/qa/osl/mutex/osl_Mutex.cxx
index df0d2fe8ef6b..4b1b078785d3 100755
--- a/sal/qa/osl/mutex/osl_Mutex.cxx
+++ b/sal/qa/osl/mutex/osl_Mutex.cxx
@@ -838,7 +838,7 @@ protected:
void SAL_CALL run( )
{
// acquire the mutex
- printf("# ResettableGuard" );
+ printf("# ResettableGuard\n" );
ResettableMutexGuard aGuard( pMyMutex );
// release the mutex
aGuard.clear( );
@@ -894,13 +894,13 @@ namespace osl_ResettableGuard
{
Mutex aMutex;
ResetGuardThread myThread( &aMutex );
- myThread.create( );
ResettableMutexGuard myMutexGuard( aMutex );
+ myThread.create( );
/// is it running? and clear done?
+ sal_Bool bRes = myThread.isRunning( );
myMutexGuard.clear( );
ThreadHelper::thread_sleep_tenth_sec( 1 );
- sal_Bool bRes = myThread.isRunning( );
/// if reset is not success, the release will return sal_False
myMutexGuard.reset( );
diff --git a/sal/rtl/source/bootstrap.cxx b/sal/rtl/source/bootstrap.cxx
index 2ac61e9aaef5..cc7d3336c2d2 100644
--- a/sal/rtl/source/bootstrap.cxx
+++ b/sal/rtl/source/bootstrap.cxx
@@ -281,10 +281,6 @@ static OUString & getIniFileName_Impl()
fileName += OUString(RTL_CONSTASCII_USTRINGPARAM(SAL_CONFIGFILE("")));
}
- OUString workDir;
- osl_getProcessWorkingDir(&workDir.pData);
- osl::FileBase::getAbsoluteFileURL(workDir, fileName, fileName);
-
static OUString theFileName;
if(fileName.getLength())
theFileName = fileName;
@@ -653,12 +649,8 @@ rtlBootstrapHandle SAL_CALL rtl_bootstrap_args_open (
rtl_uString * pIniName
) SAL_THROW_EXTERN_C()
{
- OUString workDir;
OUString iniName( pIniName );
- osl_getProcessWorkingDir( &workDir.pData );
- osl::FileBase::getAbsoluteFileURL( workDir, iniName, iniName );
-
// normalize path
FileStatus status( FileStatusMask_FileURL );
DirectoryItem dirItem;
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index 7027b55259d0..c39d0deca0b7 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -397,8 +397,8 @@ public:
void CompileColRowNameFormula();
sal_Int32 GetMaxStringLen( SCROW nRowStart, SCROW nRowEnd, CharSet eCharSet ) const;
- xub_StrLen GetMaxNumberStringLen( USHORT& nPrecision,
- SCROW nRowStart, SCROW nRowEnd ) const;
+ xub_StrLen GetMaxNumberStringLen( sal_uInt16& nPrecision,
+ SCROW nRowStart, SCROW nRowEnd ) const;
private:
ScBaseCell* CloneCell(SCSIZE nIndex, USHORT nFlags, ScDocument& rDestDoc, const ScAddress& rDestPos);
diff --git a/sc/inc/docoptio.hxx b/sc/inc/docoptio.hxx
index 9dd1057db67f..6f6d4c859a5c 100644
--- a/sc/inc/docoptio.hxx
+++ b/sc/inc/docoptio.hxx
@@ -38,7 +38,7 @@ class SC_DLLPUBLIC ScDocOptions
{
double fIterEps; // Epsilon-Wert dazu
USHORT nIterCount; // Anzahl
- USHORT nPrecStandardFormat; // Nachkommastellen Standard
+ sal_uInt16 nPrecStandardFormat; // precision for standard format
USHORT nDay; // Nulldatum:
USHORT nMonth;
USHORT nYear;
@@ -86,8 +86,8 @@ public:
inline int operator==( const ScDocOptions& rOpt ) const;
inline int operator!=( const ScDocOptions& rOpt ) const;
- USHORT GetStdPrecision() const { return nPrecStandardFormat; }
- void SetStdPrecision( USHORT n ) { nPrecStandardFormat = n; }
+ sal_uInt16 GetStdPrecision() const { return nPrecStandardFormat; }
+ void SetStdPrecision( sal_uInt16 n ) { nPrecStandardFormat = n; }
BOOL IsCalcAsShown() const { return bCalcAsShown; }
void SetCalcAsShown( BOOL bVal ) { bCalcAsShown = bVal; }
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index ad8f56600531..02c859723fa2 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -1692,9 +1692,9 @@ public:
/** Maximum string length of numerical cells of a column, e.g. for dBase export.
@return String length in characters (!) including the decimal
separator, and the decimal precision needed. */
- xub_StrLen GetMaxNumberStringLen( USHORT& nPrecision,
- SCTAB nTab, SCCOL nCol,
- SCROW nRowStart, SCROW nRowEnd ) const;
+ xub_StrLen GetMaxNumberStringLen( sal_uInt16& nPrecision,
+ SCTAB nTab, SCCOL nCol,
+ SCROW nRowStart, SCROW nRowEnd ) const;
void KeyInput( const KeyEvent& rKEvt ); // TimerDelays etc.
diff --git a/sc/inc/globstr.hrc b/sc/inc/globstr.hrc
index bca93e7aa441..a9c1997f74f5 100644
--- a/sc/inc/globstr.hrc
+++ b/sc/inc/globstr.hrc
@@ -353,7 +353,7 @@
#define STR_SCATTR_PAGE_SCALETOPAGES 277
#define STR_NOREF_STR 278 /* moved to compiler.src, keep define! */
-#define STR_ODER_SO 279
+// unused: 279
#define STR_UNDO_CHARTDATA 280
#define STR_UNDO_ORIGINALSIZE 281
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index a7d05925957a..c2bf3e96ed5c 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -1146,9 +1146,6 @@
#define RID_IMGLIST_INPUTWIN (SC_RESOURCE_START+22)
#define RID_ERRHDLSC (SC_RESOURCE_START+23)
#define RID_POPUP_GRAPHIC (SC_RESOURCE_START+24)
-#define RID_SCTEAMDLGBMP1 (SC_RESOURCE_START+25)
-#define RID_SCTEAMDLGBMP2 (SC_RESOURCE_START+26)
-#define RID_SCTEAMDLGBMP3 (SC_RESOURCE_START+27)
#define RID_POPUP_DRAWTEXT (SC_RESOURCE_START+29)
#define RID_MN_FORMAT_ALGN (SC_RESOURCE_START+30)
#define RID_MN_FORMAT_STYLE (SC_RESOURCE_START+31)
@@ -1530,7 +1527,6 @@
#define RID_SCDLG_NAMES_PASTE (SC_DIALOGS_START + 72)
#define RID_SCDLG_NAMES_CREATE (SC_DIALOGS_START + 73)
#define RID_SCDLG_NAMES_APPLY (SC_DIALOGS_START + 74) //NYI
-#define RID_SCDLG_TEAM (SC_DIALOGS_START + 75)
#define RID_SCDLG_CHAR (SC_DIALOGS_START + 76)
#define RID_SCDLG_PARAGRAPH (SC_DIALOGS_START + 77)
diff --git a/sc/inc/scmod.hxx b/sc/inc/scmod.hxx
index ee2c956e7742..984e36bec03e 100644
--- a/sc/inc/scmod.hxx
+++ b/sc/inc/scmod.hxx
@@ -74,7 +74,6 @@ class ScInputWindow;
class ScTabViewShell;
class ScFunctionDlg;
class ScArgDlgBase;
-class ScTeamDlg;
class ScEditFunctionDlg;
class ScMessagePool;
class EditFieldInfo;
@@ -126,7 +125,6 @@ class ScModule: public SfxModule, public SfxListener, utl::ConfigurationListener
ScMessagePool* pMessagePool;
// globalen InputHandler gibt's nicht mehr, jede View hat einen
ScInputHandler* pRefInputHandler;
- ScTeamDlg* pTeamDlg;
ScViewCfg* pViewCfg;
ScDocCfg* pDocCfg;
ScAppCfg* pAppCfg;
@@ -268,9 +266,6 @@ SC_DLLPUBLIC void SetAppOptions ( const ScAppOptions& rO
BOOL IsFormulaMode();
BOOL IsRefDialogOpen();
BOOL IsTableLocked();
- void OpenTeamDlg();
- void SetTeamDlg( ScTeamDlg* pDlg ) { pTeamDlg = pDlg; }
- ScTeamDlg* GetTeamDlg() const { return pTeamDlg; }
void SetReference( const ScRange& rRef, ScDocument* pDoc,
const ScMarkData* pMarkData = NULL );
void AddRefEntry();
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index 42fcbb063930..950f07565e19 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -654,11 +654,12 @@ public:
void DoColResize( SCCOL nCol1, SCCOL nCol2, SCSIZE nAdd );
+
sal_Int32 GetMaxStringLen( SCCOL nCol,
SCROW nRowStart, SCROW nRowEnd, CharSet eCharSet ) const;
- xub_StrLen GetMaxNumberStringLen( USHORT& nPrecision,
- SCCOL nCol,
- SCROW nRowStart, SCROW nRowEnd ) const;
+ xub_StrLen GetMaxNumberStringLen( sal_uInt16& nPrecision,
+ SCCOL nCol,
+ SCROW nRowStart, SCROW nRowEnd ) const;
void FindConditionalFormat( ULONG nKey, ScRangeList& rRanges );
diff --git a/sc/inc/unonames.hxx b/sc/inc/unonames.hxx
index 5bcc22ae72d3..330251742870 100644
--- a/sc/inc/unonames.hxx
+++ b/sc/inc/unonames.hxx
@@ -596,6 +596,7 @@
#define SC_UNONAME_PAGESIZE "PageSize"
#define SC_UNONAME_RENDERDEV "RenderDevice"
#define SC_UNONAME_SOURCERANGE "SourceRange"
+#define SC_UNONAME_INC_NP_AREA "PageIncludesNonprintableArea"
// CellValueBinding
#define SC_UNONAME_BOUNDCELL "BoundCell"
diff --git a/sc/prj/build.lst b/sc/prj/build.lst
index e32d8938afc4..115e92990f3c 100755
--- a/sc/prj/build.lst
+++ b/sc/prj/build.lst
@@ -48,4 +48,3 @@ sc sc\addin\datefunc nmake - all sc_addfu sc_add sc_sdi sc_inc NULL
sc sc\addin\rot13 nmake - all sc_adrot sc_add sc_sdi sc_inc NULL
sc sc\addin\util nmake - all sc_adutil sc_addfu sc_adrot sc_sdi sc_inc NULL
sc sc\util nmake - all sc_util sc_addfu sc_adrot sc_adutil sc_app sc_attr sc_cctrl sc_cosrc sc_data sc_dbgui sc_dif sc_docsh sc_drfnc sc_excel sc_form sc_html sc_lotus sc_qpro sc_misc sc_name sc_nvipi sc_opt sc_page sc_rtf sc_scalc sc_style sc_tool sc_uisrc sc_undo sc_unobj sc_view sc_xcl97 sc_xml sc_acc sc_ftools sc_inc sc_vba NULL
-sc sc\qa\unoapi nmake - all sc_qa_unoapi NULL
diff --git a/sc/qa/unoapi/knownissues.xcl b/sc/qa/unoapi/knownissues.xcl
index e6863cd75cab..205123fc0e48 100644
--- a/sc/qa/unoapi/knownissues.xcl
+++ b/sc/qa/unoapi/knownissues.xcl
@@ -191,3 +191,9 @@ sc.ScAnnotationShapeObj::com::sun::star::text::XTextRange
sc.ScAnnotationsObj::com::sun::star::container::XElementAccess
sc.ScCellObj::com::sun::star::sheet::XSheetAnnotationAnchor
sc.ScDataPilotFieldObj::com::sun::star::sheet::XDataPilotFieldGrouping
+
+### i110862 ###
+sc.ScDataPilotTableObj::com::sun::star::sheet::XDataPilotTable
+
+### i111032 ###
+sc.ScAccessibleCell::com::sun::star::accessibility::XAccessibleText
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index 9e3ed1c7ef5e..4c8de67ba271 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -193,6 +193,7 @@ long ScColumn::GetNeededSize( SCROW nRow, OutputDevice* pDev,
double nPPT = bWidth ? nPPTX : nPPTY;
if (Search(nRow,nIndex))
{
+ ScBaseCell* pCell = pItems[nIndex].pCell;
const ScPatternAttr* pPattern = rOptions.pPattern;
if (!pPattern)
pPattern = pAttrArray->GetPattern( nRow );
@@ -233,22 +234,26 @@ long ScColumn::GetNeededSize( SCROW nRow, OutputDevice* pDev,
else
eHorJust = (SvxCellHorJustify)((const SvxHorJustifyItem&)
pPattern->GetItem( ATTR_HOR_JUSTIFY )).GetValue();
- BOOL bBreak;
+ bool bBreak;
if ( eHorJust == SVX_HOR_JUSTIFY_BLOCK )
- bBreak = TRUE;
+ bBreak = true;
else if ( pCondSet &&
pCondSet->GetItemState(ATTR_LINEBREAK, TRUE, &pCondItem) == SFX_ITEM_SET)
bBreak = ((const SfxBoolItem*)pCondItem)->GetValue();
else
bBreak = ((const SfxBoolItem&)pPattern->GetItem(ATTR_LINEBREAK)).GetValue();
+ if (pCell->HasValueData())
+ // Cell has a value. Disable line break.
+ bBreak = false;
+
// get other attributes from pattern and conditional formatting
SvxCellOrientation eOrient = pPattern->GetCellOrientation( pCondSet );
BOOL bAsianVertical = ( eOrient == SVX_ORIENTATION_STACKED &&
((const SfxBoolItem&)pPattern->GetItem( ATTR_VERTICAL_ASIAN, pCondSet )).GetValue() );
if ( bAsianVertical )
- bBreak = FALSE;
+ bBreak = false;
if ( bWidth && bBreak ) // after determining bAsianVertical (bBreak may be reset)
return 0;
@@ -300,7 +305,6 @@ long ScColumn::GetNeededSize( SCROW nRow, OutputDevice* pDev,
nIndent = ((const SfxUInt16Item&)pPattern->GetItem(ATTR_INDENT)).GetValue();
}
- ScBaseCell* pCell = pItems[nIndex].pCell;
BYTE nScript = pDocument->GetScriptType( nCol, nRow, nTab, pCell );
if (nScript == 0) nScript = ScGlobal::GetDefaultScriptType();
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index 22b75b8d4a6a..be7211138c1d 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -1249,7 +1249,7 @@ void ScColumn::StartListeningInArea( SCROW nRow1, SCROW nRow2 )
// TRUE = Zahlformat gesetzt
BOOL ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
formula::FormulaGrammar::AddressConvention eConv,
- SvNumberFormatter* pFormatter, bool bDetectNumberFormat )
+ SvNumberFormatter* pLangFormatter, bool bDetectNumberFormat )
{
BOOL bNumFmtSet = FALSE;
if (VALIDROW(nRow))
@@ -1261,8 +1261,11 @@ BOOL ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
double nVal;
sal_uInt32 nIndex, nOldIndex = 0;
sal_Unicode cFirstChar;
- if (!pFormatter)
- pFormatter = pDocument->GetFormatTable();
+ // #i110979# If a different NumberFormatter is passed in (pLangFormatter),
+ // its formats aren't valid in the document.
+ // Only use the language / LocaleDataWrapper from pLangFormatter,
+ // always the document's number formatter for IsNumberFormat.
+ SvNumberFormatter* pFormatter = pDocument->GetFormatTable();
SfxObjectShell* pDocSh = pDocument->GetDocumentShell();
if ( pDocSh )
bIsLoading = pDocSh->IsLoading();
@@ -1337,9 +1340,23 @@ BOOL ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
if (bDetectNumberFormat)
{
+ if ( pLangFormatter )
+ {
+ // for number detection: valid format index for selected language
+ nIndex = pFormatter->GetStandardIndex( pLangFormatter->GetLanguage() );
+ }
+
if (!pFormatter->IsNumberFormat(rString, nIndex, nVal))
break;
+ if ( pLangFormatter )
+ {
+ // convert back to the original language if a built-in format was detected
+ const SvNumberformat* pOldFormat = pFormatter->GetEntry( nOldIndex );
+ if ( pOldFormat )
+ nIndex = pFormatter->GetFormatForLanguageIfBuiltIn( nIndex, pOldFormat->GetLanguage() );
+ }
+
pNewCell = new ScValueCell( nVal );
if ( nIndex != nOldIndex)
{
@@ -1378,7 +1395,8 @@ BOOL ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
else
{
// Only check if the string is a regular number.
- const LocaleDataWrapper* pLocale = pFormatter->GetLocaleData();
+ SvNumberFormatter* pLocaleSource = pLangFormatter ? pLangFormatter : pFormatter;
+ const LocaleDataWrapper* pLocale = pLocaleSource->GetLocaleData();
if (!pLocale)
break;
@@ -1920,11 +1938,15 @@ sal_Int32 ScColumn::GetMaxStringLen( SCROW nRowStart, SCROW nRowEnd, CharSet eCh
}
-xub_StrLen ScColumn::GetMaxNumberStringLen( USHORT& nPrecision,
- SCROW nRowStart, SCROW nRowEnd ) const
+xub_StrLen ScColumn::GetMaxNumberStringLen(
+ sal_uInt16& nPrecision, SCROW nRowStart, SCROW nRowEnd ) const
{
xub_StrLen nStringLen = 0;
nPrecision = pDocument->GetDocOptions().GetStdPrecision();
+ if ( nPrecision == SvNumberFormatter::UNLIMITED_PRECISION )
+ // In case of unlimited precision, use 2 instead.
+ nPrecision = 2;
+
if ( pItems )
{
String aString;
@@ -1947,8 +1969,8 @@ xub_StrLen ScColumn::GetMaxNumberStringLen( USHORT& nPrecision,
{
if ( nFormat )
{ // more decimals than standard?
- USHORT nPrec = pNumFmt->GetFormatPrecision( nFormat );
- if ( nPrec > nPrecision )
+ sal_uInt16 nPrec = pNumFmt->GetFormatPrecision( nFormat );
+ if ( nPrec != SvNumberFormatter::UNLIMITED_PRECISION && nPrec > nPrecision )
nPrecision = nPrec;
}
if ( nPrecision )
diff --git a/sc/source/core/data/documen4.cxx b/sc/source/core/data/documen4.cxx
index bb6b4cd295ce..148cc367534c 100644
--- a/sc/source/core/data/documen4.cxx
+++ b/sc/source/core/data/documen4.cxx
@@ -430,7 +430,7 @@ sal_Int32 ScDocument::GetMaxStringLen( SCTAB nTab, SCCOL nCol,
return 0;
}
-xub_StrLen ScDocument::GetMaxNumberStringLen( USHORT& nPrecision, SCTAB nTab,
+xub_StrLen ScDocument::GetMaxNumberStringLen( sal_uInt16& nPrecision, SCTAB nTab,
SCCOL nCol,
SCROW nRowStart, SCROW nRowEnd ) const
{
diff --git a/sc/source/core/data/dpsave.cxx b/sc/source/core/data/dpsave.cxx
index 72cf15285310..dd493bb0df6c 100644
--- a/sc/source/core/data/dpsave.cxx
+++ b/sc/source/core/data/dpsave.cxx
@@ -1325,6 +1325,8 @@ void ScDPSaveData::Refresh( const uno::Reference<sheet::XDimensionsSupplier>& xS
pDim->Refresh( xSource, deletedDims );
}
+
+ mbDimensionMembersBuilt = false; // there may be new members
}
catch(uno::Exception&)
{
diff --git a/sc/source/core/data/dpsdbtab.cxx b/sc/source/core/data/dpsdbtab.cxx
index aae5797211b0..b966d9d458ea 100644
--- a/sc/source/core/data/dpsdbtab.cxx
+++ b/sc/source/core/data/dpsdbtab.cxx
@@ -237,15 +237,6 @@ long ScDatabaseDPData::GetColumnCount()
// End Comments
-void lcl_Reset( const uno::Reference<sdbc::XRowSet>& xRowSet )
- throw(sdbc::SQLException, uno::RuntimeException)
-{
- // isBeforeFirst / beforeFirst is not always available
- //! query if it is allowed
-
- xRowSet->execute(); // restart
-}
-
String ScDatabaseDPData::getDimensionName(long nColumn)
{
if (getIsDataLayoutDimension(nColumn))
diff --git a/sc/source/core/data/dpshttab.cxx b/sc/source/core/data/dpshttab.cxx
index 6254e3861db5..a1fa9d2d60a6 100755
--- a/sc/source/core/data/dpshttab.cxx
+++ b/sc/source/core/data/dpshttab.cxx
@@ -110,12 +110,6 @@ long ScSheetDPData::GetColumnCount()
return aCacheTable.getColSize();
}
-BOOL lcl_HasQuery( const ScQueryParam& rParam )
-{
- return rParam.GetEntryCount() > 0 &&
- rParam.GetEntry(0).bDoQuery;
-}
-
String ScSheetDPData::getDimensionName(long nColumn)
{
CreateCacheTable();
diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx
index 2081181b7537..48879bcdec93 100644
--- a/sc/source/core/data/global.cxx
+++ b/sc/source/core/data/global.cxx
@@ -144,15 +144,6 @@ long ScGlobal::nLastColWidthExtra = STD_EXTRA_WIDTH;
static USHORT nPPTZoom = 0; // ScreenZoom used to determine nScreenPPTX/Y
-// ... oder so?
-
-BOOL bOderSo;
-
-bool SC_DLLPUBLIC ScGetWriteTeamInfo()
-{
- return bOderSo;
-}
-
class SfxViewShell;
SfxViewShell* pScActiveViewShell = NULL; //! als Member !!!!!
USHORT nScClickMouseModifier = 0; //! dito
@@ -517,12 +508,6 @@ String ScGlobal::GetLongErrorString(USHORT nErrNumber)
break;
}
String aRes( GetRscString( nErrNumber ) );
- if( bOderSo )
- {
- String aOderSo( GetRscString( STR_ODER_SO ) );
- aOderSo.SearchAndReplace( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("%s")), aRes );
- aRes = aOderSo;
- }
return aRes;
}
diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx
index f8cf1489f3aa..75b288272c1e 100644
--- a/sc/source/core/data/table1.cxx
+++ b/sc/source/core/data/table1.cxx
@@ -115,8 +115,6 @@
// STATIC DATA -----------------------------------------------------------
-extern BOOL bIsOlk, bOderSo;
-
// -----------------------------------------------------------------------
ScTable::ScTable( ScDocument* pDoc, SCTAB nNewTab, const String& rNewName,
@@ -231,9 +229,6 @@ void ScTable::GetName( String& rName ) const
void ScTable::SetName( const String& rNewName )
{
- String aMd( "D\344umling", RTL_TEXTENCODING_MS_1252 ); // ANSI
- if( rNewName == aMd )
- bIsOlk = bOderSo = TRUE;
aName = rNewName;
aUpperName.Erase(); // invalidated if the name is changed
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 90993367dde6..7d295b6286a8 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -1913,8 +1913,8 @@ sal_Int32 ScTable::GetMaxStringLen( SCCOL nCol, SCROW nRowStart,
return 0;
}
-xub_StrLen ScTable::GetMaxNumberStringLen( USHORT& nPrecision, SCCOL nCol,
- SCROW nRowStart, SCROW nRowEnd ) const
+xub_StrLen ScTable::GetMaxNumberStringLen(
+ sal_uInt16& nPrecision, SCCOL nCol, SCROW nRowStart, SCROW nRowEnd ) const
{
if ( ValidCol(nCol) )
return aCol[nCol].GetMaxNumberStringLen( nPrecision, nRowStart, nRowEnd );
diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx
index 2075129e4f6e..edecaadb39f0 100644
--- a/sc/source/core/inc/interpre.hxx
+++ b/sc/source/core/inc/interpre.hxx
@@ -28,8 +28,6 @@
#ifndef SC_INTERPRE_HXX
#define SC_INTERPRE_HXX
-#define SC_SPEW_ENABLED 0
-
#include <math.h>
#include <rtl/math.hxx>
#include "formula/errorcodes.hxx"
@@ -38,10 +36,6 @@
#include "document.hxx"
#include "scmatrix.hxx"
-#if SC_SPEW_ENABLED
-#include "scspew.hxx"
-#endif
-
#include <math.h>
#include <map>
@@ -126,9 +120,6 @@ class ScInterpreter
public:
DECL_FIXEDMEMPOOL_NEWDEL( ScInterpreter )
-#if SC_SPEW_ENABLED
- static ScSpew theSpew;
-#endif
static void GlobalExit(); // aus ScGlobal::Clear() gerufen
@@ -540,11 +531,7 @@ void ScExternalRef();
void ScGetPivotData();
void ScHyperLink();
void ScBahtText();
-void ScCalcTeam();
-void ScAnswer();
void ScTTT();
-void ScSpewFunc();
-void ScGame();
//----------------Funktionen in interpr2.cxx---------------
diff --git a/sc/source/core/inc/sctictac.hxx b/sc/source/core/inc/sctictac.hxx
deleted file mode 100644
index 1c8242150369..000000000000
--- a/sc/source/core/inc/sctictac.hxx
+++ /dev/null
@@ -1,131 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SC_SCTICTAC_HXX
-#define SC_SCTICTAC_HXX
-
-//#define TICTACTOE_MAIN
-#ifdef TICTACTOE_MAIN
-#define TICTACTOE_STDOUT
-#else
-//#define TICTACTOE_STDOUT
-#endif
-#ifndef TICTACTOE_STDOUT
-#define TICTACTOE_SC
-#endif
-
-#ifdef TICTACTOE_SC
-class ScDocument;
-#include "global.hxx"
-#include "address.hxx"
-#else
-#include <tools/string.hxx>
-#endif
-
-static const int ScTicTacToe_Squares = 9;
-static const int ScTicTacToe_Possible_Wins = 8;
-typedef sal_Unicode Square_Type;
-typedef Square_Type Board_Type[ScTicTacToe_Squares];
-
-class ScTicTacToe
-{
-private:
- /* Structure to hold a move and its heuristic */
- typedef struct {
- int Square;
- int Heuristic;
- } Move_Heuristic_Type;
-
- static const Square_Type Empty;
- static const Square_Type Human;
- static const Square_Type Compi;
- static const int Infinity; /* Higher value than any score */
- static const int Maximum_Moves; /* Maximum moves in a game */
-
- Board_Type Board;
-#ifdef TICTACTOE_SC
- ScAddress aPos; // linke obere Ecke des Boards
- ScDocument* pDoc;
-#endif
- ByteString aStdOut;
- int Total_Nodes; /* Nodes searched with minimax */
- int nMove;
- Square_Type aPlayer;
- BOOL bInitialized;
-
- /* Array describing the eight combinations of three squares in a row */
- static const int Three_in_a_Row[ScTicTacToe_Possible_Wins][3];
-
- /* Array used in heuristic formula for each move. */
- static const int Heuristic_Array[4][4];
-
-
- Square_Type Winner();
- inline Square_Type Other( Square_Type Player );
- inline void Play( int Square, Square_Type Player );
- int Evaluate( Square_Type Player );
- int BestMove( Square_Type Player, int *Square,
- int Move_Nbr, int Alpha, int Beta );
- void Describe( int Score );
- void Move( int& Square );
- Square_Type TryMove( int& Square ); // return Winner()
- void PromptHuman();
-#ifdef TICTACTOE_SC
- // -1 == Fehler/Redraw, 0 == keine Aenderung, >0 == UserMoveSquare+1
- int GetStatus();
- void DrawBoard();
- void DrawPos( int nSquare, const String& rStr );
-#endif
-#ifdef TICTACTOE_STDOUT
- void Print();
-#endif
-
- ScTicTacToe( const ScTicTacToe& );
- ScTicTacToe& operator=( const ScTicTacToe& );
-
-public:
-#ifdef TICTACTOE_SC
- ScTicTacToe( ScDocument* pDoc, const ScAddress& );
-#else
- ScTicTacToe();
-#endif
- ~ScTicTacToe() {}
- void Initialize( BOOL bHumanFirst );
- Square_Type GetEmpty() { return Empty; }
-#ifdef TICTACTOE_SC
- Square_Type CalcMove(); // return Winner()
-#endif
-#ifdef TICTACTOE_STDOUT
- void Game();
- void GetOutput( ByteString& rStr );
-#else
- void GetOutput( String& rStr );
-#endif
-};
-
-#endif
-
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index d2b1963c544d..5f4b86b7cd18 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -121,7 +121,7 @@ enum ScanState
ssStop
};
-static const sal_Char* pInternal[ 5 ] = { "GAME", "SPEW", "TTT", "STARCALCTEAM", "ANTWORT" };
+static const sal_Char* pInternal[ 1 ] = { "TTT" };
using namespace ::com::sun::star::i18n;
diff --git a/sc/source/core/tool/docoptio.cxx b/sc/source/core/tool/docoptio.cxx
index a99b3c01dd1f..95ce357b3217 100644
--- a/sc/source/core/tool/docoptio.cxx
+++ b/sc/source/core/tool/docoptio.cxx
@@ -115,7 +115,7 @@ void ScDocOptions::ResetDocOptions()
bIsIter = FALSE;
nIterCount = 100;
fIterEps = 1.0E-3;
- nPrecStandardFormat = 2;
+ nPrecStandardFormat = SvNumberFormatter::UNLIMITED_PRECISION;
nDay = 30;
nMonth = 12;
nYear = 1899;
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index c576cd5ca6c3..2bf6a5680613 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -80,18 +80,8 @@ using ::std::auto_ptr;
#define ADDIN_MAXSTRLEN 256
-// Implementiert in ui\miscdlgs\teamdlg.cxx
-
-extern void ShowTheTeam();
-
-extern BOOL bOderSo; // in GLOBAL.CXX
-
//-----------------------------static data -----------------
-#if SC_SPEW_ENABLED
-ScSpew ScInterpreter::theSpew;
-#endif
-
//-------------------------------------------------------------------------
// Funktionen fuer den Zugriff auf das Document
//-------------------------------------------------------------------------
@@ -3253,288 +3243,15 @@ void ScInterpreter::ScExternalRef()
// --- internals ------------------------------------------------------------
-void ScInterpreter::ScAnswer()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScAnswer" );
- String aStr( GetString() );
- if( aStr.EqualsIgnoreCaseAscii( "Das Leben, das Universum und der ganze Rest" ) )
- {
- PushInt( 42 );
- bOderSo = TRUE;
- }
- else
- PushNoValue();
-}
-
-
-void ScInterpreter::ScCalcTeam()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScCalcTeam" );
- static BOOL bShown = FALSE;
- if( !bShown )
- {
- ShowTheTeam();
- String aTeam( RTL_CONSTASCII_USTRINGPARAM( "Nebel, Benisch, Rentz, Rathke" ) );
- if ( (GetByte() == 1) && ::rtl::math::approxEqual( GetDouble(), 1996) )
- aTeam.AppendAscii( " (a word with 'B': -Olk, -Nietsch, -Daeumling)" );
- PushString( aTeam );
- bShown = TRUE;
- }
- else
- PushInt( 42 );
-}
-
-
-void ScInterpreter::ScSpewFunc()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScSpewFunc" );
- BOOL bRefresh = FALSE;
- BOOL bClear = FALSE;
- // Stack aufraeumen
- BYTE nParamCount = GetByte();
- while ( nParamCount-- > 0)
- {
- switch ( GetStackType() )
- {
- case svString:
- case svSingleRef:
- case svDoubleRef:
- {
- const sal_Unicode ch = GetString().GetChar(0);
- if ( !bRefresh && ch < 256 )
- bRefresh = (tolower( (sal_uChar) ch ) == 'r');
- if ( !bClear && ch < 256 )
- bClear = (tolower( (sal_uChar) ch ) == 'c');
- }
- break;
- default:
- PopError();
- }
- }
- String aStr;
-#if SC_SPEW_ENABLED
- if ( bRefresh )
- theSpew.Clear(); // GetSpew liest SpewRulesFile neu
- theSpew.GetSpew( aStr );
- if ( bClear )
- theSpew.Clear(); // release Memory
- xub_StrLen nPos = 0;
- while ( (nPos = aStr.SearchAndReplace( '\n', ' ', nPos )) != STRING_NOTFOUND )
- nPos++;
-#else
- aStr.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "spitted out all spew :-(" ) );
-#endif
- PushString( aStr );
-}
-
-
-#include "sctictac.hxx"
-#include "scmod.hxx"
-
-//extern "C" { static void SAL_CALL thisModule() {} }
-
-void ScInterpreter::ScGame()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScGame" );
- enum GameType {
- SC_GAME_NONE,
- SC_GAME_ONCE,
- SC_GAME_START,
- SC_GAME_TICTACTOE = SC_GAME_START,
- SC_GAME_STARWARS,
- SC_GAME_FROGGER,
- SC_GAME_COUNT
- };
- // ein grep im binary laeuft ins leere
- static sal_Char sGameNone[] = "\14\36\6\137\10\27\36\13\100";
- static sal_Char sGameOnce[] = "\20\27\137\21\20\123\137\21\20\13\137\36\30\36\26\21\136";
- static sal_Char sGameTicTacToe[] = "\53\26\34\53\36\34\53\20\32";
- static sal_Char sGameStarWars[] = "\54\13\36\15\50\36\15\14";
- static sal_Char sGameFrogger[] = "\71\15\20\30\30\26\32";
- sal_Char* const pGames[SC_GAME_COUNT] = {
- sGameNone,
- sGameOnce,
- sGameTicTacToe,
- sGameStarWars,
- sGameFrogger
- };
-#if 0
-say what?
-oh no, not again!
-TicTacToe
-StarWars
-Froggie
-// Routine um Datenblock zu erzeugen:
-#include <stdio.h>
-int main()
-{
- int b = 1;
- int c;
- while ( (c = getchar()) != EOF )
- {
- if ( b == 1 )
- {
- printf( "\"" );
- b = 0;
- }
- if ( c != 10 )
- {
- c ^= 0x7F;
- printf( "\\%o", c );
-
- }
- else
- {
- printf( "\";\n" );
- b = 1;
- }
- }
- return 0;
-}
-#endif
- static BOOL bRun[SC_GAME_COUNT] = { FALSE };
- static BOOL bFirst = TRUE;
- if ( bFirst )
- {
- bFirst = FALSE;
- for ( int j = SC_GAME_NONE; j < SC_GAME_COUNT; j++ )
- {
- sal_Char* p = pGames[j];
- while ( *p )
- *p++ ^= 0x7F;
- }
- }
- String aFuncResult;
- GameType eGame = SC_GAME_NONE;
- BYTE nParamCount = GetByte();
- if ( nParamCount >= 1 )
- {
- String aStr( GetString() );
- nParamCount--;
- for ( int j = SC_GAME_START; j < SC_GAME_COUNT; j++ )
- {
- if ( aStr.EqualsAscii( pGames[j] ) )
- {
- eGame = (GameType) j;
- break; // for
- }
- }
- if ( eGame != SC_GAME_NONE )
- {
- // jedes Game nur ein einziges Mal starten, um nicht durch Recalc
- // o.ae. mehrere Instanzen zu haben, ideal waere eine Abfrage an den
- // Games, ob sie bereits laufen ...
- if ( bRun[ eGame ] && eGame != SC_GAME_TICTACTOE )
- eGame = SC_GAME_ONCE;
- else
- {
- bRun[ eGame ] = TRUE;
- switch ( eGame )
- {
- case SC_GAME_TICTACTOE :
- {
- static ScTicTacToe* pTicTacToe = NULL;
- static ScRange aTTTrange;
- static BOOL bHumanFirst = FALSE;
- if ( nParamCount >= 1 )
- {
- if ( GetStackType() == svDoubleRef )
- {
- ScRange aRange;
- PopDoubleRef( aRange );
- nParamCount--;
- if ( aRange.aEnd.Col() - aRange.aStart.Col() == 2
- && aRange.aEnd.Row() - aRange.aStart.Row() == 2 )
- {
- BOOL bOk;
- if ( pTicTacToe )
- bOk = (aRange == aTTTrange);
- else
- {
- bOk =TRUE;
- aTTTrange = aRange;
- pTicTacToe = new ScTicTacToe( pDok,
- aRange.aStart );
- pTicTacToe->Initialize( bHumanFirst );
- }
- // nur einmal und das auf dem gleichen Range
- if ( !bOk )
- eGame = SC_GAME_ONCE;
- else
- {
- Square_Type aWinner = pTicTacToe->CalcMove();
- pTicTacToe->GetOutput( aFuncResult );
- if ( aWinner != pTicTacToe->GetEmpty() )
- {
- delete pTicTacToe;
- pTicTacToe = NULL;
- bRun[ eGame ] = FALSE;
- bHumanFirst = !bHumanFirst;
- }
- pDok->GetDocumentShell()->Broadcast(
- SfxSimpleHint( FID_DATACHANGED ) );
- pDok->ResetChanged( aRange );
- }
- }
- else
- SetError( errIllegalArgument );
- }
- else
- SetError( errIllegalParameter );
- }
- else
- SetError( errIllegalParameter );
- }
- break;
- default:
- {
- // added to avoid warnings
- }
- }
- }
- }
- }
- // Stack aufraeumen
- while ( nParamCount-- > 0)
- Pop();
- if ( !aFuncResult.Len() )
- PushString( String( pGames[ eGame ], RTL_TEXTENCODING_ASCII_US ) );
- else
- PushString( aFuncResult );
-}
-
void ScInterpreter::ScTTT()
{ // Temporaerer Test-Tanz, zum auspropieren von Funktionen etc.
- BOOL bOk = TRUE;
BYTE nParamCount = GetByte();
// do something, nParamCount bei Pops runterzaehlen!
- if ( bOk && nParamCount )
- {
- bOk = GetBool();
- --nParamCount;
- }
// Stack aufraeumen
while ( nParamCount-- > 0)
Pop();
- static const sal_Unicode __FAR_DATA sEyes[] = { ',',';',':','|','8','B', 0 };
- static const sal_Unicode __FAR_DATA sGoods[] = { ')',']','}', 0 };
- static const sal_Unicode __FAR_DATA sBads[] = { '(','[','{','/', 0 };
- sal_Unicode aFace[4];
- if ( bOk )
- {
- aFace[0] = sEyes[ rand() % ((sizeof( sEyes )/sizeof(sal_Unicode)) - 1) ];
- aFace[1] = '-';
- aFace[2] = sGoods[ rand() % ((sizeof( sGoods )/sizeof(sal_Unicode)) - 1) ];
- }
- else
- {
- aFace[0] = ':';
- aFace[1] = '-';
- aFace[2] = sBads[ rand() % ((sizeof( sBads )/sizeof(sal_Unicode)) - 1) ];
- }
- aFace[3] = 0;
- PushStringBuffer( aFace );
+ PushError(errNoValue);
}
// -------------------------------------------------------------------------
@@ -3983,11 +3700,7 @@ StackVar ScInterpreter::Interpret()
case ocAsc : ScAsc(); break;
case ocUnicode : ScUnicode(); break;
case ocUnichar : ScUnichar(); break;
- case ocAnswer : ScAnswer(); break;
- case ocTeam : ScCalcTeam(); break;
case ocTTT : ScTTT(); break;
- case ocSpew : ScSpewFunc(); break;
- case ocGame : ScGame(); break;
case ocNone : nFuncFmtType = NUMBERFORMAT_UNDEFINED; break;
default : PushError( errUnknownOpCode); break;
}
diff --git a/sc/source/core/tool/makefile.mk b/sc/source/core/tool/makefile.mk
index 6c730f3a1743..c0258e6f0575 100644
--- a/sc/source/core/tool/makefile.mk
+++ b/sc/source/core/tool/makefile.mk
@@ -104,7 +104,6 @@ SLOFILES = \
$(SLO)$/reftokenhelper.obj \
$(SLO)$/refupdat.obj \
$(SLO)$/scmatrix.obj \
- $(SLO)$/sctictac.obj \
$(SLO)$/stringutil.obj \
$(SLO)$/subtotal.obj \
$(SLO)$/token.obj \
diff --git a/sc/source/core/tool/sctictac.cxx b/sc/source/core/tool/sctictac.cxx
deleted file mode 100644
index d784f45deb87..000000000000
--- a/sc/source/core/tool/sctictac.cxx
+++ /dev/null
@@ -1,551 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sc.hxx"
-
-/* Tic-Tac-Toe program by Steve Chapel schapel@cs.ucsb.edu
- Uses alpha-beta pruning minimax search to play a "perfect" game.
- The alpha-beta pruning can be removed, but will increase search time.
- The heuristic and move ordering in BestMove() can also be removed with
- an increase in search time. */
-
-#include <stdio.h>
-#include <ctype.h>
-
-
-#include "sctictac.hxx"
-
-#ifdef TICTACTOE_SC
-#include "document.hxx"
-#include "cell.hxx"
-#endif
-
-const Square_Type ScTicTacToe::Empty = ' ';
-const Square_Type ScTicTacToe::Human = 'X';
-const Square_Type ScTicTacToe::Compi = 'O';
-const int ScTicTacToe::Infinity = 10; /* Higher value than any score */
-const int ScTicTacToe::Maximum_Moves = ScTicTacToe_Squares; /* Maximum moves in a game */
-
-/* Array describing the eight combinations of three squares in a row */
-const int ScTicTacToe::Three_in_a_Row[ScTicTacToe_Possible_Wins][3] = {
- { 0, 1, 2 },
- { 3, 4, 5 },
- { 6, 7, 8 },
- { 0, 3, 6 },
- { 1, 4, 7 },
- { 2, 5, 8 },
- { 0, 4, 8 },
- { 2, 4, 6 }
-};
-
-/* Array used in heuristic formula for each move. */
-const int ScTicTacToe::Heuristic_Array[4][4] = {
- { 0, -10, -100, -1000 },
- { 10, 0, 0, 0 },
- { 100, 0, 0, 0 },
- { 1000, 0, 0, 0 }
-};
-
-
-#ifdef TICTACTOE_SC
-ScTicTacToe::ScTicTacToe( ScDocument* pDocP, const ScAddress& rPos ) :
- aPos( rPos ),
- pDoc( pDocP ),
- aStdOut( "Computer plays O, you play X. " ),
- bInitialized( FALSE )
-{
-}
-#else
-ScTicTacToe::ScTicTacToe() :
- bInitialized( FALSE ),
- aStdOut( "Computer plays O, you play X. " )
-{
-}
-#endif
-
-
-/* Return the other player */
-inline Square_Type ScTicTacToe::Other(Square_Type Player)
-{
- return Player == Human ? Compi : Human;
-}
-
-
-/* Make a move on the board */
-inline void ScTicTacToe::Play(int Square, Square_Type Player)
-{
- Board[Square] = Player;
-}
-
-
-#ifdef TICTACTOE_STDOUT
-
-void ScTicTacToe::GetOutput( ByteString& rStr )
-{
- rStr = aStdOut;
- aStdOut.Erase();
-}
-
-#else // !TICTACTOE_STDOUT
-
-void ScTicTacToe::GetOutput( String& rStr )
-{
- rStr = String( aStdOut, gsl_getSystemTextEncoding() );
- aStdOut.Erase();
-}
-
-#endif // TICTACTOE_STDOUT
-
-
-/* Clear the board */
-void ScTicTacToe::Initialize( BOOL bHumanFirst )
-{
- bInitialized = TRUE;
- aPlayer = (bHumanFirst ? Human : Compi);
- nMove = 1;
- for (int i = 0; i < ScTicTacToe_Squares; i++)
- Board[i] = Empty;
-}
-
-
-/* If a player has won, return the winner. If the game is a tie,
- return 'C' (for cat). If the game is not over, return Empty. */
-Square_Type ScTicTacToe::Winner()
-{
- int i;
- for (i = 0; i < ScTicTacToe_Possible_Wins; i++)
- {
- Square_Type Possible_Winner = Board[Three_in_a_Row[i][0]];
- if (Possible_Winner != Empty &&
- Possible_Winner == Board[Three_in_a_Row[i][1]] &&
- Possible_Winner == Board[Three_in_a_Row[i][2]])
- return Possible_Winner;
- }
-
- for (i = 0; i < ScTicTacToe_Squares; i++)
- {
- if (Board[i] == Empty)
- return Empty;
- }
-
- return 'C';
-}
-
-
-/* Return a heuristic used to determine the order in which the
- children of a node are searched */
-int ScTicTacToe::Evaluate(Square_Type Player)
-{
- int i;
- int Heuristic = 0;
- for (i = 0; i < ScTicTacToe_Possible_Wins; i++)
- {
- int j;
- int Players = 0, Others = 0;
- for (j = 0; j < 3; j++)
- {
- Square_Type Piece = Board[Three_in_a_Row[i][j]];
- if (Piece == Player)
- Players++;
- else if (Piece == Other(Player))
- Others++;
- }
- Heuristic += Heuristic_Array[Players][Others];
- }
- return Heuristic;
-}
-
-
-/* Return the score of the best move found for a board
- The square to move to is returned in *Square */
-int ScTicTacToe::BestMove(Square_Type Player, int *Square,
- int Move_Nbr, int Alpha, int Beta)
-{
- int Best_Square = -1;
- int Moves = 0;
- int i;
- Move_Heuristic_Type Move_Heuristic[ScTicTacToe_Squares];
-
- Total_Nodes++;
-
- /* Find the heuristic for each move and sort moves in descending order */
- for (i = 0; i < ScTicTacToe_Squares; i++)
- {
- if (Board[i] == Empty)
- {
- int Heuristic;
- int j;
- Play(i, Player);
- Heuristic = Evaluate(Player);
- Play(i, Empty);
- for (j = Moves-1; j >= 0 &&
- Move_Heuristic[j].Heuristic < Heuristic; j--)
- {
- Move_Heuristic[j + 1].Heuristic = Move_Heuristic[j].Heuristic;
- Move_Heuristic[j + 1].Square = Move_Heuristic[j].Square;
- }
- Move_Heuristic[j + 1].Heuristic = Heuristic;
- Move_Heuristic[j + 1].Square = i;
- Moves++;
- }
- }
-
- for (i = 0; i < Moves; i++)
- {
- int Score;
- int Sq = Move_Heuristic[i].Square;
- Square_Type W;
-
- /* Make a move and get its score */
- Play(Sq, Player);
-
- W = Winner();
- if (W == Compi)
- Score = (Maximum_Moves + 1) - Move_Nbr;
- else if (W == Human)
- Score = Move_Nbr - (Maximum_Moves + 1);
- else if (W == 'C')
- Score = 0;
- else
- Score = BestMove(Other(Player), Square, Move_Nbr + 1,
- Alpha, Beta);
-
- Play(Sq, Empty);
-
- /* Perform alpha-beta pruning */
- if (Player == Compi)
- {
- if (Score >= Beta)
- {
- *Square = Sq;
- return Score;
- }
- else if (Score > Alpha)
- {
- Alpha = Score;
- Best_Square = Sq;
- }
- }
- else
- {
- if (Score <= Alpha)
- {
- *Square = Sq;
- return Score;
- }
- else if (Score < Beta)
- {
- Beta = Score;
- Best_Square = Sq;
- }
- }
- }
- *Square = Best_Square;
- if (Player == Compi)
- return Alpha;
- else
- return Beta;
-}
-
-
-/* Provide an English description of the score returned by BestMove */
-void ScTicTacToe::Describe(int Score)
-{
- if (Score < 0)
- aStdOut += "You have a guaranteed win. ";
- else if (Score == 0)
- aStdOut += "I can guarantee a tie. ";
- else
- {
- aStdOut += "I have a guaranteed win by move ";
- aStdOut += ByteString::CreateFromInt32( Maximum_Moves - Score + 1 );
- aStdOut += ". ";
- }
-}
-
-
-/* Have the human or the computer move */
-void ScTicTacToe::Move( int& Square )
-{
- if (aPlayer == Compi)
- {
- Total_Nodes = 0;
- Describe(BestMove(aPlayer, &Square, nMove, -Infinity, Infinity));
- aStdOut += ByteString::CreateFromInt32( Total_Nodes );
- aStdOut += " nodes examined. ";
- Play(Square, aPlayer);
- aStdOut += "Move #";
- aStdOut += ByteString::CreateFromInt32( nMove );
- aStdOut += " - O moves to ";
- aStdOut += ByteString::CreateFromInt32( Square + 1 );
- aStdOut += ". ";
- aPlayer = Other( aPlayer );
- nMove++;
- }
- else
- {
- if ( Square < 0 || Square >= ScTicTacToe_Squares
- || Board[Square] != Empty )
- Square = -1;
- else
- {
- Play(Square, aPlayer);
- aPlayer = Other( aPlayer );
- nMove++;
- }
- }
-}
-
-
-// Try a move
-Square_Type ScTicTacToe::TryMove( int& Square )
-{
- if ( !bInitialized )
- Initialize( FALSE );
-
- Square_Type W = Winner();
- if ( W == Empty )
- {
- Move( Square );
-#ifdef TICTACTOE_STDOUT
- if ( aStdOut.Len() )
- {
- puts( aStdOut.GetBuffer() );
- aStdOut.Erase();
- }
-#endif
- W = Winner();
- }
- if ( W == Empty )
- {
- if ( aPlayer == Human )
- PromptHuman();
- }
- else
- {
- if (W != 'C')
- {
- aStdOut += static_cast< char >(W);
- aStdOut += " wins!";
- }
- else
- aStdOut += "It's a tie.";
- }
- return W;
-}
-
-
-void ScTicTacToe::PromptHuman()
-{
- aStdOut += "Move #";
- aStdOut += ByteString::CreateFromInt32( nMove );
- aStdOut += " - What is X's move?";
-}
-
-
-#ifdef TICTACTOE_SC
-
-void ScTicTacToe::DrawPos( int nSquare, const String& rStr )
-{
- pDoc->SetString( sal::static_int_cast<SCCOL>( aPos.Col()+(nSquare%3) ),
- sal::static_int_cast<SCROW>( aPos.Row()+(nSquare/3) ), aPos.Tab(), rStr );
-}
-
-
-void ScTicTacToe::DrawBoard()
-{
- String aStr;
- for ( USHORT j = 0; j < ScTicTacToe_Squares; j++ )
- {
- aStr = Board[j];
- DrawPos( j, aStr );
- }
-}
-
-
-// -1 == Fehler/Redraw, 0 == keine Aenderung, >0 == UserMoveSquare+1
-int ScTicTacToe::GetStatus()
-{
- SCCOL nCol;
- SCROW nRow;
- SCTAB nTab;
- nCol = aPos.Col();
- nRow = aPos.Row();
- nTab = aPos.Tab();
- String aStr;
- int nDiffs = 0;
- int nSquare = 0;
- for ( USHORT j = 0; j < ScTicTacToe_Squares; j++ )
- {
- pDoc->GetString( nCol+(j%3), nRow+(j/3), nTab, aStr );
- if ( !aStr.Len() )
- {
- if ( Board[j] != Empty )
- return -1; // wo was sein muss muss was sein
- }
- else
- {
- aStr.ToUpperAscii();
- if ( aStr.GetChar(0) != Board[j] )
- {
- if ( Board[j] != Empty )
- return -1; // bestehendes ueberschrieben
- // bei erstem Move hat Human angefangen
- if ( ++nDiffs > 1 )
- return -1; // mehr als eine Aenderung
- nSquare = j;
- }
- }
- }
- if ( nDiffs == 1 )
- return nSquare + 1;
- return 0;
-}
-
-
-Square_Type ScTicTacToe::CalcMove()
-{
- Square_Type W = Winner();
- int nStat = GetStatus();
- if ( nStat || (W == Empty && aPlayer == Compi) )
- {
- if ( nStat == -1 || (nStat > 0 && aPlayer == Compi) )
- DrawBoard();
- if ( W == Empty && aPlayer == Human )
- {
- if ( nStat > 0 )
- {
- int nSquare = --nStat;
- W = TryMove( nStat );
- if ( nStat == -1 )
- DrawPos( nSquare, String( ' ' ) );
- else
- DrawPos( nStat, String( Human ) );
- }
- else
- PromptHuman();
- }
- if ( W == Empty && aPlayer == Compi )
- {
- W = TryMove( nStat ); // ComputerMove, nStat egal
- DrawPos( nStat, String( Compi ) );
- }
- }
- else if ( W == Empty && aPlayer == Human )
- PromptHuman();
- return W;
-}
-
-#endif // TICTACTOE_SC
-
-
-#ifdef TICTACTOE_STDOUT
-/* Print the board */
-void ScTicTacToe::Print()
-{
- int i;
- for (i = 0; i < ScTicTacToe_Squares; i += 3)
- {
- if (i > 0)
- printf("---+---+---\n");
- printf(" %c | %c | %c \n", Board[i], Board[i + 1], Board[i + 2]);
- }
- printf("\n");
-}
-
-
-/* Play a game of tic-tac-toe */
-void ScTicTacToe::Game()
-{
- if ( !bInitialized )
- Initialize( FALSE );
-
- int Square = (aPlayer == Compi ? 0 : -1);
- Square_Type W = Winner();
- while( W == Empty )
- {
- Print();
- W = TryMove( Square );
- if ( W == Empty )
- {
- if ( aPlayer == Human )
- {
- if ( Square != -1 )
- Print(); // empty board already printed if human moves first
- do
- {
- puts( aStdOut.GetBuffer() );
- aStdOut.Erase();
- scanf("%d", &Square);
- Square--;
- W = TryMove( Square );
- } while ( Square == -1 );
- }
- }
- }
- Print();
- puts( aStdOut.GetBuffer() );
- aStdOut.Erase();
-}
-#endif // TICTACTOE_STDOUT
-
-
-#ifdef TICTACTOE_MAIN
-int main()
-{
- char Answer[80];
-
- printf("Welcome to Tic-Tac-Toe!\n\n");
- printf("Here is the board numbering:\n");
- printf(" 1 | 2 | 3\n");
- printf("---+---+---\n");
- printf(" 4 | 5 | 6\n");
- printf("---+---+---\n");
- printf(" 7 | 8 | 9\n");
- printf("\n");
-// printf("Computer plays X, you play O.\n");
-
- ScTicTacToe aTTT;
- ByteString aStr;
- aTTT.GetOutput( aStr );
- puts( aStr.GetBuffer() );
-
- do
- {
- printf("\nDo you want to move first? ");
- scanf("%s", Answer);
- aTTT.Initialize( toupper(Answer[0]) == 'Y' );
- aTTT.Game();
- printf("\nDo you want to play again? ");
- scanf("%s", Answer);
- } while (toupper(Answer[0]) == 'Y');
-
- return 0;
-}
-#endif // TICTACTOE_MAIN
-
diff --git a/sc/source/filter/html/htmlexp.cxx b/sc/source/filter/html/htmlexp.cxx
index e8c71d20af11..0ab97170621e 100644
--- a/sc/source/filter/html/htmlexp.cxx
+++ b/sc/source/filter/html/htmlexp.cxx
@@ -148,8 +148,6 @@ const sal_Char __FAR_DATA ScHTMLExport::sIndentSource[nIndentMax+1] =
#define OUT_SP_CSTR_ASS( s ) rStrm << ' ' << s << '='
#define APPEND_SPACE( s ) s.AppendAscii(" ")
-extern BOOL bOderSo;
-
#define GLOBSTR(id) ScGlobal::GetRscString( id )
@@ -234,30 +232,6 @@ void lcl_AppendHTMLColorTripel( ByteString& rStr, const Color& rColor )
}
*/
-bool SC_DLLPUBLIC ScGetWriteTeamInfo();
-
-void lcl_WriteTeamInfo( SvStream& rStrm, rtl_TextEncoding eDestEnc )
-{
- if ( !ScGetWriteTeamInfo() ) return;
- lcl_OUT_LF();
- lcl_OUT_COMMENT( CREATE_STRING( "Sascha Ballach " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Michael Daeumling (aka Bitsau) " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Michael Hagen " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Roland Jakobs " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Andreas Krebs " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "John Marmion " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Niklas Nebel " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Jacques Nietsch " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Marcus Olk " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Eike Rathke " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Daniel Rentz " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Stephan Templin " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Gunnar Timm " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "*** Man kann nicht ALLES haben! ***" ) );
- lcl_OUT_LF();
-}
-
-
//////////////////////////////////////////////////////////////////////////////
ScHTMLExport::ScHTMLExport( SvStream& rStrmP, const String& rBaseURL, ScDocument* pDocP,
@@ -416,8 +390,6 @@ void ScHTMLExport::WriteHeader()
OUT_COMMENT( aStrOut );
}
//----------------------------------------------------------
-
- lcl_WriteTeamInfo( rStrm, eDestEnc );
}
OUT_LF();
diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx
index 7b0652e7cce9..85e77fc3124b 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -2424,12 +2424,15 @@ void ScHTMLTable::InsertNewCell( const ScHTMLSize& rSpanSize )
{
ScRange* pRange;
- // find an unused cell
- while( (pRange = maVMergedCells.Find( maCurrCell.MakeAddr() )) != 0 )
+ /* Find an unused cell by skipping all merged ranges that cover the
+ current cell position stored in maCurrCell. */
+ while( ((pRange = maVMergedCells.Find( maCurrCell.MakeAddr() )) != 0) || ((pRange = maHMergedCells.Find( maCurrCell.MakeAddr() )) != 0) )
maCurrCell.mnCol = pRange->aEnd.Col() + 1;
mpCurrEntryList = &maEntryMap[ maCurrCell ];
- // try to find collisions, shrink existing ranges
+ /* If the new cell is merged horizontally, try to find collisions with
+ other vertically merged ranges. In this case, shrink existing
+ vertically merged ranges (do not shrink the new cell). */
SCCOL nColEnd = maCurrCell.mnCol + rSpanSize.mnCols;
for( ScAddress aAddr( maCurrCell.MakeAddr() ); aAddr.Col() < nColEnd; aAddr.IncCol() )
if( (pRange = maVMergedCells.Find( aAddr )) != 0 )
@@ -2438,14 +2441,19 @@ void ScHTMLTable::InsertNewCell( const ScHTMLSize& rSpanSize )
// insert the new range into the cell lists
ScRange aNewRange( maCurrCell.MakeAddr() );
aNewRange.aEnd.Move( rSpanSize.mnCols - 1, rSpanSize.mnRows - 1, 0 );
- if( rSpanSize.mnCols > 1 )
+ if( rSpanSize.mnRows > 1 )
{
maVMergedCells.Append( aNewRange );
+ /* Do not insert vertically merged ranges into maUsedCells yet,
+ because they may be shrunken (see above). The final vertically
+ merged ranges are inserted in FillEmptyCells(). */
}
else
{
- if( rSpanSize.mnRows > 1 )
+ if( rSpanSize.mnCols > 1 )
maHMergedCells.Append( aNewRange );
+ /* Insert horizontally merged ranges and single cells into
+ maUsedCells, they will not be changed anymore. */
maUsedCells.Join( aNewRange );
}
@@ -2592,6 +2600,7 @@ void ScHTMLTable::FillEmptyCells()
for( ScHTMLTableIterator aIter( mxNestedTables.get() ); aIter.is(); ++aIter )
aIter->FillEmptyCells();
+ // insert the final vertically merged ranges into maUsedCells
for( const ScRange* pRange = maVMergedCells.First(); pRange; pRange = maVMergedCells.Next() )
maUsedCells.Join( *pRange );
diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx
index d53f26a5e887..0b620e1d47d8 100644
--- a/sc/source/filter/xml/xmlexprt.cxx
+++ b/sc/source/filter/xml/xmlexprt.cxx
@@ -2618,13 +2618,20 @@ void ScXMLExport::_ExportAutoStyles()
GetShapeExport()->exportAutoStyles();
GetFormExport()->exportAutoStyles( );
+ if (pDoc)
{
- // Special table style for the external ref cache tables.
- AddAttribute(XML_NAMESPACE_STYLE, XML_NAME, sExternalRefTabStyleName);
- AddAttribute(XML_NAMESPACE_STYLE, XML_FAMILY, XML_TABLE);
- SvXMLElementExport aElemStyle(*this, XML_NAMESPACE_STYLE, XML_STYLE, sal_True, sal_True);
- AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY, XML_FALSE);
- SvXMLElementExport aElemStyleTabProps(*this, XML_NAMESPACE_STYLE, XML_TABLE_PROPERTIES, sal_True, sal_True);
+ ScExternalRefManager* pRefMgr = pDoc->GetExternalRefManager();
+ // #i100879# write the table style for cached tables only if there are cached tables
+ // (same logic as in ExportExternalRefCacheStyles)
+ if (pRefMgr->hasExternalData())
+ {
+ // Special table style for the external ref cache tables.
+ AddAttribute(XML_NAMESPACE_STYLE, XML_NAME, sExternalRefTabStyleName);
+ AddAttribute(XML_NAMESPACE_STYLE, XML_FAMILY, XML_TABLE);
+ SvXMLElementExport aElemStyle(*this, XML_NAMESPACE_STYLE, XML_STYLE, sal_True, sal_True);
+ AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY, XML_FALSE);
+ SvXMLElementExport aElemStyleTabProps(*this, XML_NAMESPACE_STYLE, XML_TABLE_PROPERTIES, sal_True, sal_True);
+ }
}
}
if (getExportFlags() & EXPORT_MASTERSTYLES)
@@ -3237,6 +3244,7 @@ void ScXMLExport::WriteAreaLink( const ScMyCell& rMyCell )
{
const ScMyAreaLink& rAreaLink = rMyCell.aAreaLink;
AddAttribute( XML_NAMESPACE_TABLE, XML_NAME, rAreaLink.sSourceStr );
+ AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, GetRelativeReference(rAreaLink.sURL) );
AddAttribute( XML_NAMESPACE_TABLE, XML_FILTER_NAME, rAreaLink.sFilter );
if( rAreaLink.sFilterOptions.getLength() )
@@ -3720,6 +3728,7 @@ void ScXMLExport::WriteTableSource()
xLinkProps->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_REFDELAY))) >>= nRefresh;
if (sLink.getLength())
{
+ AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE);
AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, GetRelativeReference(sLink));
if (sTableName.getLength())
AddAttribute(XML_NAMESPACE_TABLE, XML_TABLE_NAME, sTableName);
@@ -3958,6 +3967,7 @@ void ScXMLExport::WriteExternalRefCaches()
aRelUrl = pExtFileData->maRelativeName;
else
aRelUrl = GetRelativeReference(pExtFileData->maRelativeName);
+ AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE);
AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, aRelUrl);
AddAttribute(XML_NAMESPACE_TABLE, XML_TABLE_NAME, *itr);
if (pExtFileData->maFilterName.Len())
@@ -3987,6 +3997,14 @@ void ScXMLExport::WriteExternalRefCaches()
}
}
+ // Column definitions have to be present to make a valid file
+ {
+ if (nMaxColsUsed > 1)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_NUMBER_COLUMNS_REPEATED,
+ OUString::valueOf(static_cast<sal_Int32>(nMaxColsUsed)));
+ SvXMLElementExport aElemColumn(*this, XML_NAMESPACE_TABLE, XML_TABLE_COLUMN, sal_True, sal_True);
+ }
+
// Write cache content for this table.
SCROW nLastRow = 0;
bool bFirstRow = true;
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 40b65ce401ad..28f178565da0 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -429,7 +429,9 @@ ScInputHandler::ScInputHandler()
pColumnData( NULL ),
pFormulaData( NULL ),
pFormulaDataPara( NULL ),
+ pTipVisibleParent( NULL ),
nTipVisible( 0 ),
+ pTipVisibleSecParent( NULL ),
nTipVisibleSec( 0 ),
nAutoPos( SCPOS_INVALID ),
bUseTab( FALSE ),
@@ -691,12 +693,29 @@ void ScInputHandler::GetFormulaData()
}
}
+IMPL_LINK( ScInputHandler, ShowHideTipVisibleParentListener, VclWindowEvent*, pEvent )
+{
+ if( pEvent->GetId() == VCLEVENT_OBJECT_DYING || pEvent->GetId() == VCLEVENT_WINDOW_HIDE )
+ HideTip();
+ return 0;
+}
+
+IMPL_LINK( ScInputHandler, ShowHideTipVisibleSecParentListener, VclWindowEvent*, pEvent )
+{
+ if( pEvent->GetId() == VCLEVENT_OBJECT_DYING || pEvent->GetId() == VCLEVENT_WINDOW_HIDE )
+ HideTipBelow();
+ return 0;
+}
+
void ScInputHandler::HideTip()
{
if ( nTipVisible )
{
+ if (pTipVisibleParent)
+ pTipVisibleParent->RemoveEventListener( LINK( this, ScInputHandler, ShowHideTipVisibleParentListener ) );
Help::HideTip( nTipVisible );
nTipVisible = 0;
+ pTipVisibleParent = NULL;
}
aManualTip.Erase();
}
@@ -704,8 +723,11 @@ void ScInputHandler::HideTipBelow()
{
if ( nTipVisibleSec )
{
+ if (pTipVisibleSecParent)
+ pTipVisibleSecParent->RemoveEventListener( LINK( this, ScInputHandler, ShowHideTipVisibleSecParentListener ) );
Help::HideTip( nTipVisibleSec );
nTipVisibleSec = 0;
+ pTipVisibleSecParent = NULL;
}
aManualTip.Erase();
}
@@ -897,15 +919,16 @@ void ScInputHandler::ShowTip( const String& rText )
if (pActiveView)
{
Point aPos;
- Window* pWin = pActiveView->GetWindow();
+ pTipVisibleParent = pActiveView->GetWindow();
Cursor* pCur = pActiveView->GetCursor();
if (pCur)
- aPos = pWin->LogicToPixel( pCur->GetPos() );
- aPos = pWin->OutputToScreenPixel( aPos );
+ aPos = pTipVisibleParent->LogicToPixel( pCur->GetPos() );
+ aPos = pTipVisibleParent->OutputToScreenPixel( aPos );
Rectangle aRect( aPos, aPos );
USHORT nAlign = QUICKHELP_LEFT|QUICKHELP_BOTTOM;
- nTipVisible = Help::ShowTip(pWin, aRect, rText, nAlign);
+ nTipVisible = Help::ShowTip(pTipVisibleParent, aRect, rText, nAlign);
+ pTipVisibleParent->AddEventListener( LINK( this, ScInputHandler, ShowHideTipVisibleParentListener ) );
}
}
@@ -917,18 +940,19 @@ void ScInputHandler::ShowTipBelow( const String& rText )
if ( pActiveView )
{
Point aPos;
- Window* pWin = pActiveView->GetWindow();
+ pTipVisibleSecParent = pActiveView->GetWindow();
Cursor* pCur = pActiveView->GetCursor();
if ( pCur )
{
Point aLogicPos = pCur->GetPos();
aLogicPos.Y() += pCur->GetHeight();
- aPos = pWin->LogicToPixel( aLogicPos );
+ aPos = pTipVisibleSecParent->LogicToPixel( aLogicPos );
}
- aPos = pWin->OutputToScreenPixel( aPos );
+ aPos = pTipVisibleSecParent->OutputToScreenPixel( aPos );
Rectangle aRect( aPos, aPos );
USHORT nAlign = QUICKHELP_LEFT | QUICKHELP_TOP;
- nTipVisibleSec = Help::ShowTip(pWin, aRect, rText, nAlign);
+ nTipVisibleSec = Help::ShowTip(pTipVisibleSecParent, aRect, rText, nAlign);
+ pTipVisibleSecParent->AddEventListener( LINK( this, ScInputHandler, ShowHideTipVisibleSecParentListener ) );
}
}
@@ -2690,6 +2714,7 @@ void ScInputHandler::EnterHandler( BYTE nBlockMode )
delete pObject;
HideTip();
+ HideTipBelow();
nFormSelStart = nFormSelEnd = 0;
aFormText.Erase();
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index dc5d1010dfc8..94e18def8a11 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -98,7 +98,6 @@
#include "msgpool.hxx"
#include "scresid.hxx"
#include "anyrefdg.hxx"
-#include "teamdlg.hxx"
#include "dwfunctr.hxx"
#include "formdata.hxx"
//CHINA001 #include "tpview.hxx"
@@ -142,7 +141,6 @@ ScModule::ScModule( SfxObjectFactory* pFact ) :
pSelTransfer( NULL ),
pMessagePool( NULL ),
pRefInputHandler( NULL ),
- pTeamDlg( NULL ),
pViewCfg( NULL ),
pDocCfg( NULL ),
pAppCfg( NULL ),
@@ -1507,11 +1505,6 @@ void ScModule::ViewShellGone( ScTabViewShell* pViewSh )
ScInputHandler* pHdl = GetInputHdl();
if (pHdl)
pHdl->ViewShellGone( pViewSh );
-
- // Team dialog is opened with the window from a view as parent
- // -> close it if any view is closed
- if (pTeamDlg)
- pTeamDlg->Close(); // resets variable pTeamDlg
}
void ScModule::SetRefInputHdl( ScInputHandler* pNew )
@@ -1635,21 +1628,6 @@ void ScModule::SetRefDialog( USHORT nId, BOOL bVis, SfxViewFrame* pViewFrm )
}
}
-void ScModule::OpenTeamDlg()
-{
- if ( !pTeamDlg )
- {
- // team dialog needs an existing parent window
- // -> use window from active view (dialog is closed in ViewShellGone)
-
- ScTabViewShell* pShell = ScTabViewShell::GetActiveViewShell();
- if (pShell)
- pTeamDlg = new ScTeamDlg( pShell->GetActiveWin() );
- }
- else
- pTeamDlg->Center();
-}
-
SfxChildWindow* lcl_GetChildWinFromAnyView( USHORT nId )
{
// first try the current view
diff --git a/sc/source/ui/docshell/docsh8.cxx b/sc/source/ui/docshell/docsh8.cxx
index b761dd75d9df..cb9d625da70c 100644
--- a/sc/source/ui/docshell/docsh8.cxx
+++ b/sc/source/ui/docshell/docsh8.cxx
@@ -597,7 +597,7 @@ void lcl_GetColumnTypes( ScDocShell& rDocShell,
else if ( nDbType == sdbc::DataType::DECIMAL )
{ // maximale Feldbreite und Nachkommastellen bestimmen
xub_StrLen nLen;
- USHORT nPrec;
+ sal_uInt16 nPrec;
nLen = pDoc->GetMaxNumberStringLen( nPrec, nTab, nCol,
nFirstDataRow, nLastRow );
// dBaseIII Limit Nachkommastellen: 15
diff --git a/sc/source/ui/docshell/tablink.cxx b/sc/source/ui/docshell/tablink.cxx
index 4d18f9f18c37..697b39052b9f 100644
--- a/sc/source/ui/docshell/tablink.cxx
+++ b/sc/source/ui/docshell/tablink.cxx
@@ -485,6 +485,11 @@ BOOL ScDocumentLoader::GetFilterName( const String& rFileName,
pDocSh = SfxObjectShell::GetNext( *pDocSh, &aScType );
}
+ INetURLObject aUrl( rFileName );
+ INetProtocol eProt = aUrl.GetProtocol();
+ if ( eProt == INET_PROT_NOT_VALID ) // invalid URL?
+ return FALSE; // abort without creating a medium
+
// Filter-Detection
const SfxFilter* pSfxFilter = NULL;
diff --git a/sc/source/ui/inc/inputhdl.hxx b/sc/source/ui/inc/inputhdl.hxx
index bcc5ba0dd396..61974cf7464d 100644
--- a/sc/source/ui/inc/inputhdl.hxx
+++ b/sc/source/ui/inc/inputhdl.hxx
@@ -68,7 +68,9 @@ private:
TypedScStrCollection* pColumnData;
TypedScStrCollection* pFormulaData;
TypedScStrCollection* pFormulaDataPara;
+ Window* pTipVisibleParent;
ULONG nTipVisible;
+ Window* pTipVisibleSecParent;
ULONG nTipVisibleSec;
String aManualTip;
String aAutoSearch;
@@ -149,6 +151,8 @@ private:
BOOL CursorAtClosingPar();
void SkipClosingPar();
DECL_LINK( ModifyHdl, void* );
+ DECL_LINK( ShowHideTipVisibleParentListener, VclWindowEvent* );
+ DECL_LINK( ShowHideTipVisibleSecParentListener, VclWindowEvent* );
#endif
public:
diff --git a/sc/source/ui/inc/optdlg.hrc b/sc/source/ui/inc/optdlg.hrc
index 00cfdb2c6d5a..27b8976e3541 100644
--- a/sc/source/ui/inc/optdlg.hrc
+++ b/sc/source/ui/inc/optdlg.hrc
@@ -70,6 +70,7 @@
#define BTN_MATCH 18
#define BTN_LOOKUP 19
#define BTN_REGEX 20
+#define BTN_GENERAL_PREC 21
// TP_VIEW:
#define BTN_VSCROLL 1
diff --git a/sc/source/ui/inc/output.hxx b/sc/source/ui/inc/output.hxx
index 8d512898afd3..42844513af92 100644
--- a/sc/source/ui/inc/output.hxx
+++ b/sc/source/ui/inc/output.hxx
@@ -73,6 +73,15 @@ class ScOutputData
{
friend class ScDrawStringsVars;
private:
+ struct OutputAreaParam
+ {
+ Rectangle maAlignRect;
+ Rectangle maClipRect;
+ long mnColWidth;
+ bool mbLeftClip;
+ bool mbRightClip;
+ };
+
OutputDevice* pDev; // Device
OutputDevice* pRefDevice; // printer if used for preview
OutputDevice* pFmtDevice; // reference for text formatting
@@ -152,19 +161,19 @@ private:
void GetVisibleCell( SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell*& rpCell );
BOOL IsAvailable( SCCOL nX, SCROW nY );
+
void GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY,
- SCCOL nCellX, SCROW nCellY, long nNeeded,
- const ScPatternAttr& rPattern,
- USHORT nHorJustify, BOOL bCellIsValue,
- BOOL bBreak, BOOL bOverwrite,
- Rectangle& rAlignRect, Rectangle& rClipRect,
- BOOL& rLeftClip, BOOL& rRightClip );
+ SCCOL nCellX, SCROW nCellY, long nNeeded,
+ const ScPatternAttr& rPattern,
+ USHORT nHorJustify, bool bCellIsValue,
+ bool bBreak, bool bOverwrite,
+ OutputAreaParam& rParam );
void ShrinkEditEngine( EditEngine& rEngine, const Rectangle& rAlignRect,
long nLeftM, long nTopM, long nRightM, long nBottomM,
BOOL bWidth, USHORT nOrient, long nAttrRotate, BOOL bPixelToLogic,
long& rEngineWidth, long& rEngineHeight, long& rNeededPixel,
- BOOL& rLeftClip, BOOL& rRightClip );
+ bool& rLeftClip, bool& rRightClip );
void SetSyntaxColor( Font* pFont, ScBaseCell* pCell );
void SetEditSyntaxColor( EditEngine& rEngine, ScBaseCell* pCell );
diff --git a/sc/source/ui/inc/tpcalc.hxx b/sc/source/ui/inc/tpcalc.hxx
index ea9e53a23ee4..31f2c9458c83 100644
--- a/sc/source/ui/inc/tpcalc.hxx
+++ b/sc/source/ui/inc/tpcalc.hxx
@@ -76,6 +76,7 @@ private:
CheckBox aBtnMatch;
CheckBox aBtnRegex;
CheckBox aBtnLookUp;
+ CheckBox aBtnGeneralPrec;
FixedText aFtPrec;
NumericField aEdPrec;
diff --git a/sc/source/ui/miscdlgs/autofmt.cxx b/sc/source/ui/miscdlgs/autofmt.cxx
index 940856775c07..6ce65ab914be 100644
--- a/sc/source/ui/miscdlgs/autofmt.cxx
+++ b/sc/source/ui/miscdlgs/autofmt.cxx
@@ -68,8 +68,6 @@
#define FRAME_OFFSET 4
-BOOL bIsOlk = FALSE;
-
//CHINA001 //========================================================================
//CHINA001 // AutoFormat-Dialog:
@@ -508,8 +506,6 @@ ScAutoFmtPreview::ScAutoFmtPreview( Window* pParent, const ResId& rRes, ScDocume
pNumFmt ( new SvNumberFormatter( ::comphelper::getProcessServiceFactory(), ScGlobal::eLnge ) )
{
Init();
- if( bIsOlk )
- ((String&)aStrMar).AssignAscii(RTL_CONSTASCII_STRINGPARAM( "Olk" ));
}
//------------------------------------------------------------------------
diff --git a/sc/source/ui/miscdlgs/makefile.mk b/sc/source/ui/miscdlgs/makefile.mk
index 9f5bb1dbc498..ac210bcfaa83 100644
--- a/sc/source/ui/miscdlgs/makefile.mk
+++ b/sc/source/ui/miscdlgs/makefile.mk
@@ -60,7 +60,6 @@ SLOFILES = \
$(SLO)$/crdlg.obj \
$(SLO)$/namecrea.obj \
$(SLO)$/namepast.obj \
- $(SLO)$/teamdlg.obj \
$(SLO)$/textdlgs.obj \
$(SLO)$/anyrefdg.obj \
$(SLO)$/crnrdlg.obj \
@@ -109,7 +108,6 @@ LIB1OBJFILES = \
$(SLO)$/solveroptions.obj \
$(SLO)$/solverutil.obj \
$(SLO)$/tabopdlg.obj \
- $(SLO)$/teamdlg.obj \
$(SLO)$/anyrefdg.obj \
$(SLO)$/crnrdlg.obj \
$(SLO)$/acredlin.obj \
diff --git a/sc/source/ui/miscdlgs/teamdlg.cxx b/sc/source/ui/miscdlgs/teamdlg.cxx
deleted file mode 100644
index a9f1bf2a17cf..000000000000
--- a/sc/source/ui/miscdlgs/teamdlg.cxx
+++ /dev/null
@@ -1,116 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sc.hxx"
-
-
-
-//------------------------------------------------------------------
-
-#include <tools/shl.hxx>
-
-#include "teamdlg.hxx"
-#include "scmod.hxx"
-#include "scresid.hxx"
-#include "sc.hrc"
-
-
-//------------------------------------------------------------------
-
-void ShowTheTeam()
-{
- SC_MOD()->OpenTeamDlg();
-}
-
-//========================================================================
-// ScTeamDlg
-//========================================================================
-
-ScTeamDlg::ScTeamDlg( Window* pParent )
- : FloatingWindow( pParent, ScResId( RID_SCDLG_TEAM ) ),
- aBmpTeam ( this, ScResId( 1 ) )
-{
- FreeResource();
- SC_MOD()->SetTeamDlg( this );
-
- Bitmap aBmp( ScResId( RID_SCTEAMDLGBMP1 ) );
-
- Size aSize = aBmp.GetSizePixel();
- USHORT nOff = (USHORT)aBmpTeam.GetPosPixel().X();
-
- aBmpTeam.SetSizePixel( aSize );
- aBmpTeam.SetBitmap( aBmp );
- aSize.Width() += (2*nOff);
- aSize.Height() += (2*nOff);
- SetOutputSizePixel( aSize );
- Center();
- Point aPos = GetPosPixel();
- if (aPos.Y() < 0)
- {
- // #87164# title bar must be visible
- aPos.Y() = 0;
- SetPosPixel(aPos);
- }
- Show();
-}
-
-//------------------------------------------------------------------------
-
-__EXPORT ScTeamDlg::~ScTeamDlg()
-{
-}
-
-//------------------------------------------------------------------------
-
-BOOL __EXPORT ScTeamDlg::Close()
-{
- BOOL bReturn = FloatingWindow::Close();
-
- SC_MOD()->SetTeamDlg( NULL );
- delete this;
-
- return bReturn;
-}
-
-//------------------------------------------------------------------------
-
-void ScTeamDlg::Center()
-{
- if ( IsRollUp() ) RollDown();
-
- Size aSizeDesktop = GetParent()->GetSizePixel();
- Size aSize = GetSizePixel();
- Point aNewPos;
-
- aNewPos.X() = (aSizeDesktop.Width() - aSize.Width()) / 2;
- aNewPos.Y() = (aSizeDesktop.Height() - aSize.Height()) / 2;
- SetPosPixel( aNewPos );
-}
-
-
-
diff --git a/sc/source/ui/optdlg/tpcalc.cxx b/sc/source/ui/optdlg/tpcalc.cxx
index c6423ea73b23..5b5920e904fc 100644
--- a/sc/source/ui/optdlg/tpcalc.cxx
+++ b/sc/source/ui/optdlg/tpcalc.cxx
@@ -88,6 +88,7 @@ ScTpCalcOptions::ScTpCalcOptions( Window* pParent,
aBtnMatch ( this, ScResId( BTN_MATCH ) ),
aBtnRegex ( this, ScResId( BTN_REGEX ) ),
aBtnLookUp ( this, ScResId( BTN_LOOKUP ) ),
+ aBtnGeneralPrec ( this, ScResId( BTN_GENERAL_PREC ) ),
aFtPrec ( this, ScResId( FT_PREC ) ),
aEdPrec ( this, ScResId( ED_PREC ) ),
pOldOptions ( new ScDocOptions(
@@ -116,6 +117,7 @@ __EXPORT ScTpCalcOptions::~ScTpCalcOptions()
void ScTpCalcOptions::Init()
{
aBtnIterate .SetClickHdl( LINK( this, ScTpCalcOptions, CheckClickHdl ) );
+ aBtnGeneralPrec.SetClickHdl( LINK(this, ScTpCalcOptions, CheckClickHdl) );
aBtnDateStd .SetClickHdl( LINK( this, ScTpCalcOptions, RadioClickHdl ) );
aBtnDateSc10.SetClickHdl( LINK( this, ScTpCalcOptions, RadioClickHdl ) );
aBtnDate1904.SetClickHdl( LINK( this, ScTpCalcOptions, RadioClickHdl ) );
@@ -150,7 +152,6 @@ void __EXPORT ScTpCalcOptions::Reset( const SfxItemSet& /* rCoreAttrs */ )
aBtnLookUp .Check( pLocalOptions->IsLookUpColRowNames() );
aBtnIterate.Check( pLocalOptions->IsIter() );
aEdSteps .SetValue( pLocalOptions->GetIterCount() );
- aEdPrec .SetValue( pLocalOptions->GetStdPrecision() );
aEdEps .SetValue( pLocalOptions->GetIterEps(), 6 );
pLocalOptions->GetDate( d, m, y );
@@ -168,6 +169,21 @@ void __EXPORT ScTpCalcOptions::Reset( const SfxItemSet& /* rCoreAttrs */ )
break;
}
+ sal_uInt16 nPrec = pLocalOptions->GetStdPrecision();
+ if (nPrec == SvNumberFormatter::UNLIMITED_PRECISION)
+ {
+ aFtPrec.Disable();
+ aEdPrec.Disable();
+ aBtnGeneralPrec.Check(false);
+ }
+ else
+ {
+ aBtnGeneralPrec.Check();
+ aFtPrec.Enable();
+ aEdPrec.Enable();
+ aEdPrec.SetValue(nPrec);
+ }
+
CheckClickHdl( &aBtnIterate );
}
@@ -178,13 +194,18 @@ BOOL __EXPORT ScTpCalcOptions::FillItemSet( SfxItemSet& rCoreAttrs )
{
// alle weiteren Optionen werden in den Handlern aktualisiert
pLocalOptions->SetIterCount( (USHORT)aEdSteps.GetValue() );
- pLocalOptions->SetStdPrecision( (USHORT)aEdPrec.GetValue() );
pLocalOptions->SetIgnoreCase( !aBtnCase.IsChecked() );
pLocalOptions->SetCalcAsShown( aBtnCalc.IsChecked() );
pLocalOptions->SetMatchWholeCell( aBtnMatch.IsChecked() );
pLocalOptions->SetFormulaRegexEnabled( aBtnRegex.IsChecked() );
pLocalOptions->SetLookUpColRowNames( aBtnLookUp.IsChecked() );
+ if (aBtnGeneralPrec.IsChecked())
+ pLocalOptions->SetStdPrecision(
+ static_cast<sal_uInt16>(aEdPrec.GetValue()) );
+ else
+ pLocalOptions->SetStdPrecision( SvNumberFormatter::UNLIMITED_PRECISION );
+
if ( *pLocalOptions != *pOldOptions )
{
rCoreAttrs.Put( ScTpCalcItem( nWhichCalc, *pLocalOptions ) );
@@ -245,19 +266,35 @@ IMPL_LINK( ScTpCalcOptions, RadioClickHdl, RadioButton*, pBtn )
//-----------------------------------------------------------------------
-IMPL_LINK( ScTpCalcOptions, CheckClickHdl, CheckBox*, pBtn )
+IMPL_LINK( ScTpCalcOptions, CheckClickHdl, CheckBox*, pBtn )
{
- if ( pBtn->IsChecked() )
+ if (pBtn == &aBtnGeneralPrec)
{
- pLocalOptions->SetIter( TRUE );
- aFtSteps.Enable(); aEdSteps.Enable();
- aFtEps .Enable(); aEdEps .Enable();
+ if (pBtn->IsChecked())
+ {
+ aEdPrec.Enable();
+ aFtPrec.Enable();
+ }
+ else
+ {
+ aEdPrec.Disable();
+ aFtPrec.Disable();
+ }
}
- else
+ else if (pBtn == &aBtnIterate)
{
- pLocalOptions->SetIter( FALSE );
- aFtSteps.Disable(); aEdSteps.Disable();
- aFtEps .Disable(); aEdEps .Disable();
+ if ( pBtn->IsChecked() )
+ {
+ pLocalOptions->SetIter( TRUE );
+ aFtSteps.Enable(); aEdSteps.Enable();
+ aFtEps .Enable(); aEdEps .Enable();
+ }
+ else
+ {
+ pLocalOptions->SetIter( FALSE );
+ aFtSteps.Disable(); aEdSteps.Disable();
+ aFtEps .Disable(); aEdEps .Disable();
+ }
}
return 0;
diff --git a/sc/source/ui/src/globstr.src b/sc/source/ui/src/globstr.src
index 1cc66ca13af6..bbf20c436065 100644
--- a/sc/source/ui/src/globstr.src
+++ b/sc/source/ui/src/globstr.src
@@ -927,10 +927,6 @@ Resource RID_GLOBSTR
/* END error constants and error strings. */
- String STR_ODER_SO
- {
- Text [ en-US ] = "%s or similar" ;
- };
String STR_GRIDCOLOR
{
Text [ en-US ] = "Grid color" ;
diff --git a/sc/source/ui/src/miscdlgs.src b/sc/source/ui/src/miscdlgs.src
index 8c9279a602c1..06a19af7a8a7 100644
--- a/sc/source/ui/src/miscdlgs.src
+++ b/sc/source/ui/src/miscdlgs.src
@@ -154,11 +154,6 @@ ModalDialog RID_SCDLG_INSCELL
};
};
-Bitmap RID_SCTEAMDLGBMP1
-{
- File = "calcteam.bmp";
-};
-
ModalDialog RID_SCDLG_DELCONT
{
OutputSize = TRUE ;
@@ -1331,18 +1326,6 @@ ModalDialog RID_SCDLG_NAMES_PASTE
Text [ en-US ] = "Insert Name" ;
};
-FloatingWindow RID_SCDLG_TEAM
-{
- Hide = TRUE ;
- OutputSize = TRUE ;
- SVLook = TRUE ;
- Moveable = TRUE ;
- Closeable = TRUE ;
- Zoomable = TRUE ;
- FixedBitmap 1 { Pos = MAP_APPFONT ( 1 , 1 ) ; };
- Text [ en-US ] = "The %PRODUCTNAME Calc Team" ;
-};
-
ModalDialog RID_SCDLG_CHARTCOLROW
{
OutputSize = TRUE ;
diff --git a/sc/source/ui/src/optdlg.src b/sc/source/ui/src/optdlg.src
index 856463e27e40..ea7cabf7716d 100644
--- a/sc/source/ui/src/optdlg.src
+++ b/sc/source/ui/src/optdlg.src
@@ -119,22 +119,6 @@ TabPage RID_SCPAGE_CALC
Pos = MAP_APPFONT ( 6 , 64 ) ;
Size = MAP_APPFONT ( 248 , 8 ) ;
};
- FixedText FT_PREC
- {
- Pos = MAP_APPFONT ( 150 , 77 ) ;
- Size = MAP_APPFONT ( 72 , 8 ) ;
- Text [ en-US ] = "~Decimal places" ;
- Right = TRUE ;
- };
- NumericField ED_PREC
- {
- Border = TRUE ;
- Pos = MAP_APPFONT ( 226 , 75 ) ;
- Size = MAP_APPFONT ( 25 , 12 ) ;
- Maximum = 20 ;
- Spin = TRUE ;
- Repeat = TRUE ;
- };
CheckBox BTN_CASE
{
Pos = MAP_APPFONT ( 12 , 77 ) ;
@@ -165,6 +149,28 @@ TabPage RID_SCPAGE_CALC
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "~Automatically find column and row labels " ;
};
+ CheckBox BTN_GENERAL_PREC
+ {
+ Pos = MAP_APPFONT ( 12 , 147 ) ;
+ Size = MAP_APPFONT ( 136 , 10 ) ;
+ Text [ en-US ] = "Limit decimals for general number format" ;
+ };
+ FixedText FT_PREC
+ {
+ Pos = MAP_APPFONT ( 150 , 148 ) ;
+ Size = MAP_APPFONT ( 72 , 8 ) ;
+ Text [ en-US ] = "~Decimal places" ;
+ Right = TRUE ;
+ };
+ NumericField ED_PREC
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 226 , 146 ) ;
+ Size = MAP_APPFONT ( 25 , 12 ) ;
+ Maximum = 20 ;
+ Spin = TRUE ;
+ Repeat = TRUE ;
+ };
};
/**************************************************************************/
diff --git a/sc/source/ui/unoobj/defltuno.cxx b/sc/source/ui/unoobj/defltuno.cxx
index 141a7d0abb73..f3f76685e5cb 100644
--- a/sc/source/ui/unoobj/defltuno.cxx
+++ b/sc/source/ui/unoobj/defltuno.cxx
@@ -46,6 +46,8 @@
#include "unonames.hxx"
#include "docoptio.hxx"
+#include <limits>
+
using namespace ::com::sun::star;
//------------------------------------------------------------------------
@@ -157,7 +159,7 @@ void SAL_CALL ScDocDefaultsObj::setPropertyValue(
sal_Int16 nValue = 0;
if (aValue >>= nValue)
{
- aDocOpt.SetStdPrecision(static_cast<sal_uInt8> (nValue));
+ aDocOpt.SetStdPrecision(static_cast<sal_uInt16> (nValue));
pDoc->SetDocOptions(aDocOpt);
}
}
@@ -250,7 +252,12 @@ uno::Any SAL_CALL ScDocDefaultsObj::getPropertyValue( const rtl::OUString& aProp
if (pDoc)
{
const ScDocOptions& aDocOpt = pDoc->GetDocOptions();
- aRet <<= static_cast<sal_Int16> (aDocOpt.GetStdPrecision());
+ sal_uInt16 nPrec = aDocOpt.GetStdPrecision();
+ // the max value of unsigned 16-bit integer is used as the flag
+ // value for unlimited precision, c.f.
+ // SvNumberFormatter::UNLIMITED_PRECISION.
+ if (nPrec <= ::std::numeric_limits<sal_Int16>::max())
+ aRet <<= static_cast<sal_Int16> (nPrec);
}
else
throw uno::RuntimeException();
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index e67103cf75e5..d9fb4d53e634 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -1040,18 +1040,21 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScModelObj::getRenderer( sal_Int32
Size aTwips = aFunc.GetPageSize();
awt::Size aPageSize( TwipsToHMM( aTwips.Width() ), TwipsToHMM( aTwips.Height() ) );
- long nPropCount = bWasCellRange ? 2 : 1;
+ long nPropCount = bWasCellRange ? 3 : 2;
uno::Sequence<beans::PropertyValue> aSequence(nPropCount);
beans::PropertyValue* pArray = aSequence.getArray();
pArray[0].Name = rtl::OUString::createFromAscii( SC_UNONAME_PAGESIZE );
pArray[0].Value <<= aPageSize;
+ // #i111158# all positions are relative to the whole page, including non-printable area
+ pArray[1].Name = rtl::OUString::createFromAscii( SC_UNONAME_INC_NP_AREA );
+ pArray[1].Value = uno::makeAny( sal_True );
if ( bWasCellRange )
{
table::CellRangeAddress aRangeAddress( nTab,
aCellRange.aStart.Col(), aCellRange.aStart.Row(),
aCellRange.aEnd.Col(), aCellRange.aEnd.Row() );
- pArray[1].Name = rtl::OUString::createFromAscii( SC_UNONAME_SOURCERANGE );
- pArray[1].Value <<= aRangeAddress;
+ pArray[2].Name = rtl::OUString::createFromAscii( SC_UNONAME_SOURCERANGE );
+ pArray[2].Value <<= aRangeAddress;
}
#if 0
diff --git a/sc/source/ui/unoobj/filtuno.cxx b/sc/source/ui/unoobj/filtuno.cxx
index 8591f2fc0801..efe804784a40 100644
--- a/sc/source/ui/unoobj/filtuno.cxx
+++ b/sc/source/ui/unoobj/filtuno.cxx
@@ -185,7 +185,9 @@ sal_Int16 SAL_CALL ScFilterOptionsObj::execute() throw(uno::RuntimeException)
}
else if ( aFilterString == ScDocShell::GetWebQueryFilterName() || aFilterString == ScDocShell::GetHtmlFilterName() )
{
- if (!bExport)
+ if (bExport)
+ nRet = ui::dialogs::ExecutableDialogResults::OK; // export HTML without dialog
+ else
{
// HTML import.
::std::auto_ptr<AbstractScTextImportOptionsDlg> pDlg(
diff --git a/sc/source/ui/unoobj/nameuno.cxx b/sc/source/ui/unoobj/nameuno.cxx
index 474d07764127..75686df460d6 100644
--- a/sc/source/ui/unoobj/nameuno.cxx
+++ b/sc/source/ui/unoobj/nameuno.cxx
@@ -340,7 +340,7 @@ uno::Reference<table::XCellRange> SAL_CALL ScNamedRangeObj::getReferredCells()
ScUnoGuard aGuard;
ScRange aRange;
ScRangeData* pData = GetRangeData_Impl();
- if ( pData && pData->IsReference( aRange ) )
+ if ( pData && pData->IsValidReference( aRange ) )
{
//! static Funktion um ScCellObj/ScCellRangeObj zu erzeugen am ScCellRangeObj ???
diff --git a/sc/source/ui/unoobj/scdetect.cxx b/sc/source/ui/unoobj/scdetect.cxx
index cded62efa3a8..80cb88595b11 100644
--- a/sc/source/ui/unoobj/scdetect.cxx
+++ b/sc/source/ui/unoobj/scdetect.cxx
@@ -256,6 +256,7 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
sal_Int32 nIndexOfReadOnlyFlag = -1;
sal_Int32 nIndexOfTemplateFlag = -1;
sal_Int32 nIndexOfDocumentTitle = -1;
+ bool bFakeXLS = false;
for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
{
@@ -436,8 +437,11 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
}
else
{
+ bool bIsXLS = false;
SvStream* pStream = aMedium.GetInStream();
const SfxFilter* pPreselectedFilter = pFilter;
+ if ( pPreselectedFilter && pPreselectedFilter->GetName().SearchAscii("Excel") != STRING_NOTFOUND )
+ bIsXLS = true;
pFilter = 0;
if ( pStream )
{
@@ -718,7 +722,8 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
// further checks for filters only if they are preselected: ASCII, HTML, RTF, DBase
// without the preselection other filters (Writer) take precedence
// DBase can't be detected reliably, so it also needs preselection
- if ( pPreselectedFilter->GetFilterName().EqualsAscii(pFilterAscii) && lcl_MayBeAscii( rStr ) )
+ bool bMaybeText = lcl_MayBeAscii( rStr );
+ if ( pPreselectedFilter->GetFilterName().EqualsAscii(pFilterAscii) && bMaybeText )
{
// Text filter is accepted if preselected
pFilter = pPreselectedFilter;
@@ -747,8 +752,15 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
else
{
pFilter = aMatcher.GetFilter4FilterName( String::CreateFromAscii(pFilterHtmlWeb) );
+ if ( bIsXLS )
+ bFakeXLS = true;
}
}
+ else if ( bIsXLS && bMaybeText )
+ {
+ pFilter = aMatcher.GetFilter4FilterName( String::CreateFromAscii(pFilterAscii) );
+ bFakeXLS = true;
+ }
else if ( aHeader.CompareTo( "{\\rtf", 5 ) == COMPARE_EQUAL )
{
// test for RTF
@@ -834,6 +846,19 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
lDescriptor[nIndexOfDocumentTitle].Value <<= aDocumentTitle;
}
+ if ( bFakeXLS )
+ {
+ if ( nIndexOfFilterName == -1 )
+ {
+ lDescriptor.realloc( nPropertyCount + 1 );
+ lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("FilterName");
+ lDescriptor[nPropertyCount].Value <<= rtl::OUString(pFilter->GetName());
+ nPropertyCount++;
+ }
+ else
+ lDescriptor[nIndexOfFilterName].Value <<= rtl::OUString(pFilter->GetName());
+ }
+
if ( pFilter )
aTypeName = pFilter->GetTypeName();
else
diff --git a/sc/source/ui/view/dbfunc3.cxx b/sc/source/ui/view/dbfunc3.cxx
index 406fdab9c824..35befa8f7a36 100755
--- a/sc/source/ui/view/dbfunc3.cxx
+++ b/sc/source/ui/view/dbfunc3.cxx
@@ -1739,6 +1739,18 @@ void lcl_MoveToEnd( ScDPSaveDimension& rDim, const String& rItemName )
// puts it to the end of the list even if it was in the list before.
}
+struct ScOUStringCollate
+{
+ CollatorWrapper* mpCollator;
+
+ ScOUStringCollate(CollatorWrapper* pColl) : mpCollator(pColl) {}
+
+ bool operator()(const rtl::OUString& rStr1, const rtl::OUString& rStr2) const
+ {
+ return ( mpCollator->compareString(rStr1, rStr2) < 0 );
+ }
+};
+
bool ScDBFunc::DataPilotSort( const ScAddress& rPos, bool bAscending, sal_uInt16* pUserListId )
{
ScDocument* pDoc = GetViewData()->GetDocument();
@@ -1747,7 +1759,8 @@ bool ScDBFunc::DataPilotSort( const ScAddress& rPos, bool bAscending, sal_uInt16
return false;
// We need to run this to get all members later.
- pDPObj->BuildAllDimensionMembers();
+ if ( pUserListId )
+ pDPObj->BuildAllDimensionMembers();
USHORT nOrientation;
long nDimIndex = pDPObj->GetHeaderDim(rPos, nOrientation);
@@ -1766,97 +1779,111 @@ bool ScDBFunc::DataPilotSort( const ScAddress& rPos, bool bAscending, sal_uInt16
if (!pSaveDim)
return false;
- typedef ScDPSaveDimension::MemberList MemList;
- const MemList& rDimMembers = pSaveDim->GetMembers();
- list<OUString> aMembers;
- hash_set<OUString, ::rtl::OUStringHash> aMemberSet;
- size_t nMemberCount = 0;
- for (MemList::const_iterator itr = rDimMembers.begin(), itrEnd = rDimMembers.end();
- itr != itrEnd; ++itr)
+ // manual evaluation of sort order is only needed if a user list id is given
+ if ( pUserListId )
{
- ScDPSaveMember* pMem = *itr;
- aMembers.push_back(pMem->GetName());
- aMemberSet.insert(pMem->GetName());
- ++nMemberCount;
- }
-
- // Sort the member list in ascending order.
- aMembers.sort();
+ typedef ScDPSaveDimension::MemberList MemList;
+ const MemList& rDimMembers = pSaveDim->GetMembers();
+ list<OUString> aMembers;
+ hash_set<OUString, ::rtl::OUStringHash> aMemberSet;
+ size_t nMemberCount = 0;
+ for (MemList::const_iterator itr = rDimMembers.begin(), itrEnd = rDimMembers.end();
+ itr != itrEnd; ++itr)
+ {
+ ScDPSaveMember* pMem = *itr;
+ aMembers.push_back(pMem->GetName());
+ aMemberSet.insert(pMem->GetName());
+ ++nMemberCount;
+ }
- // Collect and rank those custom sort strings that also exist in the member name list.
+ // Sort the member list in ascending order.
+ ScOUStringCollate aCollate( ScGlobal::GetCollator() );
+ aMembers.sort(aCollate);
- typedef hash_map<OUString, sal_uInt16, OUStringHash> UserSortMap;
- UserSortMap aSubStrs;
- sal_uInt16 nSubCount = 0;
- if (pUserListId)
- {
- ScUserList* pUserList = ScGlobal::GetUserList();
- if (!pUserList)
- return false;
+ // Collect and rank those custom sort strings that also exist in the member name list.
+ typedef hash_map<OUString, sal_uInt16, OUStringHash> UserSortMap;
+ UserSortMap aSubStrs;
+ sal_uInt16 nSubCount = 0;
+ if (pUserListId)
{
- sal_uInt16 n = pUserList->GetCount();
- if (!n || *pUserListId >= n)
+ ScUserList* pUserList = ScGlobal::GetUserList();
+ if (!pUserList)
return false;
- }
- ScUserListData* pData = static_cast<ScUserListData*>((*pUserList)[*pUserListId]);
- if (pData)
- {
- sal_uInt16 n = pData->GetSubCount();
- for (sal_uInt16 i = 0; i < n; ++i)
{
- OUString aSub = pData->GetSubStr(i);
- if (!aMemberSet.count(aSub))
- // This string doesn't exist in the member name set. Don't add this.
- continue;
+ sal_uInt16 n = pUserList->GetCount();
+ if (!n || *pUserListId >= n)
+ return false;
+ }
+
+ ScUserListData* pData = static_cast<ScUserListData*>((*pUserList)[*pUserListId]);
+ if (pData)
+ {
+ sal_uInt16 n = pData->GetSubCount();
+ for (sal_uInt16 i = 0; i < n; ++i)
+ {
+ OUString aSub = pData->GetSubStr(i);
+ if (!aMemberSet.count(aSub))
+ // This string doesn't exist in the member name set. Don't add this.
+ continue;
- aSubStrs.insert(UserSortMap::value_type(aSub, nSubCount++));
+ aSubStrs.insert(UserSortMap::value_type(aSub, nSubCount++));
+ }
}
}
- }
- // Rank all members.
+ // Rank all members.
- vector<OUString> aRankedNames(nMemberCount);
- sal_uInt16 nCurStrId = 0;
- for (list<OUString>::const_iterator itr = aMembers.begin(), itrEnd = aMembers.end();
- itr != itrEnd; ++itr)
- {
- OUString aName = *itr;
- sal_uInt16 nRank = 0;
- UserSortMap::const_iterator itrSub = aSubStrs.find(aName);
- if (itrSub == aSubStrs.end())
- nRank = nSubCount + nCurStrId++;
- else
- nRank = itrSub->second;
+ vector<OUString> aRankedNames(nMemberCount);
+ sal_uInt16 nCurStrId = 0;
+ for (list<OUString>::const_iterator itr = aMembers.begin(), itrEnd = aMembers.end();
+ itr != itrEnd; ++itr)
+ {
+ OUString aName = *itr;
+ sal_uInt16 nRank = 0;
+ UserSortMap::const_iterator itrSub = aSubStrs.find(aName);
+ if (itrSub == aSubStrs.end())
+ nRank = nSubCount + nCurStrId++;
+ else
+ nRank = itrSub->second;
- if (!bAscending)
- nRank = static_cast< sal_uInt16 >( nMemberCount - nRank - 1 );
+ if (!bAscending)
+ nRank = static_cast< sal_uInt16 >( nMemberCount - nRank - 1 );
- aRankedNames[nRank] = aName;
- }
+ aRankedNames[nRank] = aName;
+ }
- // Re-order ScDPSaveMember instances with the new ranks.
+ // Re-order ScDPSaveMember instances with the new ranks.
- for (vector<OUString>::const_iterator itr = aRankedNames.begin(), itrEnd = aRankedNames.end();
- itr != itrEnd; ++itr)
- {
- const ScDPSaveMember* pOldMem = pSaveDim->GetExistingMemberByName(*itr);
- if (!pOldMem)
- // All members are supposed to be present.
- continue;
+ for (vector<OUString>::const_iterator itr = aRankedNames.begin(), itrEnd = aRankedNames.end();
+ itr != itrEnd; ++itr)
+ {
+ const ScDPSaveMember* pOldMem = pSaveDim->GetExistingMemberByName(*itr);
+ if (!pOldMem)
+ // All members are supposed to be present.
+ continue;
- ScDPSaveMember* pNewMem = new ScDPSaveMember(*pOldMem);
- pSaveDim->AddMember(pNewMem);
- }
+ ScDPSaveMember* pNewMem = new ScDPSaveMember(*pOldMem);
+ pSaveDim->AddMember(pNewMem);
+ }
- // Set the sorting mode to manual for now. We may introduce a new sorting
- // mode later on.
+ // Set the sorting mode to manual for now. We may introduce a new sorting
+ // mode later on.
- sheet::DataPilotFieldSortInfo aSortInfo;
- aSortInfo.Mode = sheet::DataPilotFieldSortMode::MANUAL;
- pSaveDim->SetSortInfo(&aSortInfo);
+ sheet::DataPilotFieldSortInfo aSortInfo;
+ aSortInfo.Mode = sheet::DataPilotFieldSortMode::MANUAL;
+ pSaveDim->SetSortInfo(&aSortInfo);
+ }
+ else
+ {
+ // without user list id, just apply sorting mode
+
+ sheet::DataPilotFieldSortInfo aSortInfo;
+ aSortInfo.Mode = sheet::DataPilotFieldSortMode::NAME;
+ aSortInfo.IsAscending = bAscending;
+ pSaveDim->SetSortInfo(&aSortInfo);
+ }
// Update the datapilot with the newly sorted field members.
diff --git a/sc/source/ui/view/drawview.cxx b/sc/source/ui/view/drawview.cxx
index 311bcf8c24b2..cc09722530ad 100644
--- a/sc/source/ui/view/drawview.cxx
+++ b/sc/source/ui/view/drawview.cxx
@@ -397,13 +397,13 @@ void ScDrawView::MarkListHasChanged()
ScTabViewShell* pViewSh = pViewData->GetViewShell();
- if (!bInConstruct) // nicht wenn die View gerade angelegt wird
+ // #i110829# remove the cell selection only if drawing objects are selected
+ if ( !bInConstruct && GetMarkedObjectList().GetMarkCount() )
{
- pViewSh->Unmark(); // Selektion auff'm Doc entfernen
+ pViewSh->Unmark(); // remove cell selection
// #65379# end cell edit mode if drawing objects are selected
- if ( GetMarkedObjectList().GetMarkCount() )
- SC_MOD()->InputEnterHandler();
+ SC_MOD()->InputEnterHandler();
}
// IP deaktivieren
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index 53851f0e3cf0..5a48d0d310d5 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -53,6 +53,7 @@
#include <editeng/udlnitem.hxx>
#include <editeng/unolingu.hxx>
#include <svl/zforlist.hxx>
+#include <svl/zformat.hxx>
#include <vcl/svapp.hxx>
#include <vcl/metric.hxx>
#include <vcl/outdev.hxx>
@@ -74,6 +75,8 @@
#include "scmod.hxx"
#include "fillinfo.hxx"
+#include <boost/ptr_container/ptr_vector.hpp>
+
#include <math.h>
//! Autofilter-Breite mit column.cxx zusammenfassen
@@ -108,6 +111,9 @@ class ScDrawStringsVars
String aString; // Inhalte
Size aTextSize;
long nOriginalWidth;
+ long nMaxDigitWidth;
+ long nSignWidth;
+ long nDotWidth;
ScBaseCell* pLastCell;
ULONG nValueFormat;
@@ -132,7 +138,7 @@ public:
void SetPatternSimple( const ScPatternAttr* pNew, const SfxItemSet* pSet );
BOOL SetText( ScBaseCell* pCell ); // TRUE -> pOldPattern vergessen
- void SetHashText();
+ void SetTextToWidthOrHash( ScBaseCell* pCell, long nWidth );
void SetAutoText( const String& rAutoText );
const ScPatternAttr* GetPattern() const { return pPattern; }
@@ -161,6 +167,14 @@ public:
pCondSet->GetItemState( ATTR_FONT_HEIGHT, TRUE ); }
BOOL HasEditCharacters() const;
+
+private:
+ void SetHashText();
+ long GetMaxDigitWidth();
+ long GetSignWidth();
+ long GetDotWidth();
+ void TextChanged();
+ long ConvertWidthLogicToPixel( long nWidth ) const;
};
//==================================================================
@@ -176,6 +190,9 @@ ScDrawStringsVars::ScDrawStringsVars(ScOutputData* pData, BOOL bPTL) :
nIndent ( 0 ),
bRotated ( FALSE ),
nOriginalWidth( 0 ),
+ nMaxDigitWidth( 0 ),
+ nSignWidth( 0 ),
+ nDotWidth( 0 ),
pLastCell ( NULL ),
nValueFormat( 0 ),
bLineBreak ( FALSE ),
@@ -242,6 +259,10 @@ void ScDrawStringsVars::SetShrinkScale( long nScale, BYTE nScript )
void ScDrawStringsVars::SetPattern( const ScPatternAttr* pNew, const SfxItemSet* pSet,
ScBaseCell* pCell, BYTE nScript )
{
+ nMaxDigitWidth = 0;
+ nSignWidth = 0;
+ nDotWidth = 0;
+
pPattern = pNew;
pCondSet = pSet;
@@ -393,6 +414,9 @@ void ScDrawStringsVars::SetPattern( const ScPatternAttr* pNew, const SfxItemSet*
void ScDrawStringsVars::SetPatternSimple( const ScPatternAttr* pNew, const SfxItemSet* pSet )
{
+ nMaxDigitWidth = 0;
+ nSignWidth = 0;
+ nDotWidth = 0;
// wird gerufen, wenn sich die Font-Variablen nicht aendern (!StringDiffer)
pPattern = pNew;
@@ -467,28 +491,7 @@ BOOL ScDrawStringsVars::SetText( ScBaseCell* pCell )
pLastCell = NULL; // naechstes Mal wieder hierherkommen
}
- OutputDevice* pRefDevice = pOutput->pRefDevice;
- OutputDevice* pFmtDevice = pOutput->pFmtDevice;
- aTextSize.Width() = pFmtDevice->GetTextWidth( aString );
- aTextSize.Height() = pFmtDevice->GetTextHeight();
-
- if ( !pRefDevice->GetConnectMetaFile() || pRefDevice->GetOutDevType() == OUTDEV_PRINTER )
- {
- double fMul = pOutput->GetStretch();
- aTextSize.Width() = (long)(aTextSize.Width() / fMul + 0.5);
- }
-
- aTextSize.Height() = aMetric.GetAscent() + aMetric.GetDescent();
- if ( GetOrient() != SVX_ORIENTATION_STANDARD )
- {
- long nTemp = aTextSize.Height();
- aTextSize.Height() = aTextSize.Width();
- aTextSize.Width() = nTemp;
- }
-
- nOriginalWidth = aTextSize.Width();
- if ( bPixelToLogic )
- aTextSize = pRefDevice->LogicToPixel( aTextSize );
+ TextChanged();
}
// sonst String/Groesse behalten
}
@@ -508,6 +511,82 @@ void ScDrawStringsVars::SetHashText()
SetAutoText( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("###")) );
}
+void ScDrawStringsVars::SetTextToWidthOrHash( ScBaseCell* pCell, long nWidth )
+{
+ if (!pCell)
+ return;
+
+ CellType eType = pCell->GetCellType();
+ if (eType != CELLTYPE_VALUE && eType != CELLTYPE_FORMULA)
+ // must be a value or formula cell.
+ return;
+
+ if (eType == CELLTYPE_FORMULA && !static_cast<ScFormulaCell*>(pCell)->IsValue())
+ // If it's formula, the result must be a value.
+ return;
+
+ ULONG nFormat = GetValueFormat();
+ if ((nFormat % SV_COUNTRY_LANGUAGE_OFFSET) != 0)
+ {
+ // Not 'General' number format. Set hash text and bail out.
+ SetHashText();
+ return;
+ }
+
+ double fVal = (eType == CELLTYPE_VALUE) ?
+ static_cast<ScValueCell*>(pCell)->GetValue() : static_cast<ScFormulaCell*>(pCell)->GetValue();
+
+ const SvNumberformat* pNumFormat = pOutput->pDoc->GetFormatTable()->GetEntry(nFormat);
+ if (!pNumFormat)
+ return;
+
+ long nMaxDigit = GetMaxDigitWidth();
+ sal_uInt16 nNumDigits = static_cast<sal_uInt16>(nWidth / nMaxDigit);
+
+ if (!pNumFormat->GetOutputString(fVal, nNumDigits, aString))
+ // Failed to get output string. Bail out.
+ return;
+
+ sal_uInt8 nSignCount = 0, nDecimalCount = 0;
+ xub_StrLen nLen = aString.Len();
+ sal_Unicode cDecSep = ScGlobal::GetpLocaleData()->getLocaleItem().decimalSeparator.getStr()[0];
+ for (xub_StrLen i = 0; i < nLen; ++i)
+ {
+ sal_Unicode c = aString.GetChar(i);
+ if (c == sal_Unicode('-'))
+ ++nSignCount;
+ else if (c == cDecSep)
+ ++nDecimalCount;
+ }
+ if (nDecimalCount)
+ nWidth += (nMaxDigit - GetDotWidth()) * nDecimalCount;
+ if (nSignCount)
+ nWidth += (nMaxDigit - GetSignWidth()) * nSignCount;
+
+ if (nDecimalCount || nSignCount)
+ {
+ // Re-calculate.
+ nNumDigits = static_cast<sal_uInt16>(nWidth / nMaxDigit);
+ if (!pNumFormat->GetOutputString(fVal, nNumDigits, aString))
+ // Failed to get output string. Bail out.
+ return;
+ }
+
+ long nActualTextWidth = pOutput->pFmtDevice->GetTextWidth(aString);
+
+ if (bPixelToLogic)
+ nActualTextWidth = ConvertWidthLogicToPixel(nActualTextWidth);
+
+ if (nActualTextWidth > nWidth)
+ {
+ // Even after the decimal adjustment the text doesn't fit. Give up.
+ SetHashText();
+ return;
+ }
+
+ TextChanged();
+}
+
void ScDrawStringsVars::SetAutoText( const String& rAutoText )
{
aString = rAutoText;
@@ -538,6 +617,80 @@ void ScDrawStringsVars::SetAutoText( const String& rAutoText )
pLastCell = NULL; // derselbe Text kann in der naechsten Zelle wieder passen
}
+long ScDrawStringsVars::GetMaxDigitWidth()
+{
+ if (nMaxDigitWidth > 0)
+ return nMaxDigitWidth;
+
+ sal_Char cZero = '0';
+ for (int i = 0; i < 10; ++i)
+ {
+ sal_Char cDigit = cZero + i;
+ long n = pOutput->pFmtDevice->GetTextWidth(String(cDigit));
+ nMaxDigitWidth = ::std::max(nMaxDigitWidth, n);
+ }
+
+ if (bPixelToLogic)
+ nMaxDigitWidth = ConvertWidthLogicToPixel(nMaxDigitWidth);
+ return nMaxDigitWidth;
+}
+
+long ScDrawStringsVars::GetSignWidth()
+{
+ if (nSignWidth > 0)
+ return nSignWidth;
+
+ nSignWidth = pOutput->pFmtDevice->GetTextWidth(String('-'));
+ if (bPixelToLogic)
+ nSignWidth = ConvertWidthLogicToPixel(nSignWidth);
+ return nSignWidth;
+}
+
+long ScDrawStringsVars::GetDotWidth()
+{
+ if (nDotWidth > 0)
+ return nDotWidth;
+
+ const ::rtl::OUString& sep = ScGlobal::GetpLocaleData()->getLocaleItem().decimalSeparator;
+ nDotWidth = pOutput->pFmtDevice->GetTextWidth(sep);
+ if (bPixelToLogic)
+ nDotWidth = ConvertWidthLogicToPixel(nDotWidth);
+ return nDotWidth;
+}
+
+void ScDrawStringsVars::TextChanged()
+{
+ OutputDevice* pRefDevice = pOutput->pRefDevice;
+ OutputDevice* pFmtDevice = pOutput->pFmtDevice;
+ aTextSize.Width() = pFmtDevice->GetTextWidth( aString );
+ aTextSize.Height() = pFmtDevice->GetTextHeight();
+
+ if ( !pRefDevice->GetConnectMetaFile() || pRefDevice->GetOutDevType() == OUTDEV_PRINTER )
+ {
+ double fMul = pOutput->GetStretch();
+ aTextSize.Width() = (long)(aTextSize.Width() / fMul + 0.5);
+ }
+
+ aTextSize.Height() = aMetric.GetAscent() + aMetric.GetDescent();
+ if ( GetOrient() != SVX_ORIENTATION_STANDARD )
+ {
+ long nTemp = aTextSize.Height();
+ aTextSize.Height() = aTextSize.Width();
+ aTextSize.Width() = nTemp;
+ }
+
+ nOriginalWidth = aTextSize.Width();
+ if ( bPixelToLogic )
+ aTextSize = pRefDevice->LogicToPixel( aTextSize );
+}
+
+long ScDrawStringsVars::ConvertWidthLogicToPixel( long nWidth ) const
+{
+ Size aSize(nWidth, pOutput->pFmtDevice->GetTextHeight());
+ aSize = pOutput->pRefDevice->LogicToPixel(aSize);
+ return aSize.Width();
+}
+
BOOL ScDrawStringsVars::HasEditCharacters() const
{
static const sal_Unicode pChars[] =
@@ -919,18 +1072,14 @@ BOOL ScOutputData::IsAvailable( SCCOL nX, SCROW nY )
// bCellIsValue: if set, don't extend into empty cells
// bBreak: if set, don't extend, and don't set clip marks (but rLeftClip/rRightClip is set)
// bOverwrite: if set, also extend into non-empty cells (for rotated text)
-// rAlignRect: output: single or merged cell, used for alignment (visual rectangle)
-// rClipRect: output: total output area, for clipping (visual)
-// rLeftClip: output: need to clip at rClipRect left (visual) edge
-// rRightClip: output: same for right
+// rParam output: various area parameters.
void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY,
- SCCOL nCellX, SCROW nCellY, long nNeeded,
- const ScPatternAttr& rPattern,
- USHORT nHorJustify, BOOL bCellIsValue,
- BOOL bBreak, BOOL bOverwrite,
- Rectangle& rAlignRect, Rectangle& rClipRect,
- BOOL& rLeftClip, BOOL& rRightClip )
+ SCCOL nCellX, SCROW nCellY, long nNeeded,
+ const ScPatternAttr& rPattern,
+ USHORT nHorJustify, bool bCellIsValue,
+ bool bBreak, bool bOverwrite,
+ OutputAreaParam& rParam )
{
// rThisRowInfo may be for a different row than nCellY, is still used for clip marks
RowInfo& rThisRowInfo = pRowInfo[nArrY];
@@ -1009,21 +1158,23 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
--nMergeSizeX; // leave out the grid horizontally, also for alignment (align between grid lines)
+ rParam.mnColWidth = nMergeSizeX; // store the actual column width.
+
//
// construct the rectangles using logical left/right values (justify is called at the end)
//
// rAlignRect is the single cell or merged area, used for alignment.
- rAlignRect.Left() = nCellPosX;
- rAlignRect.Right() = nCellPosX + ( nMergeSizeX - 1 ) * nLayoutSign;
- rAlignRect.Top() = nCellPosY;
- rAlignRect.Bottom() = nCellPosY + nMergeSizeY - 1;
+ rParam.maAlignRect.Left() = nCellPosX;
+ rParam.maAlignRect.Right() = nCellPosX + ( nMergeSizeX - 1 ) * nLayoutSign;
+ rParam.maAlignRect.Top() = nCellPosY;
+ rParam.maAlignRect.Bottom() = nCellPosY + nMergeSizeY - 1;
// rClipRect is all cells that are used for output.
// For merged cells this is the same as rAlignRect, otherwise neighboring cells can also be used.
- rClipRect = rAlignRect;
+ rParam.maClipRect = rParam.maAlignRect;
if ( nNeeded > nMergeSizeX )
{
SvxCellHorJustify eHorJust = (SvxCellHorJustify)nHorJustify;
@@ -1064,7 +1215,7 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
++nRightX;
long nAdd = (long) ( pDoc->GetColWidth( nRightX, nTab ) * nPPTX );
nRightMissing -= nAdd;
- rClipRect.Right() += nAdd * nLayoutSign;
+ rParam.maClipRect.Right() += nAdd * nLayoutSign;
if ( rThisRowInfo.nRowNo == nCellY && nRightX >= nX1 && nRightX <= nX2 )
rThisRowInfo.pCellInfo[nRightX].bHideGrid = TRUE;
@@ -1078,7 +1229,7 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
--nLeftX;
long nAdd = (long) ( pDoc->GetColWidth( nLeftX, nTab ) * nPPTX );
nLeftMissing -= nAdd;
- rClipRect.Left() -= nAdd * nLayoutSign;
+ rParam.maClipRect.Left() -= nAdd * nLayoutSign;
}
}
@@ -1089,22 +1240,22 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
rThisRowInfo.pCellInfo[nRightX+1].nClipMark |= SC_CLIPMARK_RIGHT;
bAnyClipped = TRUE;
long nMarkPixel = (long)( SC_CLIPMARK_SIZE * nPPTX );
- rClipRect.Right() -= nMarkPixel * nLayoutSign;
+ rParam.maClipRect.Right() -= nMarkPixel * nLayoutSign;
}
if ( nLeftMissing > 0 && bMarkClipped && nLeftX >= nX1 && nLeftX <= nX2 && !bBreak && !bCellIsValue )
{
rThisRowInfo.pCellInfo[nLeftX+1].nClipMark |= SC_CLIPMARK_LEFT;
bAnyClipped = TRUE;
long nMarkPixel = (long)( SC_CLIPMARK_SIZE * nPPTX );
- rClipRect.Left() += nMarkPixel * nLayoutSign;
+ rParam.maClipRect.Left() += nMarkPixel * nLayoutSign;
}
- rLeftClip = ( nLeftMissing > 0 );
- rRightClip = ( nRightMissing > 0 );
+ rParam.mbLeftClip = ( nLeftMissing > 0 );
+ rParam.mbRightClip = ( nRightMissing > 0 );
}
else
{
- rLeftClip = rRightClip = FALSE;
+ rParam.mbLeftClip = rParam.mbRightClip = FALSE;
// leave space for AutoFilter on screen
// (for automatic line break: only if not formatting for printer, as in ScColumn::GetNeededSize)
@@ -1120,30 +1271,30 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
// content fits even in the remaining area without the filter button
// -> align within that remaining area
- rAlignRect.Right() -= nFilter * nLayoutSign;
- rClipRect.Right() -= nFilter * nLayoutSign;
+ rParam.maAlignRect.Right() -= nFilter * nLayoutSign;
+ rParam.maClipRect.Right() -= nFilter * nLayoutSign;
// if a number doesn't fit, don't hide part of the number behind the button
// -> set clip flags, so "###" replacement is used (but also within the smaller area)
if ( !bFit )
- rLeftClip = rRightClip = TRUE;
+ rParam.mbLeftClip = rParam.mbRightClip = TRUE;
}
}
}
// justify both rectangles for alignment calculation, use with DrawText etc.
- rAlignRect.Justify();
- rClipRect.Justify();
+ rParam.maAlignRect.Justify();
+ rParam.maClipRect.Justify();
#if 0
//! Test !!!
pDev->Push();
pDev->SetLineColor();
pDev->SetFillColor( COL_LIGHTGREEN );
- pDev->DrawRect( pDev->PixelToLogic(rClipRect) );
- pDev->DrawRect( rClipRect ); // print preview
+ pDev->DrawRect( pDev->PixelToLogic(rParam.maClipRect) );
+ pDev->DrawRect( rParam.maClipRect ); // print preview
pDev->Pop();
//! Test !!!
#endif
@@ -1164,10 +1315,6 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
ScDrawStringsVars aVars( this, bPixelToLogic );
- const ScPatternAttr* pOldPattern = NULL;
- const SfxItemSet* pOldCondSet = NULL;
- BYTE nOldScript = 0;
-
BOOL bProgress = FALSE;
long nInitPosX = nScrX;
@@ -1184,15 +1331,19 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
--nLoopStartX; // start before nX1 for rest of long text to the left
// variables for GetOutputArea
+ OutputAreaParam aAreaParam;
BOOL bCellIsValue = FALSE;
- BOOL bLeftClip = FALSE;
- BOOL bRightClip = FALSE;
long nNeededWidth = 0;
- Rectangle aAlignRect;
- Rectangle aClipRect;
SvxCellHorJustify eOutHorJust = SVX_HOR_JUSTIFY_STANDARD;
const ScPatternAttr* pPattern = NULL;
const SfxItemSet* pCondSet = NULL;
+ const ScPatternAttr* pOldPattern = NULL;
+ const SfxItemSet* pOldCondSet = NULL;
+ BYTE nOldScript = 0;
+
+ // alternative pattern instances in case we need to modify the pattern
+ // before processing the cell value.
+ ::boost::ptr_vector<ScPatternAttr> aAltPatterns;
long nPosY = nScrY;
for (SCSIZE nArrY=1; nArrY+1<nArrCount; nArrY++)
@@ -1330,6 +1481,18 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
pCondSet = pDoc->GetCondResult( nCellX, nCellY, nTab );
}
+ if (pCell->HasValueData() &&
+ static_cast<const SfxBoolItem&>(
+ pPattern->GetItem(ATTR_LINEBREAK, pCondSet)).GetValue())
+ {
+ // Disable line break when the cell content is numeric.
+ aAltPatterns.push_back(new ScPatternAttr(*pPattern));
+ ScPatternAttr* pAltPattern = &aAltPatterns.back();
+ SfxBoolItem aLineBreak(ATTR_LINEBREAK, false);
+ pAltPattern->GetItemSet().Put(aLineBreak);
+ pPattern = pAltPattern;
+ }
+
BYTE nScript = GetScriptType( pDoc, pCell, pPattern, pCondSet );
if (nScript == 0) nScript = ScGlobal::GetDefaultScriptType();
if ( pPattern != pOldPattern || pCondSet != pOldCondSet ||
@@ -1360,6 +1523,7 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
bNeedEdit = aVars.HasEditCharacters() ||
(bFormulaCell && ((ScFormulaCell*)pCell)->IsMultilineResult());
}
+ long nTotalMargin = 0;
if (bDoCell && !bNeedEdit)
{
CellType eCellType = pCell->GetCellType();
@@ -1381,14 +1545,17 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
BOOL bRepeat = aVars.IsRepeat() && !bBreak;
BOOL bShrink = aVars.IsShrink() && !bBreak && !bRepeat;
- long nTotalMargin = (long) ( aVars.GetLeftTotal() * nPPTX ) +
- (long) ( aVars.GetMargin()->GetRightMargin() * nPPTX );
+ nTotalMargin =
+ static_cast<long>(aVars.GetLeftTotal() * nPPTX) +
+ static_cast<long>(aVars.GetMargin()->GetRightMargin() * nPPTX);
+
nNeededWidth = aVars.GetTextSize().Width() + nTotalMargin;
+
// GetOutputArea gives justfied rectangles
GetOutputArea( nX, nArrY, nPosX, nPosY, nCellX, nCellY, nNeededWidth,
- *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
- bCellIsValue || bRepeat || bShrink, bBreak, FALSE,
- aAlignRect, aClipRect, bLeftClip, bRightClip );
+ *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
+ bCellIsValue || bRepeat || bShrink, bBreak, FALSE,
+ aAreaParam );
if ( bShrink )
{
@@ -1398,9 +1565,9 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
// DrawEdit is used to vertically scale 90 deg rotated text.
bNeedEdit = TRUE;
}
- else if ( bLeftClip || bRightClip ) // horizontal
+ else if ( aAreaParam.mbLeftClip || aAreaParam.mbRightClip ) // horizontal
{
- long nAvailable = aAlignRect.GetWidth() - nTotalMargin;
+ long nAvailable = aAreaParam.maAlignRect.GetWidth() - nTotalMargin;
long nScaleSize = aVars.GetTextSize().Width(); // without margin
if ( nScaleSize > 0 ) // 0 if the text is empty (formulas, number formats)
@@ -1424,16 +1591,16 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
// If even at half the size the font still isn't rendered smaller,
// fall back to normal clipping (showing ### for numbers).
if ( nNewSize <= nAvailable )
- bLeftClip = bRightClip = FALSE;
+ aAreaParam.mbLeftClip = aAreaParam.mbRightClip = FALSE;
pOldPattern = NULL;
}
}
}
- if ( bRepeat && !bLeftClip && !bRightClip )
+ if ( bRepeat && !aAreaParam.mbLeftClip && !aAreaParam.mbRightClip )
{
- long nAvailable = aAlignRect.GetWidth() - nTotalMargin;
+ long nAvailable = aAreaParam.maAlignRect.GetWidth() - nTotalMargin;
long nRepeatSize = aVars.GetTextSize().Width(); // without margin
// When formatting for the printer, the text sizes don't always add up.
// Round down (too few repetitions) rather than exceeding the cell size then:
@@ -1457,13 +1624,13 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
if ( bBreak )
{
if ( aVars.GetOrient() == SVX_ORIENTATION_STANDARD )
- bNeedEdit = ( bLeftClip || bRightClip );
+ bNeedEdit = ( aAreaParam.mbLeftClip || aAreaParam.mbRightClip );
else
{
long nHeight = aVars.GetTextSize().Height() +
(long)(aVars.GetMargin()->GetTopMargin()*nPPTY) +
(long)(aVars.GetMargin()->GetBottomMargin()*nPPTY);
- bNeedEdit = ( nHeight > aClipRect.GetHeight() );
+ bNeedEdit = ( nHeight > aAreaParam.maClipRect.GetHeight() );
}
}
}
@@ -1479,48 +1646,49 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
}
if ( bDoCell )
{
- if ( bCellIsValue && ( bLeftClip || bRightClip ) )
+ if ( bCellIsValue && ( aAreaParam.mbLeftClip || aAreaParam.mbRightClip ) )
{
- aVars.SetHashText();
+ // Adjust the decimals to fit the available column width.
+ aVars.SetTextToWidthOrHash(pCell, aAreaParam.mnColWidth - nTotalMargin);
nNeededWidth = aVars.GetTextSize().Width() +
(long) ( aVars.GetLeftTotal() * nPPTX ) +
(long) ( aVars.GetMargin()->GetRightMargin() * nPPTX );
- if ( nNeededWidth <= aClipRect.GetWidth() )
- bLeftClip = bRightClip = FALSE;
+ if ( nNeededWidth <= aAreaParam.maClipRect.GetWidth() )
+ aAreaParam.mbLeftClip = aAreaParam.mbRightClip = FALSE;
// If the "###" replacement doesn't fit into the cells, no clip marks
// are shown, as the "###" already denotes too little space.
// The rectangles from the first GetOutputArea call remain valid.
}
- long nJustPosX = aAlignRect.Left(); // "justified" - effect of alignment will be added
- long nJustPosY = aAlignRect.Top();
- long nAvailWidth = aAlignRect.GetWidth();
- long nOutHeight = aAlignRect.GetHeight();
+ long nJustPosX = aAreaParam.maAlignRect.Left(); // "justified" - effect of alignment will be added
+ long nJustPosY = aAreaParam.maAlignRect.Top();
+ long nAvailWidth = aAreaParam.maAlignRect.GetWidth();
+ long nOutHeight = aAreaParam.maAlignRect.GetHeight();
- BOOL bOutside = ( aClipRect.Right() < nScrX || aClipRect.Left() >= nScrX + nScrW );
- if ( aClipRect.Left() < nScrX )
+ BOOL bOutside = ( aAreaParam.maClipRect.Right() < nScrX || aAreaParam.maClipRect.Left() >= nScrX + nScrW );
+ if ( aAreaParam.maClipRect.Left() < nScrX )
{
- aClipRect.Left() = nScrX;
- bLeftClip = TRUE;
+ aAreaParam.maClipRect.Left() = nScrX;
+ aAreaParam.mbLeftClip = TRUE;
}
- if ( aClipRect.Right() > nScrX + nScrW )
+ if ( aAreaParam.maClipRect.Right() > nScrX + nScrW )
{
- aClipRect.Right() = nScrX + nScrW; //! minus one?
- bRightClip = TRUE;
+ aAreaParam.maClipRect.Right() = nScrX + nScrW; //! minus one?
+ aAreaParam.mbRightClip = TRUE;
}
- BOOL bHClip = bLeftClip || bRightClip;
+ BOOL bHClip = aAreaParam.mbLeftClip || aAreaParam.mbRightClip;
BOOL bVClip = FALSE;
- if ( aClipRect.Top() < nScrY )
+ if ( aAreaParam.maClipRect.Top() < nScrY )
{
- aClipRect.Top() = nScrY;
+ aAreaParam.maClipRect.Top() = nScrY;
bVClip = TRUE;
}
- if ( aClipRect.Bottom() > nScrY + nScrH )
+ if ( aAreaParam.maClipRect.Bottom() > nScrY + nScrH )
{
- aClipRect.Bottom() = nScrY + nScrH; //! minus one?
+ aAreaParam.maClipRect.Bottom() = nScrY + nScrH; //! minus one?
bVClip = TRUE;
}
@@ -1603,27 +1771,27 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
if (!bHClip)
{
- aClipRect.Left() = nScrX;
- aClipRect.Right() = nScrX+nScrW;
+ aAreaParam.maClipRect.Left() = nScrX;
+ aAreaParam.maClipRect.Right() = nScrX+nScrW;
}
if (!bVClip)
{
- aClipRect.Top() = nScrY;
- aClipRect.Bottom() = nScrY+nScrH;
+ aAreaParam.maClipRect.Top() = nScrY;
+ aAreaParam.maClipRect.Bottom() = nScrY+nScrH;
}
// aClipRect is not used after SetClipRegion/IntersectClipRegion,
// so it can be modified here
if (bPixelToLogic)
- aClipRect = pRefDevice->PixelToLogic( aClipRect );
+ aAreaParam.maClipRect = pRefDevice->PixelToLogic( aAreaParam.maClipRect );
if (bMetaFile)
{
pDev->Push();
- pDev->IntersectClipRegion( aClipRect );
+ pDev->IntersectClipRegion( aAreaParam.maClipRect );
}
else
- pDev->SetClipRegion( Region( aClipRect ) );
+ pDev->SetClipRegion( Region( aAreaParam.maClipRect ) );
}
Point aURLStart( nJustPosX, nJustPosY ); // copy before modifying for orientation
@@ -1827,7 +1995,7 @@ long lcl_GetEditSize( EditEngine& rEngine, BOOL bWidth, BOOL bSwap, long nAttrRo
void ScOutputData::ShrinkEditEngine( EditEngine& rEngine, const Rectangle& rAlignRect,
long nLeftM, long nTopM, long nRightM, long nBottomM,
BOOL bWidth, USHORT nOrient, long nAttrRotate, BOOL bPixelToLogic,
- long& rEngineWidth, long& rEngineHeight, long& rNeededPixel, BOOL& rLeftClip, BOOL& rRightClip )
+ long& rEngineWidth, long& rEngineHeight, long& rNeededPixel, bool& rLeftClip, bool& rRightClip )
{
if ( !bWidth )
{
@@ -2149,10 +2317,7 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
nPosY = nScrY;
}
- Rectangle aAlignRect;
- Rectangle aClipRect;
- BOOL bLeftClip = FALSE;
- BOOL bRightClip = FALSE;
+ OutputAreaParam aAreaParam;
//
// Initial page size - large for normal text, cell size for automatic line breaks
@@ -2167,27 +2332,39 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
//! handle nArrY == 0
GetOutputArea( nXForPos, nArrYForPos, nPosX, nPosY, nCellX, nCellY, 0,
- *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
- bCellIsValue, TRUE, FALSE,
- aAlignRect, aClipRect, bLeftClip, bRightClip );
+ *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
+ bCellIsValue, true, false, aAreaParam );
//! special ScEditUtil handling if formatting for printer
if ( eOrient == SVX_ORIENTATION_TOPBOTTOM || eOrient == SVX_ORIENTATION_BOTTOMTOP )
- aPaperSize.Width() = aAlignRect.GetHeight() - nTopM - nBottomM;
+ aPaperSize.Width() = aAreaParam.maAlignRect.GetHeight() - nTopM - nBottomM;
else
- aPaperSize.Width() = aAlignRect.GetWidth() - nLeftM - nRightM;
+ aPaperSize.Width() = aAreaParam.maAlignRect.GetWidth() - nLeftM - nRightM;
if (bAsianVertical && bBreak)
{
// add some extra height (default margin value) for safety
// as long as GetEditArea isn't used below
long nExtraHeight = (long)( 20 * nPPTY );
- aPaperSize.Height() = aAlignRect.GetHeight() - nTopM - nBottomM + nExtraHeight;
+ aPaperSize.Height() = aAreaParam.maAlignRect.GetHeight() - nTopM - nBottomM + nExtraHeight;
}
}
if (bPixelToLogic)
- pEngine->SetPaperSize(pRefDevice->PixelToLogic(aPaperSize));
+ {
+ Size aLogicSize = pRefDevice->PixelToLogic(aPaperSize);
+ if ( bBreak && !bAsianVertical && pRefDevice != pFmtDevice )
+ {
+ // #i85342# screen display and formatting for printer,
+ // use same GetEditArea call as in ScViewData::SetEditEngine
+
+ Fraction aFract(1,1);
+ Rectangle aUtilRect = ScEditUtil( pDoc, nCellX, nCellY, nTab, Point(0,0), pFmtDevice,
+ HMM_PER_TWIPS, HMM_PER_TWIPS, aFract, aFract ).GetEditArea( pPattern, FALSE );
+ aLogicSize.Width() = aUtilRect.GetWidth();
+ }
+ pEngine->SetPaperSize(aLogicSize);
+ }
else
pEngine->SetPaperSize(aPaperSize);
@@ -2372,26 +2549,26 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
{
// for break, the first GetOutputArea call is sufficient
GetOutputArea( nXForPos, nArrYForPos, nPosX, nPosY, nCellX, nCellY, nNeededPixel,
- *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
- bCellIsValue || bRepeat || bShrink, FALSE, FALSE,
- aAlignRect, aClipRect, bLeftClip, bRightClip );
+ *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
+ bCellIsValue || bRepeat || bShrink, false, false, aAreaParam );
if ( bShrink )
{
BOOL bWidth = ( eOrient == SVX_ORIENTATION_STANDARD && !bAsianVertical );
- ShrinkEditEngine( *pEngine, aAlignRect,
+ ShrinkEditEngine( *pEngine, aAreaParam.maAlignRect,
nLeftM, nTopM, nRightM, nBottomM, bWidth,
sal::static_int_cast<USHORT>(eOrient), 0, bPixelToLogic,
- nEngineWidth, nEngineHeight, nNeededPixel, bLeftClip, bRightClip );
+ nEngineWidth, nEngineHeight, nNeededPixel,
+ aAreaParam.mbLeftClip, aAreaParam.mbRightClip );
}
- if ( bRepeat && !bLeftClip && !bRightClip && pEngine->GetParagraphCount() == 1 )
+ if ( bRepeat && !aAreaParam.mbLeftClip && !aAreaParam.mbRightClip && pEngine->GetParagraphCount() == 1 )
{
// First check if twice the space for the formatted text is available
// (otherwise just keep it unchanged).
long nFormatted = nNeededPixel - nLeftM - nRightM; // without margin
- long nAvailable = aAlignRect.GetWidth() - nLeftM - nRightM;
+ long nAvailable = aAreaParam.maAlignRect.GetWidth() - nLeftM - nRightM;
if ( nAvailable >= 2 * nFormatted )
{
// "repeat" is handled with unformatted text (for performance reasons)
@@ -2425,7 +2602,7 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
}
}
- if ( bCellIsValue && ( bLeftClip || bRightClip ) )
+ if ( bCellIsValue && ( aAreaParam.mbLeftClip || aAreaParam.mbRightClip ) )
{
pEngine->SetText( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("###")) );
nEngineWidth = (long) pEngine->CalcTextWidth();
@@ -2448,11 +2625,11 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
}
}
- long nStartX = aAlignRect.Left();
- long nStartY = aAlignRect.Top();
- long nCellWidth = aAlignRect.GetWidth();
+ long nStartX = aAreaParam.maAlignRect.Left();
+ long nStartY = aAreaParam.maAlignRect.Top();
+ long nCellWidth = aAreaParam.maAlignRect.GetWidth();
long nOutWidth = nCellWidth - 1 - nLeftM - nRightM;
- long nOutHeight = aAlignRect.GetHeight() - nTopM - nBottomM;
+ long nOutHeight = aAreaParam.maAlignRect.GetHeight() - nTopM - nBottomM;
if ( bBreak || eOrient != SVX_ORIENTATION_STANDARD || bAsianVertical )
{
@@ -2472,21 +2649,21 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
nStartX += nLeftM;
}
- BOOL bOutside = ( aClipRect.Right() < nScrX || aClipRect.Left() >= nScrX + nScrW );
- if ( aClipRect.Left() < nScrX )
+ BOOL bOutside = ( aAreaParam.maClipRect.Right() < nScrX || aAreaParam.maClipRect.Left() >= nScrX + nScrW );
+ if ( aAreaParam.maClipRect.Left() < nScrX )
{
- aClipRect.Left() = nScrX;
- bLeftClip = TRUE;
+ aAreaParam.maClipRect.Left() = nScrX;
+ aAreaParam.mbLeftClip = true;
}
- if ( aClipRect.Right() > nScrX + nScrW )
+ if ( aAreaParam.maClipRect.Right() > nScrX + nScrW )
{
- aClipRect.Right() = nScrX + nScrW; //! minus one?
- bRightClip = TRUE;
+ aAreaParam.maClipRect.Right() = nScrX + nScrW; //! minus one?
+ aAreaParam.mbRightClip = true;
}
if ( !bHidden && !bOutside )
{
- BOOL bClip = bLeftClip || bRightClip;
+ bool bClip = aAreaParam.mbLeftClip || aAreaParam.mbRightClip;
BOOL bSimClip = FALSE;
if ( bWrapFields )
@@ -2495,14 +2672,14 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
bClip = TRUE;
}
- if ( aClipRect.Top() < nScrY )
+ if ( aAreaParam.maClipRect.Top() < nScrY )
{
- aClipRect.Top() = nScrY;
+ aAreaParam.maClipRect.Top() = nScrY;
bClip = TRUE;
}
- if ( aClipRect.Bottom() > nScrY + nScrH )
+ if ( aAreaParam.maClipRect.Bottom() > nScrY + nScrH )
{
- aClipRect.Bottom() = nScrY + nScrH; //! minus one?
+ aAreaParam.maClipRect.Bottom() = nScrY + nScrH; //! minus one?
bClip = TRUE;
}
@@ -2554,8 +2731,8 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
bAnyClipped = TRUE;
long nMarkPixel = (long)( SC_CLIPMARK_SIZE * nPPTX );
- if ( aClipRect.Right() - nMarkPixel > aClipRect.Left() )
- aClipRect.Right() -= nMarkPixel;
+ if ( aAreaParam.maClipRect.Right() - nMarkPixel > aAreaParam.maClipRect.Left() )
+ aAreaParam.maClipRect.Right() -= nMarkPixel;
}
}
@@ -2579,9 +2756,9 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
// Clip marks are already handled in GetOutputArea
if (bPixelToLogic)
- aLogicClip = pRefDevice->PixelToLogic( aClipRect );
+ aLogicClip = pRefDevice->PixelToLogic( aAreaParam.maClipRect );
else
- aLogicClip = aClipRect;
+ aLogicClip = aAreaParam.maClipRect;
if (bClip) // bei bSimClip nur aClipRect initialisieren
{
@@ -3215,10 +3392,7 @@ void ScOutputData::DrawRotated(BOOL bPixelToLogic)
// use GetOutputArea to hide the grid
// (clip region is done manually below)
- BOOL bLeftClip = FALSE;
- BOOL bRightClip = FALSE;
- Rectangle aAlignRect;
- Rectangle aClipRect;
+ OutputAreaParam aAreaParam;
SCCOL nCellX = nX;
SCROW nCellY = nY;
@@ -3231,8 +3405,7 @@ void ScOutputData::DrawRotated(BOOL bPixelToLogic)
GetOutputArea( nX, nArrY, nCellStartX, nPosY, nCellX, nCellY, nNeededWidth,
*pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
- FALSE, FALSE, TRUE,
- aAlignRect, aClipRect, bLeftClip, bRightClip );
+ FALSE, FALSE, TRUE, aAreaParam );
if ( bShrink )
{
@@ -3240,19 +3413,19 @@ void ScOutputData::DrawRotated(BOOL bPixelToLogic)
pRefDevice->LogicToPixel(Size(nEngineWidth,0)).Width() : nEngineWidth;
long nNeededPixel = nPixelWidth + nLeftM + nRightM;
- bLeftClip = bRightClip = TRUE;
+ aAreaParam.mbLeftClip = aAreaParam.mbRightClip = TRUE;
// always do height
- ShrinkEditEngine( *pEngine, aAlignRect, nLeftM, nTopM, nRightM, nBottomM,
+ ShrinkEditEngine( *pEngine, aAreaParam.maAlignRect, nLeftM, nTopM, nRightM, nBottomM,
FALSE, sal::static_int_cast<USHORT>(eOrient), nAttrRotate, bPixelToLogic,
- nEngineWidth, nEngineHeight, nNeededPixel, bLeftClip, bRightClip );
+ nEngineWidth, nEngineHeight, nNeededPixel, aAreaParam.mbLeftClip, aAreaParam.mbRightClip );
if ( eRotMode == SVX_ROTATE_MODE_STANDARD )
{
// do width only if rotating within the cell (standard mode)
- ShrinkEditEngine( *pEngine, aAlignRect, nLeftM, nTopM, nRightM, nBottomM,
+ ShrinkEditEngine( *pEngine, aAreaParam.maAlignRect, nLeftM, nTopM, nRightM, nBottomM,
TRUE, sal::static_int_cast<USHORT>(eOrient), nAttrRotate, bPixelToLogic,
- nEngineWidth, nEngineHeight, nNeededPixel, bLeftClip, bRightClip );
+ nEngineWidth, nEngineHeight, nNeededPixel, aAreaParam.mbLeftClip, aAreaParam.mbRightClip );
}
// nEngineWidth/nEngineHeight is updated in ShrinkEditEngine
@@ -3306,19 +3479,19 @@ void ScOutputData::DrawRotated(BOOL bPixelToLogic)
}
if (bPixelToLogic)
- aClipRect = pRefDevice->PixelToLogic( Rectangle(
+ aAreaParam.maClipRect = pRefDevice->PixelToLogic( Rectangle(
Point(nClipStartX,nClipStartY), aClipSize ) );
else
- aClipRect = Rectangle(Point(nClipStartX, nClipStartY),
+ aAreaParam.maClipRect = Rectangle(Point(nClipStartX, nClipStartY),
aClipSize ); // Scale = 1
if (bMetaFile)
{
pDev->Push();
- pDev->IntersectClipRegion( aClipRect );
+ pDev->IntersectClipRegion( aAreaParam.maClipRect );
}
else
- pDev->SetClipRegion( Region( aClipRect ) );
+ pDev->SetClipRegion( Region( aAreaParam.maClipRect ) );
}
Point aLogicStart;
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index 3653c8487bd4..7d4e6c2a1954 100644
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -84,7 +84,7 @@ File gid_File_Lib_Cached1
#endif
End
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Configmgr, configmgr)
+SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_Configmgr, configmgr.uno)
#ifdef WITH_LDAP
File gid_File_Lib_Ldapbe2
diff --git a/scp2/source/ooo/scpaction_ooo.scp b/scp2/source/ooo/scpaction_ooo.scp
index e5314c7c386e..d6f294f1da08 100644
--- a/scp2/source/ooo/scpaction_ooo.scp
+++ b/scp2/source/ooo/scpaction_ooo.scp
@@ -358,7 +358,11 @@ End
#ifdef MACOSX
ScpAction scp_Copy_Dmg_Background_Image
+ #if defined(BUILD_SPECIAL)
Copy = "osxdndinstall.png";
+ #else
+ Copy = "osxdndinstall_nologo.png";
+ #endif
Name = "background.png";
UnixRights = 444;
Styles = ();
diff --git a/scp2/source/ooo/ure.scp b/scp2/source/ooo/ure.scp
index ca7a7222b074..2bf8db09254c 100755
--- a/scp2/source/ooo/ure.scp
+++ b/scp2/source/ooo/ure.scp
@@ -634,6 +634,15 @@ File gid_File_Dl_Jpipe
End
#endif
+#if defined SOLAR_JAVA && defined WNT
+File gid_File_Dl_Jpipx
+ TXT_FILE_BODY;
+ Dir = SCP2_URE_DL_DIR;
+ Name = SCP2_URE_DL_NORMAL("jpipx");
+ Styles = (PACKED);
+End
+#endif
+
#if defined SOLAR_JAVA
File gid_File_Dl_Juh
TXT_FILE_BODY;
@@ -1153,6 +1162,7 @@ Module gid_Module_Root_Ure_Hidden
gid_File_Dl_AffineUnoUno,
gid_File_Dl_LogUnoUno,
gid_File_Dl_Jpipe,
+ gid_File_Dl_Jpipx,
gid_File_Dl_Juh,
gid_File_Dl_Juhx,
gid_File_Dl_Acceptor,
diff --git a/sd/qa/unoapi/sd.sce b/sd/qa/unoapi/sd.sce
index 84a5216c5ee1..c964c1ba0090 100644
--- a/sd/qa/unoapi/sd.sce
+++ b/sd/qa/unoapi/sd.sce
@@ -1,11 +1,11 @@
-o sd.AccessibleDrawDocumentView
--o sd.AccessibleOutlineView
+#i111199 -o sd.AccessibleOutlineView
#i35935# -o sd.AccessibleSlideView
--o sd.DrawController_DrawView
--o sd.DrawController_HandoutView
--o sd.DrawController_NotesView
--o sd.DrawController_OutlineView
--o sd.DrawController_PresentationView
+#i111042# -o sd.DrawController_DrawView
+#i111042# -o sd.DrawController_HandoutView
+#i111042# -o sd.DrawController_NotesView
+#i111043# -o sd.DrawController_OutlineView
+#i111042# -o sd.DrawController_PresentationView
-o sd.SdDocLinkTargets
-o sd.SdDrawPage
-o sd.SdDrawPagesAccess
@@ -16,7 +16,7 @@
-o sd.SdMasterPagesAccess
-o sd.SdPageLinkTargets
-o sd.SdXCustomPresentation
--o sd.SdXCustomPresentationAccess
+#i111329 -o sd.SdXCustomPresentationAccess
#i84994# -o sd.SdXImpressDocument
-o sd.SdXPresentation
#i87746 -o sd.SdXShape
diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx
index f07245d1ff31..c9d083db86d9 100644
--- a/sd/source/filter/eppt/epptso.cxx
+++ b/sd/source/filter/eppt/epptso.cxx
@@ -5358,6 +5358,12 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a
pClientTextBox->Write( pOut->GetData(), pOut->Tell() );
delete pOut, aTextRule.pOut = NULL;
}
+ if ( aExtBu.Tell() )
+ {
+ if ( !pClientData )
+ pClientData = new SvMemoryStream( 0x200, 0x200 );
+ ImplProgTagContainer( pClientData, &aExtBu );
+ }
}
}
}
diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx
index 4b9aecb02ac5..55ba07c3fa23 100644
--- a/sd/source/ui/view/drviews1.cxx
+++ b/sd/source/ui/view/drviews1.cxx
@@ -154,12 +154,32 @@ void DrawViewShell::Deactivate(BOOL bIsMDIActivate)
ViewShell::Deactivate(bIsMDIActivate);
}
+namespace
+{
+ class LockUI
+ {
+ private:
+ void Lock(bool bLock);
+ SfxViewFrame *mpFrame;
+ public:
+ LockUI(SfxViewFrame *pFrame) : mpFrame(pFrame) { Lock(true); }
+ ~LockUI() { Lock(false); }
+
+ };
+
+ void LockUI::Lock(bool bLock)
+ {
+ if (!mpFrame)
+ return;
+ mpFrame->Enable( !bLock );
+ }
+}
+
/*************************************************************************
|*
|* Wird gerufen, wenn sich der Selektionszustand der View aendert
|*
\************************************************************************/
-
void DrawViewShell::SelectionHasChanged (void)
{
Invalidate();
@@ -213,6 +233,8 @@ void DrawViewShell::SelectionHasChanged (void)
// we need to deselect it now
if (!pOleObj)
{
+ //#i47279# disable frame until after object has completed unload
+ LockUI aUILock(GetViewFrame());
pIPClient->DeactivateObject();
//HMHmpDrView->ShowMarkHdl();
}
diff --git a/setup_native/prj/d.lst b/setup_native/prj/d.lst
index 67e9573107b3..6aa6460d1823 100644
--- a/setup_native/prj/d.lst
+++ b/setup_native/prj/d.lst
@@ -33,9 +33,11 @@ mkdir: %_DEST%\bin%_EXT%\osolsmf
..\source\mac\*.icns %_DEST%\bin%_EXT%\*.icns
..\source\mac\Info.plist.langpack %_DEST%\bin%_EXT%\Info.plist.langpack
..\source\mac\ooo\osxdndinstall.png %_DEST%\bin%_EXT%\osl\osxdndinstall.png
+..\source\mac\ooo\osxdndinstall_nologo.png %_DEST%\bin%_EXT%\osl\osxdndinstall_nologo.png
..\source\mac\ooo\DS_Store %_DEST%\bin%_EXT%\osl\DS_Store
..\source\mac\ooo\DS_Store_Langpack %_DEST%\bin%_EXT%\osl\DS_Store_Langpack
..\source\mac\broffice\osxdndinstall.png %_DEST%\bin%_EXT%\broffice\osxdndinstall.png
+..\source\mac\broffice\osxdndinstall_nologo.png %_DEST%\bin%_EXT%\broffice\osxdndinstall_nologo.png
..\source\mac\broffice\DS_Store %_DEST%\bin%_EXT%\broffice\DS_Store
..\source\java\openofficeorg_setup.gif %_DEST%\bin%_EXT%\osl\Setup.gif
..\source\java\brofficeorg_setup.gif %_DEST%\bin%_EXT%\broffice\Setup.gif
diff --git a/setup_native/source/mac/broffice/osxdndinstall_nologo.png b/setup_native/source/mac/broffice/osxdndinstall_nologo.png
new file mode 100644
index 000000000000..8c5636ec05ca
--- /dev/null
+++ b/setup_native/source/mac/broffice/osxdndinstall_nologo.png
Binary files differ
diff --git a/setup_native/source/mac/ooo/osxdndinstall_nologo.png b/setup_native/source/mac/ooo/osxdndinstall_nologo.png
new file mode 100644
index 000000000000..7133e7387ac1
--- /dev/null
+++ b/setup_native/source/mac/ooo/osxdndinstall_nologo.png
Binary files differ
diff --git a/sfx2/qa/unoapi/sfx.sce b/sfx2/qa/unoapi/sfx.sce
index 2aaf12c25950..6176c0668731 100644
--- a/sfx2/qa/unoapi/sfx.sce
+++ b/sfx2/qa/unoapi/sfx.sce
@@ -2,4 +2,4 @@
-o sfx.DocumentTemplates
-o sfx.FrameLoader
-o sfx.SfxMacroLoader
--o sfx.StandaloneDocumentInfo
+#i111283 -o sfx.StandaloneDocumentInfo
diff --git a/sfx2/source/doc/SfxDocumentMetaData.cxx b/sfx2/source/doc/SfxDocumentMetaData.cxx
index f46f3583cfd8..14474dd2904d 100644
--- a/sfx2/source/doc/SfxDocumentMetaData.cxx
+++ b/sfx2/source/doc/SfxDocumentMetaData.cxx
@@ -38,7 +38,6 @@
#include "com/sun/star/util/XModifiable.hpp"
#include "com/sun/star/xml/sax/XSAXSerializable.hpp"
-#include "com/sun/star/lang/NullPointerException.hpp"
#include "com/sun/star/lang/WrappedTargetRuntimeException.hpp"
#include "com/sun/star/lang/EventObject.hpp"
#include "com/sun/star/beans/XPropertySet.hpp"
@@ -248,25 +247,21 @@ public:
const css::uno::Sequence< css::beans::PropertyValue > & Medium)
throw (css::uno::RuntimeException, css::lang::IllegalArgumentException,
css::io::WrongFormatException,
- css::lang::WrappedTargetException, css::io::IOException,
- css::uno::Exception);
+ css::lang::WrappedTargetException, css::io::IOException);
virtual void SAL_CALL loadFromMedium(const ::rtl::OUString & URL,
const css::uno::Sequence< css::beans::PropertyValue > & Medium)
throw (css::uno::RuntimeException,
css::io::WrongFormatException,
- css::lang::WrappedTargetException, css::io::IOException,
- css::uno::Exception);
+ css::lang::WrappedTargetException, css::io::IOException);
virtual void SAL_CALL storeToStorage(
const css::uno::Reference< css::embed::XStorage > & Storage,
const css::uno::Sequence< css::beans::PropertyValue > & Medium)
throw (css::uno::RuntimeException, css::lang::IllegalArgumentException,
- css::lang::WrappedTargetException, css::io::IOException,
- css::uno::Exception);
+ css::lang::WrappedTargetException, css::io::IOException);
virtual void SAL_CALL storeToMedium(const ::rtl::OUString & URL,
const css::uno::Sequence< css::beans::PropertyValue > & Medium)
throw (css::uno::RuntimeException,
- css::lang::WrappedTargetException, css::io::IOException,
- css::uno::Exception);
+ css::lang::WrappedTargetException, css::io::IOException);
// ::com::sun::star::lang::XInitialization:
virtual void SAL_CALL initialize(
@@ -1869,8 +1864,7 @@ SfxDocumentMetaData::loadFromStorage(
const css::uno::Sequence< css::beans::PropertyValue > & Medium)
throw (css::uno::RuntimeException, css::lang::IllegalArgumentException,
css::io::WrongFormatException,
- css::lang::WrappedTargetException, css::io::IOException,
- css::uno::Exception)
+ css::lang::WrappedTargetException, css::io::IOException)
{
if (!xStorage.is()) throw css::lang::IllegalArgumentException(
::rtl::OUString::createFromAscii("SfxDocumentMetaData::loadFromStorage:"
@@ -1882,10 +1876,10 @@ SfxDocumentMetaData::loadFromStorage(
xStorage->openStreamElement(
::rtl::OUString::createFromAscii(s_metaXml),
css::embed::ElementModes::READ) );
- if (!xStream.is()) throw css::lang::NullPointerException();
+ if (!xStream.is()) throw css::uno::RuntimeException();
css::uno::Reference<css::io::XInputStream> xInStream =
xStream->getInputStream();
- if (!xInStream.is()) throw css::lang::NullPointerException();
+ if (!xInStream.is()) throw css::uno::RuntimeException();
// create DOM parser service
css::uno::Reference<css::lang::XMultiComponentFactory> xMsf (
@@ -1949,8 +1943,7 @@ SfxDocumentMetaData::storeToStorage(
const css::uno::Reference< css::embed::XStorage > & xStorage,
const css::uno::Sequence< css::beans::PropertyValue > & Medium)
throw (css::uno::RuntimeException, css::lang::IllegalArgumentException,
- css::lang::WrappedTargetException, css::io::IOException,
- css::uno::Exception)
+ css::lang::WrappedTargetException, css::io::IOException)
{
if (!xStorage.is()) throw css::lang::IllegalArgumentException(
::rtl::OUString::createFromAscii("SfxDocumentMetaData::storeToStorage:"
@@ -1966,7 +1959,7 @@ SfxDocumentMetaData::storeToStorage(
xStorage->openStreamElement(::rtl::OUString::createFromAscii(s_metaXml),
css::embed::ElementModes::WRITE
| css::embed::ElementModes::TRUNCATE);
- if (!xStream.is()) throw css::lang::NullPointerException();
+ if (!xStream.is()) throw css::uno::RuntimeException();
css::uno::Reference< css::beans::XPropertySet > xStreamProps(xStream,
css::uno::UNO_QUERY_THROW);
xStreamProps->setPropertyValue(
@@ -1980,7 +1973,7 @@ SfxDocumentMetaData::storeToStorage(
css::uno::makeAny(static_cast<sal_Bool> (sal_False)));
css::uno::Reference<css::io::XOutputStream> xOutStream =
xStream->getOutputStream();
- if (!xOutStream.is()) throw css::lang::NullPointerException();
+ if (!xOutStream.is()) throw css::uno::RuntimeException();
css::uno::Reference<css::lang::XMultiComponentFactory> xMsf (
m_xContext->getServiceManager());
css::uno::Reference<css::io::XActiveDataSource> xSaxWriter(
@@ -2028,8 +2021,7 @@ void SAL_CALL
SfxDocumentMetaData::loadFromMedium(const ::rtl::OUString & URL,
const css::uno::Sequence< css::beans::PropertyValue > & Medium)
throw (css::uno::RuntimeException, css::io::WrongFormatException,
- css::lang::WrappedTargetException, css::io::IOException,
- css::uno::Exception)
+ css::lang::WrappedTargetException, css::io::IOException)
{
css::uno::Reference<css::io::XInputStream> xIn;
::comphelper::MediaDescriptor md(Medium);
@@ -2063,7 +2055,7 @@ SfxDocumentMetaData::loadFromMedium(const ::rtl::OUString & URL,
css::uno::makeAny(e));
}
if (!xStorage.is()) {
- throw css::lang::NullPointerException(::rtl::OUString::createFromAscii(
+ throw css::uno::RuntimeException(::rtl::OUString::createFromAscii(
"SfxDocumentMetaData::loadFromMedium: cannot get Storage"),
*this);
}
@@ -2074,8 +2066,7 @@ void SAL_CALL
SfxDocumentMetaData::storeToMedium(const ::rtl::OUString & URL,
const css::uno::Sequence< css::beans::PropertyValue > & Medium)
throw (css::uno::RuntimeException,
- css::lang::WrappedTargetException, css::io::IOException,
- css::uno::Exception)
+ css::lang::WrappedTargetException, css::io::IOException)
{
::comphelper::MediaDescriptor md(Medium);
if (!URL.equalsAscii("")) {
@@ -2087,7 +2078,7 @@ SfxDocumentMetaData::storeToMedium(const ::rtl::OUString & URL,
if (!xStorage.is()) {
- throw css::lang::NullPointerException(::rtl::OUString::createFromAscii(
+ throw css::uno::RuntimeException(::rtl::OUString::createFromAscii(
"SfxDocumentMetaData::storeToMedium: cannot get Storage"),
*this);
}
diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx
index 5b12ac5537f7..24f2f359607f 100644
--- a/sfx2/source/doc/guisaveas.cxx
+++ b/sfx2/source/doc/guisaveas.cxx
@@ -835,7 +835,8 @@ sal_Bool ModelData_Impl::OutputFileDialog( sal_Int8 nStoreMode,
}
::rtl::OUString aAdjustToType;
- if ( ( nStoreMode & EXPORT_REQUESTED ) && !( nStoreMode & WIDEEXPORT_REQUESTED ))
+
+ if ( ( nStoreMode & EXPORT_REQUESTED ) && !( nStoreMode & WIDEEXPORT_REQUESTED ) )
{
// it is export, set the preselected filter
::rtl::OUString aFilterUIName = aPreselectedFilterPropsHM.getUnpackedValueOrDefault(
diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl
index 6f824f34ff0c..5ccedccb6027 100644
--- a/solenv/bin/macosx-change-install-names.pl
+++ b/solenv/bin/macosx-change-install-names.pl
@@ -44,6 +44,8 @@ sub action($$$)
'shl/OOO/URELIB' => '@loader_path/../ure-link/lib',
'shl/OOO/OOO' => '@loader_path',
'shl/OXT/URELIB' => '@executable_path/urelibs',
+ 'shl/BOXT/URELIB' => '@executable_path/urelibs',
+ 'shl/BOXT/OOO' => '@loader_path/../../../../../../basis-link/program',
'shl/NONE/URELIB' => '@__VIA_LIBRARY_PATH__',
'shl/NONE/OOO' => '@__VIA_LIBRARY_PATH__',
'shl/NONE/NONE' => '@__VIA_LIBRARY_PATH__');
@@ -54,7 +56,7 @@ sub action($$$)
}
@ARGV == 3 || @ARGV >= 2 && $ARGV[0] eq "extshl" or die
- 'Usage: app|shl|extshl UREBIN|URELIB|OOO|SDK|BRAND|OXT|NONE <filepath>*';
+ 'Usage: app|shl|extshl UREBIN|URELIB|OOO|SDK|BRAND|OXT|BOXT|NONE <filepath>*';
$type = shift @ARGV;
$loc = shift @ARGV;
if ($type eq "extshl")
diff --git a/solenv/bin/modules/installer/environment.pm b/solenv/bin/modules/installer/environment.pm
index 2ee6fd41af47..b54912b72616 100644
--- a/solenv/bin/modules/installer/environment.pm
+++ b/solenv/bin/modules/installer/environment.pm
@@ -131,7 +131,9 @@ sub set_global_environment_variables
if ( $ENV{'SOLAR_JAVA'} ) { $installer::globals::solarjavaset = 1; }
if ( $ENV{'RPM'} ) { $installer::globals::rpm = $ENV{'RPM'}; }
if ( $ENV{'DONTCOMPRESS'} ) { $installer::globals::solarisdontcompress = 1; }
+ if (( $ENV{'DISABLE_STRIP'} ) && ( $ENV{'DISABLE_STRIP'} ne '' )) { $installer::globals::strip = 0; }
+ if ( $installer::globals::localinstalldir ) { $installer::globals::localinstalldirset = 1; }
# Special handling, if LOCALINSTALLDIR contains "~" in the path
if ( $installer::globals::localinstalldir =~ /^\s*\~/ ) { check_tilde_in_directory(); }
}
diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm
index 564df06e79e2..5e26b604ad41 100644
--- a/solenv/bin/modules/installer/globals.pm
+++ b/solenv/bin/modules/installer/globals.pm
@@ -236,7 +236,7 @@ BEGIN
$mergefiles_added_into_collector = 0;
$creating_windows_installer_patch = 0;
- $strip = $ENV{DISABLE_STRIP} eq '';
+ $strip = 1;
$solarjava = 0;
$jdklib = "";
$jrepath = "";
diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm
index bbc65d3c1f7a..df3b331b80d8 100644
--- a/solenv/bin/modules/installer/systemactions.pm
+++ b/solenv/bin/modules/installer/systemactions.pm
@@ -321,6 +321,13 @@ sub create_directories
else
{
$path = $installer::globals::unpackpath . $installer::globals::separator;
+
+ # special handling, if LOCALINSTALLDIR is set
+ if (( $installer::globals::localinstalldirset ) && ( $newdirectory eq "install" ))
+ {
+ $installer::globals::localinstalldir =~ s/\Q$installer::globals::separator\E\s*$//;
+ $path = $installer::globals::localinstalldir . $installer::globals::separator;
+ }
}
$infoline = "create_directories: Using $path for $newdirectory !\n";
diff --git a/solenv/bin/modules/installer/worker.pm b/solenv/bin/modules/installer/worker.pm
index 6cc3c1e3f5db..e8a8f922bc41 100644
--- a/solenv/bin/modules/installer/worker.pm
+++ b/solenv/bin/modules/installer/worker.pm
@@ -402,11 +402,6 @@ sub create_installation_directory
else
{
$installdir = installer::systemactions::create_directories("install", $languageref);
- if ( $installer::globals::localinstalldir )
- {
- $installdir = $installer::globals::localinstalldir;
- $installer::globals::localinstalldirset = 1;
- }
installer::logger::print_message( "... creating installation set in $installdir ...\n" );
remove_old_installation_sets($installdir);
my $inprogressinstalldir = $installdir . "_inprogress";
diff --git a/solenv/bin/packregistry.xslt b/solenv/bin/packregistry.xslt
index 76b4c5eeffe8..7c118f90136f 100644
--- a/solenv/bin/packregistry.xslt
+++ b/solenv/bin/packregistry.xslt
@@ -28,6 +28,7 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:oor="http://openoffice.org/2001/registry">
+ <xsl:param name="prefix"/>
<xsl:strip-space elements="*"/>
<xsl:preserve-space elements="value it"/>
<!-- TODO: strip space from "value" elements that have "it" children -->
@@ -45,12 +46,13 @@
(e.g., xcs files preceeding xcu files).
-->
<xsl:for-each select="list/filename">
+ <xsl:variable name="doc" select="document(concat($prefix, .))"/>
<xsl:choose>
- <xsl:when test="count(document(.)/oor:component-schema) = 1">
- <xsl:apply-templates select="document(.)/oor:component-schema"/>
+ <xsl:when test="count($doc/oor:component-schema) = 1">
+ <xsl:apply-templates select="$doc/oor:component-schema"/>
</xsl:when>
- <xsl:when test="count(document(.)/oor:component-data) = 1">
- <xsl:apply-templates select="document(.)/oor:component-data"/>
+ <xsl:when test="count($doc/oor:component-data) = 1">
+ <xsl:apply-templates select="$doc/oor:component-data"/>
</xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">
diff --git a/solenv/bin/subsequenttests b/solenv/bin/subsequenttests
index f0d86db89101..34e6b8034c70 100755
--- a/solenv/bin/subsequenttests
+++ b/solenv/bin/subsequenttests
@@ -102,7 +102,7 @@ while (@testpaths || $running > 0) {
defined($pid) or die("$counter: $!");
if ($pid == 0) {
chdir($testpath) or die("$counter: $!");
- $ENV{'OOO_SUBSEQUENT_TESTS'} = 'x';
+ $ENV{'OOO_SUBSEQUENT_TESTS'} = 'TRUE';
open(OUTPUT, $cmd) or die("$counter: $!");
while (<OUTPUT>) {
s/\r?\n$//;
diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini
index 65ae9636846a..885a126a6845 100644
--- a/solenv/config/sdev300.ini
+++ b/solenv/config/sdev300.ini
@@ -8,7 +8,7 @@ common
BIG_SVX TRUE
BMP_WRITES_FLAG TRUE
BUILD_SPECIAL TRUE
- BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT
+ BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT
common_build TRUE
COMMON_OUTDIR common
CONFIG_PROJECT config_office
@@ -47,7 +47,6 @@ common
WITH_FONTOOO YES
WITH_LDAP YES
wrapper_override_cc_wrapper TRUE
- BUILD_QADEVOOO YES
MAXPROC maxproc=15
}
common:0 IF %UPDATER% == YES
diff --git a/solenv/inc/installationtest.mk b/solenv/inc/installationtest.mk
index e13015d182ac..6806e15c69e7 100644
--- a/solenv/inc/installationtest.mk
+++ b/solenv/inc/installationtest.mk
@@ -49,12 +49,20 @@ installationtest_instpath = $(SOLARVERSION)/$(INPATH)/installation$(UPDMINOREXT)
.END
.IF "$(OS)" == "MACOSX"
-my_soffice = $(installationtest_instpath)/opt/OpenOffice.org.app/Contents/MacOS/soffice
+my_sofficepath = \
+ $(installationtest_instpath)/opt/OpenOffice.org.app/Contents/MacOS/soffice
.ELIF "$(OS)" == "WNT"
-my_soffice = \
+my_sofficepath = \
$(installationtest_instpath)'/opt/OpenOffice.org 3/program/soffice.exe'
.ELSE
-my_soffice = $(installationtest_instpath)/opt/openoffice.org3/program/soffice
+my_sofficepath = \
+ $(installationtest_instpath)/opt/openoffice.org3/program/soffice
+.END
+
+.IF "$(OOO_TEST_SOFFICE)" == ""
+my_soffice = path:$(my_sofficepath)
+.ELSE
+my_soffice = '$(OOO_TEST_SOFFICE:s/'/'\''/)'
.END
.IF "$(OOO_LIBRARY_PATH_VAR)" != ""
@@ -70,7 +78,7 @@ my_javaenv = \
# which is removed after smoketest); can be removed once issue 50885 is fixed;
# on other platforms, a single installation to solver is created in
# smoketestoo_native:
-.IF "$(OS)" == "WNT"
+.IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == ""
$(MISC)/$(TARGET)/installation.flag : $(shell \
ls $(installationtest_instset)/OOo_*_install-arc_$(defaultlangiso).zip)
$(MKDIRHIER) $(@:d)
@@ -87,10 +95,10 @@ cpptest .PHONY : $(MISC)/$(TARGET)/services.rdb
$(CPPUNITTESTER) \
-env:UNO_SERVICES=$(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb \
-env:UNO_TYPES=$(my_file)$(SOLARBINDIR)/types.rdb \
- -env:arg-path=$(my_soffice) -env:arg-user=$(MISC)/$(TARGET)/user \
+ -env:arg-soffice=$(my_soffice) -env:arg-user=$(MISC)/$(TARGET)/user \
$(my_cppenv) $(OOO_CPPTEST_ARGS)
$(RM) -r $(MISC)/$(TARGET)/user
-.IF "$(OS)" == "WNT"
+.IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == ""
$(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag
cpptest : $(MISC)/$(TARGET)/installation.flag
.END
@@ -107,12 +115,12 @@ javatest .PHONY : $(JAVATARGET)
$(MKDIRHIER) $(MISC)/$(TARGET)/user
$(JAVAI) $(JAVAIFLAGS) $(JAVACPS) \
'$(OOO_JUNIT_JAR)$(PATH_SEPERATOR)$(CLASSPATH)' \
- -Dorg.openoffice.test.arg.path=$(my_soffice) \
+ -Dorg.openoffice.test.arg.soffice=$(my_soffice) \
-Dorg.openoffice.test.arg.user=$(my_file)$(PWD)/$(MISC)/$(TARGET)/user \
$(my_javaenv) org.junit.runner.JUnitCore \
$(foreach,i,$(JAVATESTFILES) $(subst,/,. $(PACKAGE)).$(i:s/.java//))
$(RM) -r $(MISC)/$(TARGET)/user
-.IF "$(OS)" == "WNT"
+.IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == ""
$(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag
javatest : $(MISC)/$(TARGET)/installation.flag
.END
diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk
index 09b4169048a6..7237832e1cd3 100644
--- a/solenv/inc/libs.mk
+++ b/solenv/inc/libs.mk
@@ -166,10 +166,10 @@ LIBXML2LIB=-lxml2
NSS3LIB=-lnss3
NSPR4LIB=-lnspr4
PLC4LIB=-lplc4
-NSSCRYPTOLIBS=$(LIBXML2LIB) $(XMLSECLIB) $(XMLSECLIB-NSS) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
+NSSCRYPTOLIBS=$(XMLSECLIB-NSS) $(XMLSECLIB) $(LIBXML2LIB) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
.IF "$(GUI)$(COM)"=="WNTGCC"
XMLSECLIB-MS=-lxmlsec1-mscrypto
-MSCRYPTOLIBS=$(LIBXML2LIB) $(XMLSECLIB) $(XMLSECLIB-MS) $(CRYPT32LIB) $(ADVAPI32LIB)
+MSCRYPTOLIBS=$(XMLSECLIB) $(XMLSECLIB-MS) $(LIBXML2LIB) $(CRYPT32LIB) $(ADVAPI32LIB)
.ENDIF # "$(GUI)$(COM)"=="WNTGCC"
BROOKERLIB=-lbrooker$(DLLPOSTFIX)
SIMPLECMLIB=-lsimplecm$(DLLPOSTFIX)
@@ -349,7 +349,6 @@ PYUNOLIB=-lpyuno
LPSOLVELIB=-llpsolve55
SOFFICELIB=-lsofficeapp
UNOPKGAPPLIB=-lunopkgapp
-CONFIGMGRLIB=-lconfigmgr
TESTLIB=-ltest
.ELSE # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2"
@@ -419,8 +418,8 @@ LIBXML2LIB=libxml2.lib
NSS3LIB=nss3.lib
NSPR4LIB=nspr4.lib
PLC4LIB=plc4.lib
-NSSCRYPTOLIBS=$(LIBXML2LIB) $(XMLSECLIB) $(XMLSECLIB-NSS) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
-MSCRYPTOLIBS=$(LIBXML2LIB) $(XMLSECLIB) $(XMLSECLIB-MS) crypt32.lib advapi32.lib
+NSSCRYPTOLIBS=$(XMLSECLIB-NSS) $(XMLSECLIB) $(LIBXML2LIB) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
+MSCRYPTOLIBS=$(XMLSECLIB-MS) $(XMLSECLIB) $(LIBXML2LIB) crypt32.lib advapi32.lib
BROOKERLIB=ibrooker.lib
SIMPLECMLIB=isimplecm.lib
COMMUNILIB=icommuni.lib
@@ -531,7 +530,6 @@ PYUNOLIB=ipyuno.lib
LPSOLVELIB=lpsolve55.lib
SOFFICELIB=isofficeapp.lib
UNOPKGAPPLIB=iunopkgapp.lib
-CONFIGMGRLIB=iconfigmgr.lib
TESTLIB=itest.lib
.ENDIF # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2"
diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk
index a1d5c1fdcb5c..35f9f02ac2d6 100644
--- a/solenv/inc/minor.mk
+++ b/solenv/inc/minor.mk
@@ -1,5 +1,5 @@
RSCVERSION=300
-RSCREVISION=300m79(Build:9504)
-BUILD=9504
-LAST_MINOR=m79
+RSCREVISION=300m80(Build:9507)
+BUILD=9507
+LAST_MINOR=m80
SOURCEVERSION=DEV300
diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk
index d2fcafa3fe13..ccd8f929d5fe 100644
--- a/solenv/inc/settings.mk
+++ b/solenv/inc/settings.mk
@@ -1276,6 +1276,7 @@ LINKFLAGSRUNPATH_OOO*=
LINKFLAGSRUNPATH_SDK*=
LINKFLAGSRUNPATH_BRAND*=
LINKFLAGSRUNPATH_OXT*=
+LINKFLAGSRUNPATH_BOXT*=
LINKFLAGSRUNPATH_NONE*=
# make sure both linker variables are set
diff --git a/solenv/inc/unxlng.mk b/solenv/inc/unxlng.mk
index b27afb8c1fa4..62a96f9c5f49 100644
--- a/solenv/inc/unxlng.mk
+++ b/solenv/inc/unxlng.mk
@@ -151,6 +151,7 @@ LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\'
LINKFLAGSRUNPATH_SDK=-Wl,-rpath,\''$$ORIGIN/../../ure-link/lib'\'
LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\'
LINKFLAGSRUNPATH_OXT=
+LINKFLAGSRUNPATH_BOXT=-Wl,-rpath,\''$$ORIGIN/../../../../../../basis-link/program'\'
LINKFLAGSRUNPATH_NONE=
# flag -Wl,-z,noexecstack sets the NX bit on the stack
LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,combreloc $(LINKFLAGSDEFS)
diff --git a/solenv/inc/unxmacx.mk b/solenv/inc/unxmacx.mk
index 6ea51ae6ccfe..77a348138e30 100644
--- a/solenv/inc/unxmacx.mk
+++ b/solenv/inc/unxmacx.mk
@@ -206,6 +206,7 @@ LINKFLAGSRUNPATH_OOO=-install_name '@___________________________________________
LINKFLAGSRUNPATH_SDK=
LINKFLAGSRUNPATH_BRAND=
LINKFLAGSRUNPATH_OXT=
+LINKFLAGSRUNPATH_BOXT=
LINKFLAGSRUNPATH_NONE=-install_name '@__________________________________________________NONE/$(@:f)'
LINKFLAGS=$(LINKFLAGSDEFS)
diff --git a/solenv/inc/unxsoli4.mk b/solenv/inc/unxsoli4.mk
index 0f227f9520fc..5ddbe058b299 100644
--- a/solenv/inc/unxsoli4.mk
+++ b/solenv/inc/unxsoli4.mk
@@ -137,6 +137,7 @@ LINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\'
LINKFLAGSRUNPATH_SDK=-R\''$$ORIGIN/../../ure-link/lib'\'
LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\'
LINKFLAGSRUNPATH_OXT=
+LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../../../../basis-link/program'\'
LINKFLAGSRUNPATH_NONE=
LINKFLAGS=-w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=no%Cstd
LINKCFLAGS=-w -mt -z combreloc -norunpath
diff --git a/solenv/inc/unxsols4.mk b/solenv/inc/unxsols4.mk
index 0bd85aa0bd4f..92720da3de47 100644
--- a/solenv/inc/unxsols4.mk
+++ b/solenv/inc/unxsols4.mk
@@ -143,6 +143,7 @@ LINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\'
LINKFLAGSRUNPATH_SDK=-R\''$$ORIGIN/../../ure-link/lib'\'
LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\'
LINKFLAGSRUNPATH_OXT=
+LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../../../../basis-link/program'\'
LINKFLAGSRUNPATH_NONE=
LINKFLAGS=-w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=no%Cstd
LINKCFLAGS=-w -mt -z combreloc -norunpath
diff --git a/solenv/inc/unxsolu4.mk b/solenv/inc/unxsolu4.mk
index 494ecb0478b3..45dadc53f533 100644
--- a/solenv/inc/unxsolu4.mk
+++ b/solenv/inc/unxsolu4.mk
@@ -137,6 +137,8 @@ LINKFLAGSRUNPATH_UREBIN=-R\''$$ORIGIN/../lib:$$ORIGIN'\'
LINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\'
LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\'
LINKFLAGSRUNPATH_OXT=
+LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../../../../basis-link/program'\'
+LINKFLAGSRUNPATH_NONE=
LINKFLAGS=-m64 -w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=stlport4
LINKCFLAGS=-m64 -w -mt -z combreloc -norunpath
diff --git a/starmath/qa/unoapi/knownissues.xcl b/starmath/qa/unoapi/knownissues.xcl
index 960ad64ce13c..e11895ef3fe4 100644
--- a/starmath/qa/unoapi/knownissues.xcl
+++ b/starmath/qa/unoapi/knownissues.xcl
@@ -12,4 +12,7 @@ sm.SmEditAccessible::com::sun::star::accessibility::XAccessibleEventBroadcaster
sm.SmGraphicAccessible::com::sun::star::accessibility::XAccessibleEventBroadcaster
### i94275 ###
-sm.SmGraphicAccessible::com::sun::star::accessibility::XAccessibleText \ No newline at end of file
+sm.SmGraphicAccessible::com::sun::star::accessibility::XAccessibleText
+
+### i111220 ###
+sm.XMLMetaExporter::com::sun::star::document::XFilter
diff --git a/svl/inc/svl/zforlist.hxx b/svl/inc/svl/zforlist.hxx
index 00f2dbe92b4c..598295797ea6 100644
--- a/svl/inc/svl/zforlist.hxx
+++ b/svl/inc/svl/zforlist.hxx
@@ -333,6 +333,17 @@ class SvNumberFormatterRegistry_Impl;
class SVL_DLLPUBLIC SvNumberFormatter
{
public:
+ /**
+ * We can't technically have an "infinite" value, so we use an arbitrary
+ * upper precision threshold to represent the "unlimited" precision.
+ */
+ static const sal_uInt16 UNLIMITED_PRECISION;
+
+ /**
+ * Precision suitable for numbers displayed in input bar, for instance
+ * Calc's formula input bar.
+ */
+ static const sal_uInt16 INPUTSTRING_PRECISION;
/// Preferred ctor with service manager and language/country enum
SvNumberFormatter(
@@ -583,7 +594,7 @@ public:
/// Return the reference date
Date* GetNullDate();
/// Return the standard decimal precision
- short GetStandardPrec();
+ sal_uInt16 GetStandardPrec();
/// Return whether zero suppression is switched on
BOOL GetNoZero() { return bNoZero; }
/** Get the type of a format (or NUMBERFORMAT_UNDEFINED if no entry),
diff --git a/svl/inc/svl/zformat.hxx b/svl/inc/svl/zformat.hxx
index 7cdcf4db518d..7c361382796a 100644
--- a/svl/inc/svl/zformat.hxx
+++ b/svl/inc/svl/zformat.hxx
@@ -236,6 +236,12 @@ public:
// in fact that could be any string used in number formats.
static void LoadString( SvStream& rStream, String& rStr );
+ /**
+ * Get output string from a numeric value that fits the number of
+ * characters specified.
+ */
+ bool GetOutputString( double fNumber, sal_uInt16 nCharCount, String& rOutString ) const;
+
BOOL GetOutputString( double fNumber, String& OutString, Color** ppColor );
BOOL GetOutputString( String& sString, String& OutString, Color** ppColor );
@@ -487,6 +493,7 @@ private:
// standard number output
SVL_DLLPRIVATE void ImpGetOutputStandard( double& fNumber, String& OutString );
+ SVL_DLLPRIVATE void ImpGetOutputStdToPrecision( double& rNumber, String& rOutString, sal_uInt16 nPrecision ) const;
// numbers in input line
SVL_DLLPRIVATE void ImpGetOutputInputLine( double fNumber, String& OutString );
diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index 05dab66754e1..cb66a75558c2 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -61,6 +61,7 @@
#include <rtl/instance.hxx>
#include <math.h>
+#include <limits>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -178,6 +179,9 @@ SV_IMPL_PTRARR( NfWSStringsDtor, String* );
/***********************Funktionen SvNumberFormatter**************************/
+const sal_uInt16 SvNumberFormatter::UNLIMITED_PRECISION = ::std::numeric_limits<sal_uInt16>::max();
+const sal_uInt16 SvNumberFormatter::INPUTSTRING_PRECISION = ::std::numeric_limits<sal_uInt16>::max()-1;
+
SvNumberFormatter::SvNumberFormatter(
const Reference< XMultiServiceFactory >& xSMgr,
LanguageType eLang )
@@ -338,7 +342,7 @@ void SvNumberFormatter::ChangeStandardPrec(short nPrec)
pFormatScanner->ChangeStandardPrec(nPrec);
}
-short SvNumberFormatter::GetStandardPrec()
+sal_uInt16 SvNumberFormatter::GetStandardPrec()
{
return pFormatScanner->GetStandardPrec();
}
@@ -1473,7 +1477,6 @@ void SvNumberFormatter::GetInputLineString(const double& fOutNumber,
String& sOutString)
{
SvNumberformat* pFormat;
- short nOldPrec;
Color* pColor;
pFormat = (SvNumberformat*) aFTable.Get(nFIndex);
if (!pFormat)
@@ -1483,7 +1486,8 @@ void SvNumberFormatter::GetInputLineString(const double& fOutNumber,
short eType = pFormat->GetType() & ~NUMBERFORMAT_DEFINED;
if (eType == 0)
eType = NUMBERFORMAT_DEFINED;
- nOldPrec = -1;
+ sal_uInt16 nOldPrec = pFormatScanner->GetStandardPrec();
+ bool bPrecChanged = false;
if (eType == NUMBERFORMAT_NUMBER || eType == NUMBERFORMAT_PERCENT
|| eType == NUMBERFORMAT_CURRENCY
|| eType == NUMBERFORMAT_SCIENTIFIC
@@ -1491,8 +1495,8 @@ void SvNumberFormatter::GetInputLineString(const double& fOutNumber,
{
if (eType != NUMBERFORMAT_PERCENT) // spaeter Sonderbehandlung %
eType = NUMBERFORMAT_NUMBER;
- nOldPrec = pFormatScanner->GetStandardPrec();
- ChangeStandardPrec(300); // Merkwert
+ ChangeStandardPrec(INPUTSTRING_PRECISION);
+ bPrecChanged = true;
}
sal_uInt32 nKey = nFIndex;
switch ( eType )
@@ -1512,12 +1516,12 @@ void SvNumberFormatter::GetInputLineString(const double& fOutNumber,
{
if ( eType == NUMBERFORMAT_TIME && pFormat->GetFormatPrecision() )
{
- nOldPrec = pFormatScanner->GetStandardPrec();
- ChangeStandardPrec(300); // Merkwert
+ ChangeStandardPrec(INPUTSTRING_PRECISION);
+ bPrecChanged = true;
}
pFormat->GetOutputString(fOutNumber, sOutString, &pColor);
}
- if (nOldPrec != -1)
+ if (bPrecChanged)
ChangeStandardPrec(nOldPrec);
}
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index 32c65b06d2f1..707b2362f0ed 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -54,6 +54,9 @@
#include "numhead.hxx"
#include <unotools/digitgroupingiterator.hxx>
#include "nfsymbol.hxx"
+
+#include <cmath>
+
using namespace svt;
namespace {
@@ -63,6 +66,10 @@ struct Gregorian
return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("gregorian"));
}
};
+
+const sal_uInt16 UPPER_PRECISION = 300; // entirely arbitrary...
+const double EXP_LOWER_BOUND = 1.0E-4; // prefer scientific notation below this value.
+
}
const double _D_MAX_U_LONG_ = (double) 0xffffffff; // 4294967295.0
@@ -1774,47 +1781,62 @@ void SvNumberformat::Build50Formatstring( String& rStr ) const
void SvNumberformat::ImpGetOutputStandard(double& fNumber, String& OutString)
{
- USHORT nStandardPrec = rScan.GetStandardPrec();
+ sal_uInt16 nStandardPrec = rScan.GetStandardPrec();
+
if ( fabs(fNumber) > 1.0E15 ) // #58531# war E16
+ {
+ nStandardPrec = ::std::min(nStandardPrec, static_cast<sal_uInt16>(14)); // limits to 14 decimals
OutString = ::rtl::math::doubleToUString( fNumber,
rtl_math_StringFormat_E, nStandardPrec /*2*/,
GetFormatter().GetNumDecimalSep().GetChar(0));
+ }
else
- {
+ ImpGetOutputStdToPrecision(fNumber, OutString, nStandardPrec);
+}
+
+void SvNumberformat::ImpGetOutputStdToPrecision(double& rNumber, String& rOutString, sal_uInt16 nPrecision) const
+{
+ // Make sure the precision doesn't go over the maximum allowable precision.
+ nPrecision = ::std::min(UPPER_PRECISION, nPrecision);
+
#if 0
{
- // debugger test case for ANSI standard correctness
- ::rtl::OUString aTest;
- // expect 0.00123 OK
- aTest = ::rtl::math::doubleToUString( 0.001234567,
- rtl_math_StringFormat_G, 3, '.', sal_True );
- // expect 123 OK
- aTest = ::rtl::math::doubleToUString( 123.4567,
- rtl_math_StringFormat_G, 3, '.', sal_True );
- // expect 123.5 OK
- aTest = ::rtl::math::doubleToUString( 123.4567,
- rtl_math_StringFormat_G, 4, '.', sal_True );
- // expect 1e+03 (as 999.6 rounded to 3 significant digits results in
- // 1000 with an exponent equal to significant digits)
- // Currently (24-Jan-2003) we do fail in this case and output 1000
- // instead, negligible.
- aTest = ::rtl::math::doubleToUString( 999.6,
- rtl_math_StringFormat_G, 3, '.', sal_True );
- // expect what? result is 1.2e+004
- aTest = ::rtl::math::doubleToUString( 12345.6789,
- rtl_math_StringFormat_G, -3, '.', sal_True );
+ // debugger test case for ANSI standard correctness
+ ::rtl::OUString aTest;
+ // expect 0.00123 OK
+ aTest = ::rtl::math::doubleToUString( 0.001234567,
+ rtl_math_StringFormat_G, 3, '.', sal_True );
+ // expect 123 OK
+ aTest = ::rtl::math::doubleToUString( 123.4567,
+ rtl_math_StringFormat_G, 3, '.', sal_True );
+ // expect 123.5 OK
+ aTest = ::rtl::math::doubleToUString( 123.4567,
+ rtl_math_StringFormat_G, 4, '.', sal_True );
+ // expect 1e+03 (as 999.6 rounded to 3 significant digits results in
+ // 1000 with an exponent equal to significant digits)
+ // Currently (24-Jan-2003) we do fail in this case and output 1000
+ // instead, negligible.
+ aTest = ::rtl::math::doubleToUString( 999.6,
+ rtl_math_StringFormat_G, 3, '.', sal_True );
+ // expect what? result is 1.2e+004
+ aTest = ::rtl::math::doubleToUString( 12345.6789,
+ rtl_math_StringFormat_G, -3, '.', sal_True );
}
#endif
- OutString = ::rtl::math::doubleToUString( fNumber,
- rtl_math_StringFormat_F, nStandardPrec /*2*/,
- GetFormatter().GetNumDecimalSep().GetChar(0), sal_True );
- if (OutString.GetChar(0) == '-' &&
- OutString.GetTokenCount('0') == OutString.Len())
- OutString.EraseLeadingChars('-'); // nicht -0
- }
- ImpTransliterate( OutString, NumFor[0].GetNatNum() );
- return;
+ // We decided to strip trailing zeros unconditionally, since binary
+ // double-precision rounding error makes it impossible to determine e.g.
+ // whether 844.10000000000002273737 is what the user has typed, or the
+ // user has typed 844.1 but IEEE 754 represents it that way internally.
+
+ rOutString = ::rtl::math::doubleToUString( rNumber,
+ rtl_math_StringFormat_F, nPrecision /*2*/,
+ GetFormatter().GetNumDecimalSep().GetChar(0), true );
+ if (rOutString.GetChar(0) == '-' &&
+ rOutString.GetTokenCount('0') == rOutString.Len())
+ rOutString.EraseLeadingChars('-'); // nicht -0
+
+ ImpTransliterate( rOutString, NumFor[0].GetNatNum() );
}
void SvNumberformat::ImpGetOutputInputLine(double fNumber, String& OutString)
@@ -1955,6 +1977,71 @@ ULONG SvNumberformat::ImpGGTRound(ULONG x, ULONG y)
}
}
+namespace {
+
+void lcl_GetOutputStringScientific(
+ double fNumber, sal_uInt16 nCharCount, const SvNumberFormatter& rFormatter, String& rOutString)
+{
+ bool bSign = ::rtl::math::isSignBitSet(fNumber);
+
+ // 1.000E+015 (one digit and the decimal point, and the five chars for the exponential part, totalling 7).
+ sal_uInt16 nPrec = nCharCount > 7 ? nCharCount - 7 : 0;
+ if (nPrec && bSign)
+ // Make room for the negative sign.
+ --nPrec;
+
+ nPrec = ::std::min(nPrec, static_cast<sal_uInt16>(14)); // limit to 14 decimals.
+
+ rOutString = ::rtl::math::doubleToUString(
+ fNumber, rtl_math_StringFormat_E, nPrec, rFormatter.GetNumDecimalSep().GetChar(0));
+}
+
+}
+
+bool SvNumberformat::GetOutputString(double fNumber, sal_uInt16 nCharCount, String& rOutString) const
+{
+ using namespace std;
+
+ if (eType != NUMBERFORMAT_NUMBER)
+ return false;
+
+ double fTestNum = fNumber;
+ bool bSign = ::rtl::math::isSignBitSet(fTestNum);
+ if (bSign)
+ fTestNum = -fTestNum;
+
+ if (fTestNum < EXP_LOWER_BOUND)
+ {
+ lcl_GetOutputStringScientific(fNumber, nCharCount, GetFormatter(), rOutString);
+ return true;
+ }
+
+ double fExp = log10(fTestNum);
+ // Values < 1.0 always have one digit before the decimal point.
+ sal_uInt16 nDigitPre = fExp >= 0.0 ? static_cast<sal_uInt16>(ceil(fExp)) : 1;
+
+ if (nDigitPre > 15)
+ {
+ lcl_GetOutputStringScientific(fNumber, nCharCount, GetFormatter(), rOutString);
+ return true;
+ }
+
+ sal_uInt16 nPrec = nCharCount >= nDigitPre ? nCharCount - nDigitPre : 0;
+ if (nPrec && bSign)
+ // Subtract the negative sign.
+ --nPrec;
+ if (nPrec)
+ // Subtract the decimal point.
+ --nPrec;
+
+ ImpGetOutputStdToPrecision(fNumber, rOutString, nPrec);
+ if (rOutString.Len() > nCharCount)
+ // String still wider than desired. Switch to scientific notation.
+ lcl_GetOutputStringScientific(fNumber, nCharCount, GetFormatter(), rOutString);
+
+ return true;
+}
+
BOOL SvNumberformat::GetOutputString(double fNumber,
String& OutString,
Color** ppColor)
@@ -1978,16 +2065,43 @@ BOOL SvNumberformat::GetOutputString(double fNumber,
BOOL bHadStandard = FALSE;
if (bStandard) // einzelne Standardformate
{
- if (rScan.GetStandardPrec() == 300) // alle Zahlformate InputLine
+ if (rScan.GetStandardPrec() == SvNumberFormatter::INPUTSTRING_PRECISION) // alle Zahlformate InputLine
{
ImpGetOutputInputLine(fNumber, OutString);
- return FALSE;
+ return false;
}
switch (eType)
{
case NUMBERFORMAT_NUMBER: // Standardzahlformat
+ {
+ if (rScan.GetStandardPrec() == SvNumberFormatter::UNLIMITED_PRECISION)
+ {
+ bool bSign = ::rtl::math::isSignBitSet(fNumber);
+ if (bSign)
+ fNumber = -fNumber;
+ ImpGetOutputStdToPrecision(fNumber, OutString, 10); // Use 10 decimals for general 'unlimited' format.
+ if (fNumber < EXP_LOWER_BOUND)
+ {
+ xub_StrLen nLen = OutString.Len();
+ if (!nLen)
+ return false;
+
+ if (nLen > 11)
+ {
+ sal_uInt16 nStandardPrec = rScan.GetStandardPrec();
+ nStandardPrec = ::std::min(nStandardPrec, static_cast<sal_uInt16>(14)); // limits to 14 decimals
+ OutString = ::rtl::math::doubleToUString( fNumber,
+ rtl_math_StringFormat_E, nStandardPrec /*2*/,
+ GetFormatter().GetNumDecimalSep().GetChar(0), true);
+ }
+ }
+ if (bSign)
+ OutString.Insert('-', 0);
+ return false;
+ }
ImpGetOutputStandard(fNumber, OutString);
bHadStandard = TRUE;
+ }
break;
case NUMBERFORMAT_DATE:
bRes |= ImpGetDateOutput(fNumber, 0, OutString);
diff --git a/svl/source/numbers/zforscan.cxx b/svl/source/numbers/zforscan.cxx
index 5ed78bd69108..fb59e4289ad1 100644
--- a/svl/source/numbers/zforscan.cxx
+++ b/svl/source/numbers/zforscan.cxx
@@ -465,7 +465,7 @@ void ImpSvNumberformatScan::ChangeNullDate(USHORT nDay, USHORT nMonth, USHORT nY
pNullDate = new Date(nDay, nMonth, nYear);
}
-void ImpSvNumberformatScan::ChangeStandardPrec(short nPrec)
+void ImpSvNumberformatScan::ChangeStandardPrec(sal_uInt16 nPrec)
{
nStandardPrec = nPrec;
}
diff --git a/svl/source/numbers/zforscan.hxx b/svl/source/numbers/zforscan.hxx
index fb9e40488e24..d623a3f50026 100644
--- a/svl/source/numbers/zforscan.hxx
+++ b/svl/source/numbers/zforscan.hxx
@@ -54,7 +54,7 @@ public:
void ChangeNullDate(USHORT nDay, USHORT nMonth, USHORT nYear);
// tauscht Referenzdatum aus
- void ChangeStandardPrec(short nPrec); // tauscht Standardprecision aus
+ void ChangeStandardPrec(sal_uInt16 nPrec); // tauscht Standardprecision aus
xub_StrLen ScanFormat( String& rString, String& rComment ); // Aufruf der Scan-Analyse
@@ -93,7 +93,7 @@ public:
InitKeywords();
return sNameStandardFormat;
}
- short GetStandardPrec() const { return nStandardPrec; }
+ sal_uInt16 GetStandardPrec() const { return nStandardPrec; }
const Color& GetRedColor() const { return StandardColor[4]; }
Color* GetColor(String& sStr); // Setzt Hauptfarben oder
// definierte Farben
@@ -158,7 +158,7 @@ private: // ---- privater Teil
// Array der Standardfarben
Date* pNullDate; // 30Dec1899
String sNameStandardFormat; // "Standard"
- short nStandardPrec; // default Precision fuer Standardformat (2)
+ sal_uInt16 nStandardPrec; // default Precision for Standardformat
SvNumberFormatter* pFormatter; // Pointer auf die Formatliste
String sStrArray[NF_MAX_FORMAT_SYMBOLS]; // Array der Symbole
diff --git a/svtools/qa/unoapi/svtools.sce b/svtools/qa/unoapi/svtools.sce
index 53d53e0e6824..90fb50358f99 100644
--- a/svtools/qa/unoapi/svtools.sce
+++ b/svtools/qa/unoapi/svtools.sce
@@ -1,12 +1,12 @@
#i88276 -o svtools.AccessibleIconChoiceCtrlEntry
#i88647 -o svtools.AccessibleTabBarPage
--o svtools.AccessibleBrowseBox
--o svtools.AccessibleBrowseBoxHeaderBar
--o svtools.AccessibleBrowseBoxHeaderCell
--o svtools.AccessibleBrowseBoxTable
+#i110988 -o svtools.AccessibleBrowseBox
+#i110988 -o svtools.AccessibleBrowseBoxHeaderBar
+#i110988 -o svtools.AccessibleBrowseBoxHeaderCell
+#i110988 -o svtools.AccessibleBrowseBoxTable
#i85245 -o svtools.AccessibleBrowseBoxTableCell
#i88276 -o svtools.AccessibleIconChoiceCtrl
-o svtools.AccessibleTabBar
#i85246 -o svtools.AccessibleTabBarPageList
--o svtools.AccessibleTreeListBox
--o svtools.AccessibleTreeListBoxEntry \ No newline at end of file
+#i110988 -o svtools.AccessibleTreeListBox
+#i110988 -o svtools.AccessibleTreeListBoxEntry
diff --git a/svx/qa/unoapi/knownissues.xcl b/svx/qa/unoapi/knownissues.xcl
index 6d59511b75e0..89369160bb45 100644
--- a/svx/qa/unoapi/knownissues.xcl
+++ b/svx/qa/unoapi/knownissues.xcl
@@ -78,4 +78,10 @@ svx.GraphicExporter
### i98339 ###
svx.AccessibleControlShape
-# -> disbaled in svx.sce \ No newline at end of file
+# -> disbaled in svx.sce
+
+### i111114 ###
+svx.AccessiblePresentationOLEShape::com::sun::star::accessibility::XAccessibleComponent
+
+### i111169 ###
+svx.AccessiblePageShape::com::sun::star::accessibility::XAccessibleComponent
diff --git a/svx/qa/unoapi/svx.sce b/svx/qa/unoapi/svx.sce
index 84237f3c6f4b..82ee2ea6b193 100644
--- a/svx/qa/unoapi/svx.sce
+++ b/svx/qa/unoapi/svx.sce
@@ -1,11 +1,11 @@
#i98339 -o svx.AccessibleControlShape
--o svx.AccessibleEditableTextPara
--o svx.AccessibleGraphicShape
+#i111278 -o svx.AccessibleEditableTextPara
+#i111252 -o svx.AccessibleGraphicShape
#i46736 -o svx.AccessibleImageBullet
--o svx.AccessibleOLEShape
--o svx.AccessiblePageShape
--o svx.AccessiblePresentationGraphicShape
--o svx.AccessiblePresentationOLEShape
+#i111252 -o svx.AccessibleOLEShape
+#i111252 -o svx.AccessiblePageShape
+#i111216 -o svx.AccessiblePresentationGraphicShape
+#i111216 -o svx.AccessiblePresentationOLEShape
#i85539 -o svx.AccessiblePresentationShape
-o svx.AccessibleShape
#i90294 -o svx.GraphicExporter
diff --git a/svx/source/sdr/properties/attributeproperties.cxx b/svx/source/sdr/properties/attributeproperties.cxx
index 5abd9c4b26f1..0f3325a0027e 100644
--- a/svx/source/sdr/properties/attributeproperties.cxx
+++ b/svx/source/sdr/properties/attributeproperties.cxx
@@ -259,6 +259,8 @@ namespace sdr
void AttributeProperties::MoveToItemPool(SfxItemPool* pSrcPool, SfxItemPool* pDestPool, SdrModel* pNewModel)
{
+ OSL_ASSERT(pNewModel!=NULL);
+
if(pSrcPool && pDestPool && (pSrcPool != pDestPool))
{
if(mpItemSet)
@@ -291,8 +293,24 @@ namespace sdr
}
else
{
- // StyleSheet is NOT from the correct pool; use default
- ImpAddStyleSheet(pNewModel->GetDefaultStyleSheet(), sal_True);
+ // StyleSheet is NOT from the correct pool.
+ // Look one up in the right pool with the same
+ // name or use the default.
+
+ // Look up the style in the new document.
+ OSL_ASSERT(pNewModel->GetStyleSheetPool() != NULL);
+ SfxStyleSheet* pNewStyleSheet = dynamic_cast<SfxStyleSheet*>(
+ pNewModel->GetStyleSheetPool()->Find(
+ pStySheet->GetName(),
+ SFX_STYLE_FAMILY_ALL));
+ if (pNewStyleSheet == NULL
+ || &pNewStyleSheet->GetPool().GetPool() != pDestPool)
+ {
+ // There is no copy of the style in the new
+ // document. Use the default as a fallback.
+ pNewStyleSheet = pNewModel->GetDefaultStyleSheet();
+ }
+ ImpAddStyleSheet(pNewStyleSheet, sal_True);
}
}
diff --git a/sw/inc/swtable.hxx b/sw/inc/swtable.hxx
index 51a609ad85dc..1b1316ce37d1 100644
--- a/sw/inc/swtable.hxx
+++ b/sw/inc/swtable.hxx
@@ -39,6 +39,8 @@
#include <node.hxx> // fuer StartNode->GetMyIndex
#else
class SwStartNode;
+#include <memory>
+#include <boost/noncopyable.hpp>
#endif
class Color;
@@ -468,4 +470,21 @@ public:
{ return const_cast<SwTableBox*>(this)->FindEndOfRowSpan( rTable, nMaxStep ); }
};
+class SwCellFrm;
+class SW_DLLPUBLIC SwTableCellInfo : public ::boost::noncopyable
+{
+ struct Impl;
+ ::std::auto_ptr<Impl> m_pImpl;
+
+ const SwCellFrm * getCellFrm() const ;
+
+public:
+ SwTableCellInfo(const SwTable * pTable);
+ ~SwTableCellInfo();
+
+ bool getNext();
+ SwRect getRect() const;
+ const SwTableBox * getTableBox() const;
+};
+
#endif //_SWTABLE_HXX
diff --git a/sw/qa/unoapi/knownissues.xcl b/sw/qa/unoapi/knownissues.xcl
index 0c0ae3e506eb..4f8e3953dfcf 100644
--- a/sw/qa/unoapi/knownissues.xcl
+++ b/sw/qa/unoapi/knownissues.xcl
@@ -154,3 +154,19 @@ sw.SwXTextGraphicObject::com::sun::star::text::BaseFrameProperties
### i109917 ###
sw.SwXTextDocument::com::sun::star::document::XEventBroadcaster
+
+### i111186 ###
+sw.PageStyle::com::sun::star::beans::XPropertySet
+
+### i111218 ###
+sw.SwAccessibleParagraphView::com::sun::star::accessibility::XAccessibleEventBroadcaster
+
+### i111220 ###
+sw.XMLContentExporter::com::sun::star::document::XFilter
+sw.XMLSettingsExporter::com::sun::star::document::XFilter
+
+### i111273 ###
+sw.SwXTextEmbeddedObject::com::sun::star::document::XEmbeddedObjectSupplier
+
+### i111332 ###
+sw.XMLStylesExporter::com::sun::star::document::XFilter
diff --git a/sw/qa/unoapi/sw.sce b/sw/qa/unoapi/sw.sce
index 6d8c2b30d56d..e57a6643cd0d 100644
--- a/sw/qa/unoapi/sw.sce
+++ b/sw/qa/unoapi/sw.sce
@@ -2,41 +2,41 @@
-o sw.ConditionalParagraphStyle
-o sw.PageStyle
-o sw.ParagraphStyle
--o sw.SwAccessibleDocumentPageView
+#i111197 -o sw.SwAccessibleDocumentPageView
#i86751 -o sw.SwAccessibleDocumentView
--o sw.SwAccessibleEndnoteView
+#i111185 -o sw.SwAccessibleEndnoteView
-o sw.SwAccessibleFooterView
--o sw.SwAccessibleFootnoteView
+#i111185 -o sw.SwAccessibleFootnoteView
-o sw.SwAccessibleHeaderView
#i89022 -o sw.SwAccessiblePageView
-o sw.SwAccessibleParagraphView
-o sw.SwAccessibleTableCellView
#i85634 -o sw.SwAccessibleTableView
--o sw.SwAccessibleTextEmbeddedObject
--o sw.SwAccessibleTextFrameView
+#i111178 -o sw.SwAccessibleTextEmbeddedObject
+#i111178 -o sw.SwAccessibleTextFrameView
-o sw.SwAccessibleTextGraphicObject
-o sw.SwXAutoTextContainer
-o sw.SwXAutoTextEntry
-o sw.SwXAutoTextGroup
--o sw.SwXBodyText
+#i111185 -o sw.SwXBodyText
-o sw.SwXBookmark
-o sw.SwXBookmarks
-o sw.SwXCell
-o sw.SwXCellRange
-o sw.SwXChapterNumbering
--o sw.SwXDocumentIndex
--o sw.SwXDocumentIndexMark
+#i111185 -o sw.SwXDocumentIndex
+#i111185 -o sw.SwXDocumentIndexMark
-o sw.SwXDocumentIndexes
-o sw.SwXDrawPage
--o sw.SwXEndnoteProperties
+#i111185 -o sw.SwXEndnoteProperties
-o sw.SwXFieldEnumeration
-o sw.SwXFieldMaster
--o sw.SwXFootnote
--o sw.SwXFootnoteProperties
--o sw.SwXFootnoteText
--o sw.SwXFootnotes
+#i111185 -o sw.SwXFootnote
+#i111185 -o sw.SwXFootnoteProperties
+#i111185 -o sw.SwXFootnoteText
+#i111185 -o sw.SwXFootnotes
-o sw.SwXFrames
--o sw.SwXHeadFootText
+#i111185 -o sw.SwXHeadFootText
-o sw.SwXLineNumberingProperties
#i85640 -o sw.SwXMailMerge
-o sw.SwXModule
@@ -48,23 +48,23 @@
-o sw.SwXPropertySetInfo
-o sw.SwXReferenceMark
-o sw.SwXReferenceMarks
--o sw.SwXShape
+#i111190 -o sw.SwXShape
-o sw.SwXStyleFamilies
-o sw.SwXStyleFamily
--o sw.SwXTableCellText
+#i111185 -o sw.SwXTableCellText
-o sw.SwXTableColumns
-o sw.SwXTableRows
-o sw.SwXTextColumns
-o sw.SwXTextCursor
#i89021 -o sw.SwXTextDefaults
--o sw.SwXTextDocument
+#i111185 -o sw.SwXTextDocument
-o sw.SwXTextEmbeddedObject
-o sw.SwXTextEmbeddedObjects
-o sw.SwXTextField
-o sw.SwXTextFieldMasters
-o sw.SwXTextFieldTypes
-o sw.SwXTextFrame
--o sw.SwXTextFrameText
+#i111185 -o sw.SwXTextFrameText
-o sw.SwXTextGraphicObject
-o sw.SwXTextGraphicObjects
#i103696 -o sw.SwXTextPortion
@@ -83,7 +83,7 @@
-o sw.SwXViewSettings
-o sw.XMLContentExporter
#i23394 -o sw.XMLContentImporter
--o sw.XMLExporter
+#i111194-o sw.XMLExporter
-o sw.XMLImporter
#i23394 -o sw.XMLMetaExporter
-o sw.XMLMetaImporter
diff --git a/sw/source/core/table/swtable.cxx b/sw/source/core/table/swtable.cxx
index c92b0aefb96c..281aac016e43 100644
--- a/sw/source/core/table/swtable.cxx
+++ b/sw/source/core/table/swtable.cxx
@@ -2726,3 +2726,160 @@ void SwTableBox_Impl::SetNewCol( Color** ppCol, const Color* pNewCol )
}
}
+struct SwTableCellInfo::Impl
+{
+ const SwTable * m_pTable;
+ const SwCellFrm * m_pCellFrm;
+ const SwTabFrm * m_pTabFrm;
+ typedef ::std::set<const SwTableBox *> TableBoxes_t;
+ TableBoxes_t m_HandledTableBoxes;
+
+public:
+ Impl()
+ : m_pTable(NULL), m_pCellFrm(NULL), m_pTabFrm(NULL)
+ {
+ }
+
+ ~Impl() {}
+
+ void setTable(const SwTable * pTable) {
+ m_pTable = pTable;
+ SwFrmFmt * pFrmFmt = m_pTable->GetFrmFmt();
+ SwClientIter aIter(*pFrmFmt);
+
+ m_pTabFrm =
+ static_cast<const SwTabFrm *>(aIter.First(TYPE(SwTabFrm)));
+
+ if (m_pTabFrm->IsFollow())
+ m_pTabFrm = m_pTabFrm->FindMaster(true);
+ }
+ const SwTable * getTable() const { return m_pTable; }
+
+ const SwCellFrm * getCellFrm() const { return m_pCellFrm; }
+
+ const SwFrm * getNextFrmInTable(const SwFrm * pFrm);
+ const SwCellFrm * getNextCellFrm(const SwFrm * pFrm);
+ const SwCellFrm * getNextTableBoxsCellFrm(const SwFrm * pFrm);
+ bool getNext();
+};
+
+const SwFrm * SwTableCellInfo::Impl::getNextFrmInTable(const SwFrm * pFrm)
+{
+ const SwFrm * pResult = NULL;
+
+ if (((! pFrm->IsTabFrm()) || pFrm == m_pTabFrm) && pFrm->GetLower())
+ pResult = pFrm->GetLower();
+ else if (pFrm->GetNext())
+ pResult = pFrm->GetNext();
+ else
+ {
+ while (pFrm->GetUpper() != NULL)
+ {
+ pFrm = pFrm->GetUpper();
+
+ if (pFrm->IsTabFrm())
+ {
+ m_pTabFrm = static_cast<const SwTabFrm *>(pFrm)->GetFollow();
+ pResult = m_pTabFrm;
+ break;
+ }
+ else if (pFrm->GetNext())
+ {
+ pResult = pFrm->GetNext();
+ break;
+ }
+ }
+ }
+
+ return pResult;
+}
+
+const SwCellFrm * SwTableCellInfo::Impl::getNextCellFrm(const SwFrm * pFrm)
+{
+ const SwCellFrm * pResult = NULL;
+
+ while ((pFrm = getNextFrmInTable(pFrm)) != NULL)
+ {
+ if (pFrm->IsCellFrm())
+ {
+ pResult = static_cast<const SwCellFrm *>(pFrm);
+ break;
+ }
+ }
+
+ return pResult;
+}
+
+const SwCellFrm * SwTableCellInfo::Impl::getNextTableBoxsCellFrm(const SwFrm * pFrm)
+{
+ const SwCellFrm * pResult = NULL;
+
+ while ((pFrm = getNextCellFrm(pFrm)) != NULL)
+ {
+ const SwCellFrm * pCellFrm = static_cast<const SwCellFrm *>(pFrm);
+ const SwTableBox * pTabBox = pCellFrm->GetTabBox();
+ TableBoxes_t::const_iterator aIt = m_HandledTableBoxes.find(pTabBox);
+
+ if (aIt == m_HandledTableBoxes.end())
+ {
+ pResult = pCellFrm;
+ m_HandledTableBoxes.insert(pTabBox);
+ break;
+ }
+ }
+
+ return pResult;
+}
+
+const SwCellFrm * SwTableCellInfo::getCellFrm() const
+{
+ return m_pImpl->getCellFrm();
+}
+
+bool SwTableCellInfo::Impl::getNext()
+{
+ if (m_pCellFrm == NULL)
+ {
+ if (m_pTabFrm != NULL)
+ m_pCellFrm = Impl::getNextTableBoxsCellFrm(m_pTabFrm);
+ }
+ else
+ m_pCellFrm = Impl::getNextTableBoxsCellFrm(m_pCellFrm);
+
+ return m_pCellFrm != NULL;
+}
+
+SwTableCellInfo::SwTableCellInfo(const SwTable * pTable)
+{
+ m_pImpl.reset(new Impl());
+ m_pImpl->setTable(pTable);
+}
+
+SwTableCellInfo::~SwTableCellInfo()
+{
+}
+
+bool SwTableCellInfo::getNext()
+{
+ return m_pImpl->getNext();
+}
+
+SwRect SwTableCellInfo::getRect() const
+{
+ SwRect aRet;
+
+ if (getCellFrm() != NULL)
+ aRet = getCellFrm()->Frm();
+
+ return aRet;
+}
+
+const SwTableBox * SwTableCellInfo::getTableBox() const
+{
+ const SwTableBox * pRet = NULL;
+
+ if (getCellFrm() != NULL)
+ pRet = getCellFrm()->GetTabBox();
+
+ return pRet;
+}
diff --git a/sw/source/filter/ww8/WW8TableInfo.cxx b/sw/source/filter/ww8/WW8TableInfo.cxx
index 8f914f46813d..4bee56fa12ef 100644
--- a/sw/source/filter/ww8/WW8TableInfo.cxx
+++ b/sw/source/filter/ww8/WW8TableInfo.cxx
@@ -29,9 +29,13 @@
#include "precompiled_sw.hxx"
#include <iostream>
+#include <set>
#include <stdio.h>
#include "WW8TableInfo.hxx"
+#include "fmtfsize.hxx"
+#include "attributeoutputbase.hxx"
#include "swtable.hxx"
+#include "frmfmt.hxx"
#include "pam.hxx"
#include "ndtxt.hxx"
#include "dbgoutsw.hxx"
@@ -45,8 +49,11 @@ WW8TableNodeInfoInner::WW8TableNodeInfoInner(WW8TableNodeInfo * pParent)
: mpParent(pParent)
, mnCell(0)
, mnRow(0)
+, mnShadowsBefore(0)
+, mnShadowsAfter(0)
, mbEndOfLine(false)
, mbEndOfCell(false)
+, mbVertMerge(false)
, mpTableBox(NULL)
, mpTable(NULL)
{
@@ -71,6 +78,16 @@ void WW8TableNodeInfoInner::setRow(sal_uInt32 nRow)
mnRow = nRow;
}
+void WW8TableNodeInfoInner::setShadowsBefore(sal_uInt32 nShadowsBefore)
+{
+ mnShadowsBefore = nShadowsBefore;
+}
+
+void WW8TableNodeInfoInner::setShadowsAfter(sal_uInt32 nShadowsAfter)
+{
+ mnShadowsAfter = nShadowsAfter;
+}
+
void WW8TableNodeInfoInner::setEndOfLine(bool bEndOfLine)
{
mbEndOfLine = bEndOfLine;
@@ -81,6 +98,11 @@ void WW8TableNodeInfoInner::setEndOfCell(bool bEndOfCell)
mbEndOfCell = bEndOfCell;
}
+void WW8TableNodeInfoInner::setVertMerge(bool bVertMerge)
+{
+ mbVertMerge = bVertMerge;
+}
+
void WW8TableNodeInfoInner::setTableBox(const SwTableBox * pTableBox)
{
mpTableBox = pTableBox;
@@ -91,6 +113,11 @@ void WW8TableNodeInfoInner::setTable(const SwTable * pTable)
mpTable = pTable;
}
+void WW8TableNodeInfoInner::setRect(const SwRect & rRect)
+{
+ maRect = rRect;
+}
+
sal_uInt32 WW8TableNodeInfoInner::getDepth() const
{
return mnDepth;
@@ -106,6 +133,16 @@ sal_uInt32 WW8TableNodeInfoInner::getRow() const
return mnRow;
}
+sal_uInt32 WW8TableNodeInfoInner::getShadowsBefore() const
+{
+ return mnShadowsBefore;
+}
+
+sal_uInt32 WW8TableNodeInfoInner::getShadowsAfter() const
+{
+ return mnShadowsAfter;
+}
+
bool WW8TableNodeInfoInner::isEndOfCell() const
{
return mbEndOfCell;
@@ -126,6 +163,127 @@ const SwNode * WW8TableNodeInfoInner::getNode() const
return pResult;
}
+TableBoxVectorPtr WW8TableNodeInfoInner::getTableBoxesOfRow()
+{
+ TableBoxVectorPtr pResult(new TableBoxVector);
+
+ WW8TableCellGrid::Pointer_t pCellGrid =
+ mpParent->getParent()->getCellGridForTable(getTable(), false);
+
+ if (pCellGrid.get() == NULL)
+ {
+ const SwTableLine * pTabLine = getTableBox()->GetUpper();
+ const SwTableBoxes & rTblBoxes = pTabLine->GetTabBoxes();
+
+ sal_uInt8 nBoxes = rTblBoxes.Count();
+ for ( sal_uInt8 n = 0; n < nBoxes; n++ )
+ {
+ pResult->push_back(rTblBoxes[n]);
+ }
+ }
+ else
+ pResult = pCellGrid->getTableBoxesOfRow(this);
+
+ return pResult;
+}
+
+GridColsPtr WW8TableNodeInfoInner::getGridColsOfRow(AttributeOutputBase & rBase)
+{
+ GridColsPtr pResult(new GridCols);
+ WidthsPtr pWidths(getWidthsOfRow());
+
+ const SwFrmFmt *pFmt = getTable()->GetFrmFmt();
+ ASSERT(pFmt,"Impossible");
+ if (!pFmt)
+ return pResult;
+
+ const SwFmtFrmSize &rSize = pFmt->GetFrmSize();
+ unsigned long nTblSz = static_cast<unsigned long>(rSize.GetWidth());
+
+ sal_uInt32 nPageSize = 0;
+ bool bRelBoxSize = false;
+
+ rBase.GetTablePageSize
+ ( this, nPageSize, bRelBoxSize );
+
+ SwTwips nSz = 0;
+ Widths::const_iterator aWidthsEnd = pWidths->end();
+ for ( Widths::const_iterator aIt = pWidths->begin();
+ aIt != aWidthsEnd;
+ aIt++)
+ {
+ nSz += *aIt;
+ SwTwips nCalc = nSz;
+ if ( bRelBoxSize )
+ nCalc = ( nCalc * nPageSize ) / nTblSz;
+
+ pResult->push_back( nCalc );
+ }
+
+ return pResult;
+}
+
+WidthsPtr WW8TableNodeInfoInner::getWidthsOfRow()
+{
+ WidthsPtr pWidths;
+
+ WW8TableCellGrid::Pointer_t pCellGrid =
+ mpParent->getParent()->getCellGridForTable(getTable(), false);
+
+ if (pCellGrid.get() == NULL)
+ {
+ const SwTableBox * pTabBox = getTableBox();
+ const SwTableLine * pTabLine = pTabBox->GetUpper();
+ const SwTableBoxes & rTabBoxes = pTabLine->GetTabBoxes();
+
+ pWidths = WidthsPtr(new Widths);
+ // number of cell written
+ sal_uInt32 nBoxes = rTabBoxes.Count();
+ if ( nBoxes > 32 )
+ nBoxes = 32;
+
+ for (sal_uInt32 n = 0; n < nBoxes; n++)
+ {
+ const SwFrmFmt* pBoxFmt = rTabBoxes[ n ]->GetFrmFmt();
+ const SwFmtFrmSize& rLSz = pBoxFmt->GetFrmSize();
+
+ pWidths->push_back(rLSz.GetWidth());
+ }
+ }
+ else
+ pWidths = pCellGrid->getWidthsOfRow(this);
+
+ return pWidths;
+}
+
+RowSpansPtr WW8TableNodeInfoInner::getRowSpansOfRow()
+{
+ RowSpansPtr pResult(new RowSpans);
+
+ WW8TableCellGrid::Pointer_t pCellGrid =
+ mpParent->getParent()->getCellGridForTable(getTable(), false);
+
+ if (pCellGrid.get() == NULL)
+ {
+ const SwTableBox * pTabBox = getTableBox();
+ const SwTableLine * pTabLine = pTabBox->GetUpper();
+ const SwTableBoxes & rTabBoxes = pTabLine->GetTabBoxes();
+
+ sal_uInt32 nBoxes = rTabBoxes.Count();
+ if (nBoxes > 32)
+ nBoxes = 32;
+
+ for (sal_uInt32 n = 0; n < nBoxes; ++n)
+ {
+ pResult->push_back(rTabBoxes[n]->getRowSpan());
+ }
+ }
+ else
+ pResult = pCellGrid->getRowSpansOfRow(this);
+
+ return pResult;
+ }
+
const SwTableBox * WW8TableNodeInfoInner::getTableBox() const
{
return mpTableBox;
@@ -136,30 +294,42 @@ const SwTable * WW8TableNodeInfoInner::getTable() const
return mpTable;
}
+const SwRect & WW8TableNodeInfoInner::getRect() const
+{
+ return maRect;
+}
+
string WW8TableNodeInfoInner::toString() const
{
static char buffer[256];
snprintf(buffer, sizeof(buffer),
- "<tableinner depth=\"%" SAL_PRIxUINT32 "\""
- " cell=\"%" SAL_PRIxUINT32 "\""
- " row=\"%" SAL_PRIxUINT32 "\""
+ "<tableinner depth=\"%" SAL_PRIuUINT32 "\""
+ " cell=\"%" SAL_PRIuUINT32 "\""
+ " row=\"%" SAL_PRIuUINT32 "\""
" endOfCell=\"%s\""
- " endOfLine=\"%s\"/>",
+ " endOfLine=\"%s\""
+ " shadowsBefore=\"%" SAL_PRIuUINT32 "\""
+ " shadowsAfter=\"%" SAL_PRIuUINT32 "\""
+ " vertMerge=\"%s\"/>",
mnDepth, mnCell, mnRow,
mbEndOfCell ? "yes" : "no",
- mbEndOfLine ? "yes" : "no");
+ mbEndOfLine ? "yes" : "no",
+ mnShadowsBefore,
+ mnShadowsAfter,
+ mbVertMerge ? "yes" : "no");
return string(buffer);
}
// WW8TableTextNodeInfo
-WW8TableNodeInfo::WW8TableNodeInfo(const SwNode * pNode)
-:
- mnDepth(0),
- mpNode(pNode),
- mpNext(NULL),
- mpNextNode(NULL)
+WW8TableNodeInfo::WW8TableNodeInfo(WW8TableInfo * pParent,
+ const SwNode * pNode)
+: mpParent(pParent),
+ mnDepth(0),
+ mpNode(pNode),
+ mpNext(NULL),
+ mpNextNode(NULL)
{
}
@@ -171,8 +341,8 @@ WW8TableNodeInfo::~WW8TableNodeInfo()
{
static char buffer[1024];
snprintf(buffer, sizeof(buffer),
- "<tableNodeInfo depth=\"%" SAL_PRIxUINT32 "\">"
- , getDepth());
+ "<tableNodeInfo p=\"%p\" depth=\"%" SAL_PRIuUINT32 "\">"
+ ,this, getDepth());
::std::string sResult(buffer);
@@ -191,7 +361,7 @@ WW8TableNodeInfo::~WW8TableNodeInfo()
sResult += dbg_out(*mpNode);
#endif
- sResult +="</tableNodeInfo>";
+ sResult += "</tableNodeInfo>";
return sResult;
}
@@ -230,6 +400,17 @@ void WW8TableNodeInfo::setEndOfCell(bool bEndOfCell)
#endif
}
+void WW8TableNodeInfo::setVertMerge(bool bVertMerge)
+{
+ WW8TableNodeInfoInner::Pointer_t pInner = getInnerForDepth(mnDepth);
+ pInner->setVertMerge(bVertMerge);
+
+#ifdef DEBUG
+ ::std::clog << "<vertMerge depth=\"" << mnDepth << "\">"
+ << toString() << "</vertMerge>" << ::std::endl;
+#endif
+}
+
void WW8TableNodeInfo::setTableBox(const SwTableBox * pTableBox)
{
getInnerForDepth(mnDepth)->setTableBox(pTableBox);
@@ -251,9 +432,14 @@ void WW8TableNodeInfo::setNext(WW8TableNodeInfo * pNext)
#endif
}
-void WW8TableNodeInfo::setNextNode(SwNode * pNode)
+void WW8TableNodeInfo::setNextNode(const SwNode * pNode)
+{
+ mpNextNode = pNode;
+}
+
+void WW8TableNodeInfo::setRect(const SwRect & rRect)
{
- mpNode = pNode;
+ getInnerForDepth(mnDepth)->setRect(rRect);
}
void WW8TableNodeInfo::setCell(sal_uInt32 nCell)
@@ -266,6 +452,21 @@ void WW8TableNodeInfo::setRow(sal_uInt32 nRow)
getInnerForDepth(mnDepth)->setRow(nRow);
}
+void WW8TableNodeInfo::setShadowsBefore(sal_uInt32 nShadowsBefore)
+{
+ getInnerForDepth(mnDepth)->setShadowsBefore(nShadowsBefore);
+}
+
+void WW8TableNodeInfo::setShadowsAfter(sal_uInt32 nShadowsAfter)
+{
+ getInnerForDepth(mnDepth)->setShadowsAfter(nShadowsAfter);
+}
+
+WW8TableInfo * WW8TableNodeInfo::getParent() const
+{
+ return mpParent;
+}
+
sal_uInt32 WW8TableNodeInfo::getDepth() const
{
if (mInners.size() > 0)
@@ -294,11 +495,16 @@ WW8TableNodeInfo * WW8TableNodeInfo::getNext() const
return mpNext;
}
-SwNode * WW8TableNodeInfo::getNextNode() const
+const SwNode * WW8TableNodeInfo::getNextNode() const
{
return mpNextNode;
}
+const SwRect & WW8TableNodeInfo::getRect() const
+{
+ return getInnerForDepth(mnDepth)->getRect();
+}
+
bool WW8TableNodeInfo::isEndOfLine() const
{
return getInnerForDepth(mnDepth)->isEndOfLine();
@@ -357,21 +563,92 @@ WW8TableInfo::~WW8TableInfo()
{
}
+WW8TableNodeInfo *
+WW8TableInfo::processSwTableByLayout(const SwTable * pTable)
+{
+ SwTableCellInfo aTableCellInfo(pTable);
+ WW8TableNodeInfo * pPrev = NULL;
+
+ while (aTableCellInfo.getNext())
+ {
+ SwRect aRect = aTableCellInfo.getRect();
+
+#ifdef DEBUG
+ static char sBuffer[1024];
+ ::std::clog << "<CellFrm>" << ::std::endl;
+
+ snprintf(sBuffer, sizeof(sBuffer),
+ "<rect top=\"%ld\" bottom=\"%ld\" left=\"%ld\" right=\"%ld\"/>",
+ aRect.Top(), aRect.Bottom(), aRect.Left(), aRect.Right());
+ ::std::clog << sBuffer << ::std::endl;
+#endif
+ const SwTableBox * pTableBox = aTableCellInfo.getTableBox();
+ const SwStartNode * pSttNd = pTableBox->GetSttNd();
+
+ if (pSttNd != NULL)
+ {
+ SwPaM aPam(*pSttNd, 0);
+
+ bool bDone = false;
+ do
+ {
+ SwNode & rNode = aPam.GetPoint()->nNode.GetNode();
+
+ insertTableNodeInfo(&rNode, pTable, pTableBox, 0, 0, 1, & aRect);
+
+ if (rNode.IsEndNode())
+ {
+ SwEndNode * pEndNode = rNode.GetEndNode();
+ SwStartNode * pTmpSttNd = pEndNode->StartOfSectionNode();
+
+ if (pTmpSttNd == pSttNd)
+ bDone = true;
+ }
+
+ aPam.GetPoint()->nNode++;
+ }
+ while (!bDone);
+ }
+
+#ifdef DEBUG
+ ::std::clog << "</CellFrm>" << ::std::endl;
+#endif
+ }
+
+ pPrev = reorderByLayout(pTable);
+
+ return pPrev;
+}
+
void WW8TableInfo::processSwTable(const SwTable * pTable)
{
#ifdef DEBUG
::std::clog << "<processSwTable>" << ::std::endl;
#endif
- const SwTableLines & rLines = pTable->GetTabLines();
-
WW8TableNodeInfo * pPrev = NULL;
- for (USHORT n = 0; n < rLines.Count(); n++)
+ SwFrmFmt * pFrmFmt = pTable->GetFrmFmt();
+ if (pFrmFmt != NULL && pTable->IsTblComplex())
+ {
+ pPrev = processSwTableByLayout(pTable);
+
+#ifdef DEBUG
+ WW8TableCellGrid::Pointer_t pCellGrid(getCellGridForTable(pTable));
+ ::std::clog << pCellGrid->toString() << ::std::endl;
+#endif
+ }
+ else
{
- const SwTableLine * pLine = rLines[n];
+ const SwTableLines & rLines = pTable->GetTabLines();
+
+ for (USHORT n = 0; n < rLines.Count(); n++)
+ {
+ const SwTableLine * pLine = rLines[n];
+
+ pPrev = processTableLine(pTable, pLine, n, 1, pPrev);
+ }
- pPrev = processTableLine(pTable, pLine, n, 1, pPrev);
}
if (pPrev != NULL)
@@ -381,7 +658,6 @@ void WW8TableInfo::processSwTable(const SwTable * pTable)
pPrev->setNextNode(pEndNode);
}
-
#ifdef DEBUG
::std::clog << "</processSwTable>" << ::std::endl;
#endif
@@ -471,7 +747,6 @@ WW8TableInfo::processTableBoxLines(const SwTableBox * pBox,
return pNodeInfo;
}
-
WW8TableNodeInfo *
WW8TableInfo::processTableBox(const SwTable * pTable,
const SwTableBox * pBox,
@@ -573,13 +848,15 @@ WW8TableNodeInfo::Pointer_t WW8TableInfo::insertTableNodeInfo
const SwTableBox * pTableBox,
sal_uInt32 nRow,
sal_uInt32 nCell,
- sal_uInt32 nDepth)
+ sal_uInt32 nDepth,
+ SwRect * pRect)
{
WW8TableNodeInfo::Pointer_t pNodeInfo = getTableNodeInfo(pNode);
if (pNodeInfo.get() == NULL)
{
- pNodeInfo = WW8TableNodeInfo::Pointer_t(new WW8TableNodeInfo(pNode));
+ pNodeInfo =
+ WW8TableNodeInfo::Pointer_t(new WW8TableNodeInfo(this, pNode));
mMap.insert(Map_t::value_type(pNode, pNodeInfo));
}
@@ -591,6 +868,14 @@ WW8TableNodeInfo::Pointer_t WW8TableInfo::insertTableNodeInfo
pNodeInfo->setCell(nCell);
pNodeInfo->setRow(nRow);
+ if (pRect)
+ {
+ WW8TableCellGrid::Pointer_t pCellGrid = getCellGridForTable(pTable);
+
+ pCellGrid->insert(*pRect, pNodeInfo.get());
+ pNodeInfo->setRect(*pRect);
+ }
+
#ifdef DEBUG
::std::clog << pNodeInfo->toString() << ::std::endl;
#endif
@@ -598,6 +883,26 @@ WW8TableNodeInfo::Pointer_t WW8TableInfo::insertTableNodeInfo
return pNodeInfo;
}
+WW8TableCellGrid::Pointer_t WW8TableInfo::getCellGridForTable
+(const SwTable * pTable, bool bCreate)
+{
+ WW8TableCellGrid::Pointer_t pResult;
+ CellGridMap_t::iterator aIt = mCellGridMap.find(pTable);
+
+ if (aIt == mCellGridMap.end())
+ {
+ if (bCreate)
+ {
+ pResult = WW8TableCellGrid::Pointer_t(new WW8TableCellGrid);
+ mCellGridMap[pTable] = pResult;
+ }
+ }
+ else
+ pResult = mCellGridMap[pTable];
+
+ return pResult;
+}
+
WW8TableNodeInfo::Pointer_t WW8TableInfo::getTableNodeInfo
(const SwNode * pNode)
{
@@ -624,7 +929,7 @@ const SwNode * WW8TableInfo::getNextNode(const SwNode * pNode)
pResult = pNextInfo->getNode();
else
{
- SwNode * pNextNode = pNodeInfo->getNextNode();
+ const SwNode * pNextNode = pNodeInfo->getNextNode();
if (pNextNode != NULL)
pResult = pNextNode;
@@ -634,4 +939,547 @@ const SwNode * WW8TableInfo::getNextNode(const SwNode * pNode)
return pResult;
}
+bool WW8TableNodeInfo::operator < (const WW8TableNodeInfo & rInfo) const
+{
+ bool bRet = false;
+
+ if (rInfo.mpNode != NULL)
+ {
+ if (mpNode == NULL)
+ {
+ bRet = true;
+ }
+ else
+ {
+ if (mpNode->GetIndex() < rInfo.mpNode->GetIndex())
+ bRet = true;
+ }
+ }
+
+ return bRet;
+}
+
+bool CellInfo::operator < (const CellInfo & aCellInfo) const
+{
+ bool aRet = false;
+
+ if (top() < aCellInfo.top())
+ aRet = true;
+ else if (top() == aCellInfo.top())
+ {
+ if (left() < aCellInfo.left())
+ aRet = true;
+ else if (left() == aCellInfo.left())
+ {
+ if (width() < aCellInfo.width())
+ aRet = true;
+ else if (width() == aCellInfo.width())
+ {
+ if (height() < aCellInfo.height())
+ aRet = true;
+ else if (height() == aCellInfo.height())
+ {
+ if (aCellInfo.getTableNodeInfo() != NULL)
+ {
+ if (m_pNodeInfo == NULL)
+ aRet = true;
+ else
+ {
+ aRet = *m_pNodeInfo < *aCellInfo.getTableNodeInfo();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return aRet;
+}
+
+::std::string CellInfo::toString() const
+{
+ static char sBuffer[256];
+
+ snprintf(sBuffer, sizeof(sBuffer),
+ "<cellinfo left=\"%ld\""
+ " right=\"%ld\""
+ " top=\"%ld\""
+ " bottom=\"%ld\""
+ " node=\"%p\"/>",
+ left(),
+ right(),
+ top(),
+ bottom(),
+ m_pNodeInfo);
+
+ return sBuffer;
+}
+
+WW8TableNodeInfo * WW8TableInfo::reorderByLayout(const SwTable * pTable)
+{
+ WW8TableNodeInfo * pPrev = NULL;
+ WW8TableCellGrid::Pointer_t pCellGrid = getCellGridForTable(pTable);
+
+#ifdef DEBUG
+ ::std::clog << pCellGrid->toString() << ::std::endl;
+#endif
+
+ pCellGrid->addShadowCells();
+ pPrev = pCellGrid->connectCells();
+
+ return pPrev;
+}
+
+WW8TableCellGrid::WW8TableCellGrid()
+{
+}
+
+WW8TableCellGrid::~WW8TableCellGrid()
+{
+}
+
+WW8TableCellGridRow::Pointer_t WW8TableCellGrid::getRow(long nTop, bool bCreate)
+{
+ WW8TableCellGridRow::Pointer_t pResult;
+
+ RowTops_t::iterator aIt = m_aRowTops.find(nTop);
+
+ if (aIt == m_aRowTops.end())
+ {
+ if (bCreate)
+ {
+ pResult = WW8TableCellGridRow::Pointer_t(new WW8TableCellGridRow);
+ m_aRows[nTop] = pResult;
+ m_aRowTops.insert(nTop);
+ }
+ }
+ else
+ pResult = m_aRows[nTop];
+
+ return pResult;
+}
+
+WW8TableCellGrid::RowTops_t::const_iterator WW8TableCellGrid::getRowTopsBegin() const
+{
+ return m_aRowTops.begin();
+}
+
+WW8TableCellGrid::RowTops_t::const_iterator WW8TableCellGrid::getRowTopsEnd() const
+{
+ return m_aRowTops.end();
+}
+
+CellInfoMultiSet::const_iterator WW8TableCellGrid::getCellsBegin(long nTop)
+{
+ return getRow(nTop)->begin();
+}
+
+CellInfoMultiSet::const_iterator WW8TableCellGrid::getCellsEnd(long nTop)
+{
+ return getRow(nTop)->end();
+}
+
+void WW8TableCellGrid::insert(const SwRect & rRect,
+ WW8TableNodeInfo * pNodeInfo,
+ unsigned long * pFmtFrmWidth)
+{
+ CellInfo aCellInfo(rRect, pNodeInfo);
+
+ if (pFmtFrmWidth != NULL)
+ aCellInfo.setFmtFrmWidth(*pFmtFrmWidth);
+
+ WW8TableCellGridRow::Pointer_t pRow = getRow(rRect.Top());
+ pRow->insert(aCellInfo);
+}
+
+void WW8TableCellGrid::addShadowCells()
+{
+#ifdef DEBUG
+ ::std::clog << "<addShadowCells>" << ::std::endl;
+#endif
+
+ RowTops_t::const_iterator aTopsIt = getRowTopsBegin();
+
+ while (aTopsIt != getRowTopsEnd())
+ {
+#ifdef DEBUG
+ long nTop = *aTopsIt;
+ (void) nTop;
+#endif
+ CellInfoMultiSet::const_iterator aCellIt = getCellsBegin(*aTopsIt);
+ CellInfoMultiSet::const_iterator aCellEndIt = getCellsEnd(*aTopsIt);
+
+ RowSpansPtr pRowSpans(new RowSpans);
+
+ bool bBeginningOfCell = true;
+ bool bVertMerge = false;
+ SwRect aRect = aCellIt->getRect();
+ long nRowSpan = 1;
+ while (aCellIt != aCellEndIt)
+ {
+ WW8TableNodeInfo * pNodeInfo = aCellIt->getTableNodeInfo();
+
+ if (bBeginningOfCell)
+ {
+ RowTops_t::const_iterator aRowSpanIt(aTopsIt);
+ aRowSpanIt++;
+
+ if (aRowSpanIt != getRowTopsEnd() &&
+ *aRowSpanIt < aCellIt->bottom())
+ {
+ aRect.Top(*aRowSpanIt);
+ unsigned long nFmtFrmWidth = aCellIt->getFmtFrmWidth();
+ insert(aRect, NULL, &nFmtFrmWidth);
+
+ bVertMerge = true;
+ }
+ else
+ bVertMerge = false;
+
+ nRowSpan = 1;
+ while (aRowSpanIt != getRowTopsEnd() &&
+ *aRowSpanIt < aCellIt->bottom())
+ {
+ aRowSpanIt++;
+ nRowSpan++;
+ }
+
+ if (pNodeInfo != NULL)
+ pRowSpans->push_back(nRowSpan);
+ else
+ pRowSpans->push_back(-nRowSpan);
+ }
+
+ if (pNodeInfo != NULL)
+ {
+ pNodeInfo->setVertMerge(bVertMerge);
+ }
+
+ aCellIt++;
+
+ bBeginningOfCell = (aRect.Left() != aCellIt->left());
+ aRect = aCellIt->getRect();
+ }
+
+ WW8TableCellGridRow::Pointer_t pRow = getRow(*aTopsIt);
+ if (pRow.get() != NULL)
+ pRow->setRowSpans(pRowSpans);
+
+ aTopsIt++;
+ }
+#ifdef DEBUG
+ ::std::clog << "</addShadowCells>" << ::std::endl;
+#endif
+}
+
+WW8TableNodeInfo * WW8TableCellGrid::connectCells()
+{
+ RowTops_t::const_iterator aTopsIt = getRowTopsBegin();
+ sal_uInt32 nRow = 0;
+ WW8TableNodeInfo * pLastNodeInfo = NULL;
+
+ while (aTopsIt != getRowTopsEnd())
+ {
+ CellInfoMultiSet::const_iterator aCellIt = getCellsBegin(*aTopsIt);
+ CellInfoMultiSet::const_iterator aCellEndIt = getCellsEnd(*aTopsIt);
+ GridColsPtr pWidths(new Widths);
+ TableBoxVectorPtr pTableBoxes(new TableBoxVector);
+
+ sal_uInt32 nShadows = 0;
+ sal_uInt32 nCell = 0;
+ bool bBeginningOfCell = true;
+ WW8TableNodeInfo * pEndOfCellInfo = NULL;
+ sal_uInt32 nDepthInCell = 0;
+ while (aCellIt != aCellEndIt)
+ {
+ long nCellX = aCellIt->left();
+ WW8TableNodeInfo * pNodeInfo = aCellIt->getTableNodeInfo();
+ if (pNodeInfo != NULL)
+ {
+ const SwNode * pNode = pNodeInfo->getNode();
+
+ if (pNode->IsStartNode())
+ {
+ nDepthInCell++;
+ pEndOfCellInfo = NULL;
+ }
+
+ if (nDepthInCell == 1 && pNode->IsTxtNode())
+ pEndOfCellInfo = pNodeInfo;
+
+ pNodeInfo->setShadowsBefore(nShadows);
+ pNodeInfo->setCell(nCell);
+ pNodeInfo->setRow(nRow);
+ if (pLastNodeInfo != NULL)
+ {
+ pLastNodeInfo->setNext(pNodeInfo);
+ pLastNodeInfo->setNextNode(pNode);
+ }
+ pLastNodeInfo = pNodeInfo;
+ nShadows = 0;
+
+ if (pNode->IsEndNode())
+ {
+ nDepthInCell--;
+
+ if (nDepthInCell == 0 && pEndOfCellInfo == NULL)
+ pEndOfCellInfo = pNodeInfo;
+ }
+ }
+ else
+ {
+ nShadows++;
+ }
+
+ if (bBeginningOfCell)
+ {
+ pWidths->push_back(aCellIt->getFmtFrmWidth());
+
+ if (pNodeInfo != NULL)
+ pTableBoxes->push_back(pNodeInfo->getTableBox());
+ else
+ pTableBoxes->push_back(NULL);
+ }
+
+ aCellIt++;
+ bBeginningOfCell = false;
+
+ if (aCellIt != aCellEndIt && aCellIt->left() != nCellX)
+ {
+ nCell++;
+ bBeginningOfCell = true;
+
+ if (pEndOfCellInfo != NULL)
+ {
+ pEndOfCellInfo->setEndOfCell(true);
+ }
+
+ pEndOfCellInfo = NULL;
+ }
+ }
+
+ pLastNodeInfo->setShadowsAfter(nShadows);
+
+ if (pEndOfCellInfo == NULL)
+ {
+ pEndOfCellInfo = pLastNodeInfo;
+ }
+
+ pEndOfCellInfo->setEndOfCell(true);
+ pLastNodeInfo->setEndOfLine(true);
+
+ WW8TableCellGridRow::Pointer_t pRow(getRow(*aTopsIt));
+ pRow->setTableBoxVector(pTableBoxes);
+ pRow->setWidths(pWidths);
+
+ nShadows = 0;
+
+ aTopsIt++;
+ nRow++;
+ }
+
+ return pLastNodeInfo;
+}
+
+string WW8TableCellGrid::toString()
+{
+ string sResult = "<WW8TableCellGrid>";
+
+ RowTops_t::const_iterator aTopsIt = getRowTopsBegin();
+ static char sBuffer[1024];
+ while (aTopsIt != getRowTopsEnd())
+ {
+ sprintf(sBuffer, "<row y=\"%ld\">", *aTopsIt);
+ sResult += sBuffer;
+
+ CellInfoMultiSet::const_iterator aCellIt = getCellsBegin(*aTopsIt);
+ CellInfoMultiSet::const_iterator aCellsEnd = getCellsEnd(*aTopsIt);
+
+ while (aCellIt != aCellsEnd)
+ {
+ snprintf(sBuffer, sizeof(sBuffer), "<cellInfo top=\"%ld\" bottom=\"%ld\" left=\"%ld\" right=\"%ld\">",
+ aCellIt->top(), aCellIt->bottom(), aCellIt->left(), aCellIt->right());
+ sResult += sBuffer;
+
+ WW8TableNodeInfo * pInfo = aCellIt->getTableNodeInfo();
+ if (pInfo != NULL)
+ sResult += pInfo->toString();
+ else
+ sResult += "<shadow/>\n";
+
+ sResult += "</cellInfo>\n";
+ aCellIt++;
+ }
+
+ WW8TableCellGridRow::Pointer_t pRow = getRow(*aTopsIt);
+ WidthsPtr pWidths = pRow->getWidths();
+ if (pWidths != NULL)
+ {
+ sResult += "<widths>";
+
+ Widths::const_iterator aItEnd = pWidths->end();
+ for (Widths::const_iterator aIt = pWidths->begin();
+ aIt != aItEnd;
+ aIt++)
+ {
+ if (aIt != pWidths->begin())
+ sResult += ", ";
+
+ snprintf(sBuffer, sizeof(sBuffer), "%" SAL_PRIxUINT32 "", *aIt);
+ sResult += sBuffer;
+ }
+
+ sResult += "</widths>";
+ }
+
+ RowSpansPtr pRowSpans = pRow->getRowSpans();
+ if (pRowSpans.get() != NULL)
+ {
+ sResult += "<rowspans>";
+
+ RowSpans::const_iterator aItEnd = pRowSpans->end();
+ for (RowSpans::const_iterator aIt = pRowSpans->begin();
+ aIt != aItEnd;
+ aIt++)
+ {
+ if (aIt != pRowSpans->begin())
+ sResult += ", ";
+
+ snprintf(sBuffer, sizeof(sBuffer), "%" SAL_PRIxUINT32 "", *aIt);
+ sResult += sBuffer;
+ }
+
+ sResult += "</rowspans>";
+ }
+
+ sResult += "</row>\n";
+ aTopsIt++;
+ }
+
+ sResult += "</WW8TableCellGrid>\n";
+
+ return sResult;
+}
+
+TableBoxVectorPtr WW8TableCellGrid::getTableBoxesOfRow
+(WW8TableNodeInfoInner * pNodeInfoInner)
+{
+ TableBoxVectorPtr pResult;
+ WW8TableCellGridRow::Pointer_t pRow =
+ getRow(pNodeInfoInner->getRect().Top(), false);
+
+ if (pRow.get() != NULL)
+ {
+ pResult = pRow->getTableBoxVector();
+ }
+
+ return pResult;
+}
+
+WidthsPtr WW8TableCellGrid::getWidthsOfRow
+(WW8TableNodeInfoInner * pNodeInfoInner)
+{
+ GridColsPtr pResult;
+
+ WW8TableCellGridRow::Pointer_t pRow =
+ getRow(pNodeInfoInner->getRect().Top(), false);
+
+ if (pRow.get() != NULL)
+ {
+ pResult = pRow->getWidths();
+ }
+
+ return pResult;
+}
+
+RowSpansPtr WW8TableCellGrid::getRowSpansOfRow
+(WW8TableNodeInfoInner * pNodeInfoInner)
+{
+ RowSpansPtr pResult;
+
+ WW8TableCellGridRow::Pointer_t pRow =
+ getRow(pNodeInfoInner->getRect().Top(), false);
+
+ if (pRow.get() != NULL)
+ {
+ pResult = pRow->getRowSpans();
+ }
+
+ return pResult;
+}
+
+WW8TableCellGridRow::WW8TableCellGridRow()
+: m_pCellInfos(new CellInfoMultiSet)
+{
+}
+
+WW8TableCellGridRow::~WW8TableCellGridRow()
+{
+}
+
+void WW8TableCellGridRow::insert(const CellInfo & rCellInfo)
+{
+ m_pCellInfos->insert(rCellInfo);
+
+#ifdef DEBUG
+ ::std::clog << "<gridRowInsert>"
+ << rCellInfo.toString()
+ << "</gridRowInsert>"
+ << ::std::endl;
+#endif
+}
+
+CellInfoMultiSet::const_iterator WW8TableCellGridRow::begin() const
+{
+ return m_pCellInfos->begin();
+}
+
+CellInfoMultiSet::const_iterator WW8TableCellGridRow::end() const
+{
+ return m_pCellInfos->end();
+}
+
+void WW8TableCellGridRow::setTableBoxVector(TableBoxVectorPtr pTableBoxVector)
+{
+ m_pTableBoxVector = pTableBoxVector;
+}
+
+void WW8TableCellGridRow::setWidths(WidthsPtr pWidths)
+{
+ m_pWidths = pWidths;
+}
+
+void WW8TableCellGridRow::setRowSpans(RowSpansPtr pRowSpans)
+{
+ m_pRowSpans = pRowSpans;
+}
+
+TableBoxVectorPtr WW8TableCellGridRow::getTableBoxVector() const
+{
+ return m_pTableBoxVector;
+}
+
+WidthsPtr WW8TableCellGridRow::getWidths() const
+{
+ return m_pWidths;
+}
+
+RowSpansPtr WW8TableCellGridRow::getRowSpans() const
+{
+ return m_pRowSpans;
+}
+
+CellInfo::CellInfo(const SwRect & aRect, WW8TableNodeInfo * pNodeInfo)
+: m_aRect(aRect), m_pNodeInfo(pNodeInfo), m_nFmtFrmWidth(0)
+{
+ if (pNodeInfo != NULL)
+ {
+ const SwTableBox * pBox = pNodeInfo->getTableBox();
+ const SwFrmFmt * pFrmFmt = pBox->GetFrmFmt();
+ const SwFmtFrmSize & rSize = pFrmFmt->GetFrmSize();
+
+ m_nFmtFrmWidth = rSize.GetWidth();
+ }
+}
+
}
diff --git a/sw/source/filter/ww8/WW8TableInfo.hxx b/sw/source/filter/ww8/WW8TableInfo.hxx
index 5dcf6ee1d0dc..47397310bd2d 100644
--- a/sw/source/filter/ww8/WW8TableInfo.hxx
+++ b/sw/source/filter/ww8/WW8TableInfo.hxx
@@ -33,18 +33,29 @@
#include <functional>
#include <boost/shared_ptr.hpp>
#include <sal/types.h>
+#include <swrect.hxx>
class SwTable;
class SwTableLine;
class SwTableBox;
class SwNode;
class SwWW8Writer;
+class AttributeOutputBase;
namespace ww8
{
using namespace ::std;
class WW8TableNodeInfo;
+typedef boost::shared_ptr<SwRect> SwRectPtr;
+typedef ::std::vector<const SwTableBox *> TableBoxVector;
+typedef boost::shared_ptr<TableBoxVector> TableBoxVectorPtr;
+typedef ::std::vector<sal_uInt32> GridCols;
+typedef boost::shared_ptr<GridCols> GridColsPtr;
+typedef ::std::vector<sal_uInt32> RowSpans;
+typedef boost::shared_ptr<RowSpans> RowSpansPtr;
+typedef ::std::vector<sal_uInt32> Widths;
+typedef boost::shared_ptr<Widths> WidthsPtr;
class WW8TableNodeInfoInner
{
@@ -52,10 +63,14 @@ class WW8TableNodeInfoInner
sal_uInt32 mnDepth;
sal_uInt32 mnCell;
sal_uInt32 mnRow;
+ sal_uInt32 mnShadowsBefore;
+ sal_uInt32 mnShadowsAfter;
bool mbEndOfLine;
bool mbEndOfCell;
+ bool mbVertMerge;
const SwTableBox * mpTableBox;
const SwTable * mpTable;
+ SwRect maRect;
public:
typedef boost::shared_ptr<WW8TableNodeInfoInner> Pointer_t;
@@ -66,52 +81,77 @@ public:
void setDepth(sal_uInt32 nDepth);
void setCell(sal_uInt32 nCell);
void setRow(sal_uInt32 nRow);
+ void setShadowsBefore(sal_uInt32 nShadowsBefore);
+ void setShadowsAfter(sal_uInt32 nShadowsAfter);
void setEndOfLine(bool bEndOfLine);
void setEndOfCell(bool bEndOfCell);
+ void setVertMerge(bool bVertMErge);
void setTableBox(const SwTableBox * pTableBox);
void setTable(const SwTable * pTable);
+ void setRect(const SwRect & rRect);
sal_uInt32 getDepth() const;
sal_uInt32 getCell() const;
sal_uInt32 getRow() const;
+ sal_uInt32 getShadowsBefore() const;
+ sal_uInt32 getShadowsAfter() const;
bool isEndOfCell() const;
bool isEndOfLine() const;
+ bool isVertMerge() const;
const SwTableBox * getTableBox() const;
const SwTable * getTable() const;
+ const SwRect & getRect() const;
const SwNode * getNode() const;
+ TableBoxVectorPtr getTableBoxesOfRow();
+ WidthsPtr getWidthsOfRow();
+ GridColsPtr getGridColsOfRow(AttributeOutputBase & rBase);
+ RowSpansPtr getRowSpansOfRow();
+
string toString() const;
};
+class CellInfo;
+typedef ::std::multiset<CellInfo, less<CellInfo> > CellInfoMultiSet;
+typedef boost::shared_ptr<CellInfoMultiSet> CellInfoMultiSetPtr;
+
+class WW8TableInfo;
class WW8TableNodeInfo
{
public:
- typedef map<sal_uInt32, WW8TableNodeInfoInner::Pointer_t, greater<sal_uInt32> > Inners_t;
+ typedef map<sal_uInt32, WW8TableNodeInfoInner::Pointer_t,
+ greater<sal_uInt32> > Inners_t;
private:
+ WW8TableInfo * mpParent;
sal_uInt32 mnDepth;
const SwNode * mpNode;
Inners_t mInners;
WW8TableNodeInfo * mpNext;
- SwNode * mpNextNode;
+ const SwNode * mpNextNode;
public:
typedef boost::shared_ptr<WW8TableNodeInfo> Pointer_t;
- WW8TableNodeInfo(const SwNode * pTxtNode);
+ WW8TableNodeInfo(WW8TableInfo * pParent, const SwNode * pTxtNode);
virtual ~WW8TableNodeInfo();
void setDepth(sal_uInt32 nDepth);
void setEndOfLine(bool bEndOfLine);
void setEndOfCell(bool bEndOfCell);
+ void setVertMerge(bool bVertMerge);
void setTableBox(const SwTableBox *pTableBox);
void setTable(const SwTable * pTable);
void setCell(sal_uInt32 nCell);
void setRow(sal_uInt32 nRow);
+ void setShadowsBefore(sal_uInt32 nShadowsBefore);
+ void setShadowsAfter(sal_uInt32 nShadowsAfter);
void setNext(WW8TableNodeInfo * pNext);
- void setNextNode(SwNode * pNode);
+ void setNextNode(const SwNode * pNode);
+ void setRect(const SwRect & rRect);
+ WW8TableInfo * getParent() const;
sal_uInt32 getDepth() const;
bool isEndOfLine() const;
bool isEndOfCell() const;
@@ -119,7 +159,8 @@ public:
const SwTableBox * getTableBox() const;
const SwTable * getTable() const;
WW8TableNodeInfo * getNext() const;
- SwNode * getNextNode() const;
+ const SwNode * getNextNode() const;
+ const SwRect & getRect() const;
const Inners_t & getInners() const;
const WW8TableNodeInfoInner::Pointer_t getFirstInner() const;
@@ -129,6 +170,8 @@ public:
sal_uInt32 getRow() const;
::std::string toString() const;
+
+ bool operator < (const WW8TableNodeInfo & rInfo) const;
};
struct hashNode
@@ -137,10 +180,77 @@ struct hashNode
{ return reinterpret_cast<size_t>(pNode); }
};
+struct hashTable
+{
+ size_t operator()(const SwTable * pTable) const
+ { return reinterpret_cast<size_t>(pTable); }
+};
+
+class WW8TableCellGridRow
+{
+ CellInfoMultiSetPtr m_pCellInfos;
+ TableBoxVectorPtr m_pTableBoxVector;
+ WidthsPtr m_pWidths;
+ RowSpansPtr m_pRowSpans;
+
+public:
+ typedef boost::shared_ptr<WW8TableCellGridRow> Pointer_t;
+ WW8TableCellGridRow();
+ ~WW8TableCellGridRow();
+
+ void insert(const CellInfo & rCellInfo);
+ CellInfoMultiSet::const_iterator begin() const;
+ CellInfoMultiSet::const_iterator end() const;
+
+ void setTableBoxVector(TableBoxVectorPtr pTableBoxVector);
+ void setWidths(WidthsPtr pGridCols);
+ void setRowSpans(RowSpansPtr pRowSpans);
+
+ TableBoxVectorPtr getTableBoxVector() const;
+ WidthsPtr getWidths() const;
+ RowSpansPtr getRowSpans() const;
+};
+
+class WW8TableCellGrid
+{
+ typedef ::std::set<long> RowTops_t;
+ typedef ::std::map<long, WW8TableCellGridRow::Pointer_t> Rows_t;
+
+ RowTops_t m_aRowTops;
+ Rows_t m_aRows;
+
+ WW8TableCellGridRow::Pointer_t getRow(long nTop, bool bCreate = true);
+ RowTops_t::const_iterator getRowTopsBegin() const;
+ RowTops_t::const_iterator getRowTopsEnd() const;
+ CellInfoMultiSet::const_iterator getCellsBegin(long nTop);
+ CellInfoMultiSet::const_iterator getCellsEnd(long nTop);
+
+public:
+ typedef ::boost::shared_ptr<WW8TableCellGrid> Pointer_t;
+
+ WW8TableCellGrid();
+ ~WW8TableCellGrid();
+
+ void insert(const SwRect & rRect, WW8TableNodeInfo * pNodeInfo,
+ unsigned long * pFmtFrmWidth = NULL);
+ void addShadowCells();
+ WW8TableNodeInfo * connectCells();
+
+ string toString();
+
+ TableBoxVectorPtr getTableBoxesOfRow(WW8TableNodeInfoInner * pNodeInfo);
+ WidthsPtr getWidthsOfRow(WW8TableNodeInfoInner * pNodeInfo);
+ RowSpansPtr getRowSpansOfRow(WW8TableNodeInfoInner * pNodeInfo);
+};
+
class WW8TableInfo
{
+ friend class WW8TableNodeInfoInner;
typedef hash_map<const SwNode *, WW8TableNodeInfo::Pointer_t, hashNode > Map_t;
+ typedef hash_map<const SwTable *, WW8TableCellGrid::Pointer_t, hashTable > CellGridMap_t;
+
Map_t mMap;
+ CellGridMap_t mCellGridMap;
WW8TableNodeInfo *
processTableLine(const SwTable * pTable,
@@ -169,7 +279,11 @@ class WW8TableInfo
const SwTableBox * pTableBox,
sal_uInt32 nRow,
sal_uInt32 nCell,
- sal_uInt32 nDepth);
+ sal_uInt32 nDepth,
+ SwRect * pRect = NULL);
+
+ WW8TableCellGrid::Pointer_t getCellGridForTable(const SwTable * pTable,
+ bool bCreate = true);
public:
typedef boost::shared_ptr<WW8TableInfo> Pointer_t;
@@ -178,8 +292,53 @@ public:
virtual ~WW8TableInfo();
void processSwTable(const SwTable * pTable);
+ WW8TableNodeInfo * processSwTableByLayout(const SwTable * pTable);
WW8TableNodeInfo::Pointer_t getTableNodeInfo(const SwNode * pNode);
const SwNode * getNextNode(const SwNode * pNode);
+
+ WW8TableNodeInfo * reorderByLayout(const SwTable * pTable);
+};
+
+class CellInfo
+{
+ SwRect m_aRect;
+ WW8TableNodeInfo * m_pNodeInfo;
+ unsigned long m_nFmtFrmWidth;
+
+public:
+ CellInfo(const SwRect & aRect, WW8TableNodeInfo * pNodeInfo);
+
+ CellInfo(const CellInfo & aRectAndTableInfo)
+ : m_aRect(aRectAndTableInfo.m_aRect),
+ m_pNodeInfo(aRectAndTableInfo.m_pNodeInfo),
+ m_nFmtFrmWidth(aRectAndTableInfo.m_nFmtFrmWidth)
+ {
+ }
+
+ ~CellInfo() {}
+
+ bool operator < (const CellInfo & aCellInfo) const;
+
+ long top() const { return m_aRect.Top(); }
+ long bottom() const { return m_aRect.Bottom(); }
+ long left() const { return m_aRect.Left(); }
+ long right() const { return m_aRect.Right(); }
+ long width() const { return m_aRect.Width(); }
+ long height() const { return m_aRect.Height(); }
+ SwRect getRect() const { return m_aRect; }
+ WW8TableNodeInfo * getTableNodeInfo() const
+ { return m_pNodeInfo; }
+ unsigned long getFmtFrmWidth() const
+ {
+ return m_nFmtFrmWidth;
+ }
+
+ void setFmtFrmWidth(unsigned long nFmtFrmWidth)
+ {
+ m_nFmtFrmWidth = nFmtFrmWidth;
+ }
+
+ ::std::string toString() const;
};
}
diff --git a/sw/source/filter/ww8/attributeoutputbase.hxx b/sw/source/filter/ww8/attributeoutputbase.hxx
index 51a0d9de4374..5e1ca48b5ab3 100644
--- a/sw/source/filter/ww8/attributeoutputbase.hxx
+++ b/sw/source/filter/ww8/attributeoutputbase.hxx
@@ -552,9 +552,7 @@ protected:
virtual bool AnalyzeURL( const String& rUrl, const String& rTarget, String* pLinkURL, String* pMark );
- std::vector<SwTwips> GetGridCols( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner );
-
- void GetTablePageSize( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner, sal_uInt32& rPageSize, bool& rRelBoxSize );
+ ww8::GridColsPtr GetGridCols( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner );
public:
AttributeOutputBase() {}
@@ -571,6 +569,11 @@ public:
/// Output frames.
void OutputFlyFrame( const sw::Frame& rFmt );
+
+ void GetTablePageSize
+ ( ww8::WW8TableNodeInfoInner * pTableTextNodeInfoInner,
+ sal_uInt32& rPageSize, bool& rRelBoxSize );
+
};
#endif // _ATTRIBUTEOUTPUTBASE_HXX_
diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx
index dd6dd6d0d0e7..f6fb18aa0c63 100644
--- a/sw/source/filter/ww8/wrtww8.cxx
+++ b/sw/source/filter/ww8/wrtww8.cxx
@@ -1914,28 +1914,29 @@ void WW8AttributeOutput::TableInfoRow( ww8::WW8TableNodeInfoInner::Pointer_t pTa
}
}
-static sal_uInt16 lcl_TCFlags(const SwTableBox * pBox)
+static sal_uInt16 lcl_TCFlags(const SwTableBox * pBox, long nRowSpan)
{
sal_uInt16 nFlags = 0;
- long nRowSpan = pBox->getRowSpan();
-
if (nRowSpan > 1)
nFlags |= (3 << 5);
else if (nRowSpan < 0)
nFlags |= (1 << 5);
- const SwFrmFmt * pFmt = pBox->GetFrmFmt();
- switch (pFmt->GetVertOrient().GetVertOrient())
+ if (pBox != NULL)
{
- case text::VertOrientation::CENTER:
- nFlags |= (1 << 7);
- break;
- case text::VertOrientation::BOTTOM:
- nFlags |= (2 << 7);
- break;
- default:
- break;
+ const SwFrmFmt * pFmt = pBox->GetFrmFmt();
+ switch (pFmt->GetVertOrient().GetVertOrient())
+ {
+ case text::VertOrientation::CENTER:
+ nFlags |= (1 << 7);
+ break;
+ case text::VertOrientation::BOTTOM:
+ nFlags |= (2 << 7);
+ break;
+ default:
+ break;
+ }
}
return nFlags;
@@ -2093,9 +2094,6 @@ void WW8AttributeOutput::TableOrientation( ww8::WW8TableNodeInfoInner::Pointer_t
void WW8AttributeOutput::TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner )
{
- const SwTableBox * pTabBox = pTableTextNodeInfoInner->getTableBox();
- const SwTableLine * pTabLine = pTabBox->GetUpper();
- const SwTableBoxes & rTabBoxes = pTabLine->GetTabBoxes();
const SwTable * pTable = pTableTextNodeInfoInner->getTable();
if ( pTable->GetRowsToRepeat() > pTableTextNodeInfoInner->getRow() )
@@ -2107,10 +2105,10 @@ void WW8AttributeOutput::TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t
m_rWW8Export.pO->Insert( 1, m_rWW8Export.pO->Count() );
}
+ ww8::TableBoxVectorPtr pTableBoxes =
+ pTableTextNodeInfoInner->getTableBoxesOfRow();
// number of cell written
- sal_uInt32 nBoxes = rTabBoxes.Count();
- if ( nBoxes > 32 )
- nBoxes = 32;
+ sal_uInt32 nBoxes = pTableBoxes->size();
// sprm header
m_rWW8Export.InsUInt16( NS_sprm::LN_TDefTable );
@@ -2161,86 +2159,71 @@ void WW8AttributeOutput::TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t
}
}
- sal_uInt32 n = 0;
- m_rWW8Export.InsUInt16( nTblOffset );
+ m_rWW8Export.InsUInt16( nTblOffset );
- std::vector<SwTwips> gridCols = GetGridCols( pTableTextNodeInfoInner );
- for ( std::vector<SwTwips>::const_iterator it = gridCols.begin(), end = gridCols.end(); it != end; ++it )
- {
- m_rWW8Export.InsUInt16( static_cast<USHORT>( *it ) + nTblOffset );
- }
+ ww8::GridColsPtr pGridCols = GetGridCols( pTableTextNodeInfoInner );
+ for ( ww8::GridCols::const_iterator it = pGridCols->begin(),
+ end = pGridCols->end(); it != end; ++it )
+ {
+ m_rWW8Export.InsUInt16( static_cast<USHORT>( *it ) + nTblOffset );
+ }
+
+ /* TCs */
+ ww8::RowSpansPtr pRowSpans = pTableTextNodeInfoInner->getRowSpansOfRow();
+ ww8::RowSpans::const_iterator aItRowSpans = pRowSpans->begin();
+ ww8::TableBoxVector::const_iterator aIt;
+ ww8::TableBoxVector::const_iterator aItEnd = pTableBoxes->end();
+
+#ifdef DEBUG
+ size_t nRowSpans = pRowSpans->size();
+ size_t nTableBoxes = pTableBoxes->size();
+ (void) nRowSpans;
+ (void) nTableBoxes;
+#endif
- /* TCs */
- for ( n = 0; n < nBoxes; n++ )
+ for( aIt = pTableBoxes->begin(); aIt != aItEnd; ++aIt, ++aItRowSpans)
{
#ifdef DEBUG
sal_uInt16 npOCount = m_rWW8Export.pO->Count();
#endif
- SwTableBox * pTabBox1 = rTabBoxes[n];
- const SwFrmFmt & rBoxFmt = *(pTabBox1->GetFrmFmt());
+ const SwTableBox * pTabBox1 = *aIt;
+ const SwFrmFmt * pBoxFmt = NULL;
+ if (pTabBox1 != NULL)
+ pBoxFmt = pTabBox1->GetFrmFmt();
+
if ( m_rWW8Export.bWrtWW8 )
{
- sal_uInt16 nFlags = lcl_TCFlags(pTabBox1);
- m_rWW8Export.InsUInt16( nFlags );
+ sal_uInt16 nFlags =
+ lcl_TCFlags(pTabBox1, *aItRowSpans);
+ m_rWW8Export.InsUInt16( nFlags );
}
static BYTE aNullBytes[] = { 0x0, 0x0 };
m_rWW8Export.pO->Insert( aNullBytes, 2, m_rWW8Export.pO->Count() ); // dummy
- m_rWW8Export.Out_SwFmtTableBox( *m_rWW8Export.pO, rBoxFmt.GetBox() ); // 8/16 Byte
+ if (pBoxFmt != NULL)
+ {
+ const SvxBoxItem & rBoxItem = pBoxFmt->GetBox();
+
+ m_rWW8Export.Out_SwFmtTableBox( *m_rWW8Export.pO, &rBoxItem ); // 8/16 Byte
+ }
+ else
+ m_rWW8Export.Out_SwFmtTableBox( *m_rWW8Export.pO, NULL); // 8/16 Byte
#ifdef DEBUG
::std::clog << "<tclength>" << m_rWW8Export.pO->Count() - npOCount << "</tclength>"
- << ::std::endl;
+ << ::std::endl;
#endif
}
}
-std::vector<SwTwips> AttributeOutputBase::GetGridCols( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner )
+ww8::GridColsPtr AttributeOutputBase::GetGridCols( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner )
{
- std::vector<SwTwips> gridCols;
-
- const SwTableBox * pTabBox = pTableTextNodeInfoInner->getTableBox();
- const SwTableLine * pTabLine = pTabBox->GetUpper();
- const SwTableBoxes & rTabBoxes = pTabLine->GetTabBoxes();
- const SwTable *pTable = pTableTextNodeInfoInner->getTable( );
-
- // number of cell written
- sal_uInt32 nBoxes = rTabBoxes.Count();
- if ( nBoxes > 32 )
- nBoxes = 32;
-
- const SwFrmFmt *pFmt = pTable->GetFrmFmt();
- ASSERT(pFmt,"Impossible");
- if (!pFmt)
- return gridCols;
-
- const SwFmtFrmSize &rSize = pFmt->GetFrmSize();
- unsigned long nTblSz = static_cast<unsigned long>(rSize.GetWidth());
-
- sal_uInt32 nPageSize = 0;
- bool bRelBoxSize = false;
-
- GetTablePageSize( pTableTextNodeInfoInner, nPageSize, bRelBoxSize );
-
- SwTwips nSz = 0;
- for ( sal_uInt32 n = 0; n < nBoxes; n++ )
- {
- const SwFrmFmt* pBoxFmt = rTabBoxes[ n ]->GetFrmFmt();
- const SwFmtFrmSize& rLSz = pBoxFmt->GetFrmSize();
- nSz += rLSz.GetWidth();
- SwTwips nCalc = nSz;
- if ( bRelBoxSize )
- nCalc = ( nCalc * nPageSize ) / nTblSz;
-
- gridCols.push_back( nCalc );
- }
-
- return gridCols;
+ return pTableTextNodeInfoInner->getGridColsOfRow(*this);
}
-void AttributeOutputBase::GetTablePageSize( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner, sal_uInt32& rPageSize, bool& rRelBoxSize )
+void AttributeOutputBase::GetTablePageSize( ww8::WW8TableNodeInfoInner * pTableTextNodeInfoInner, sal_uInt32& rPageSize, bool& rRelBoxSize )
{
sal_uInt32 nPageSize = 0;
@@ -2455,18 +2438,7 @@ void MSWordExportBase::WriteText()
}
else
{
- ::std::clog << "<already-done><which>" << dbg_out(*pNd)
- << "</which><nodes>" << ::std::endl;
-
- SwNodeDeque::const_iterator aEnd = aNodeDeque.end();
-
- for (SwNodeDeque::const_iterator aIt = aNodeDeque.begin();
- aIt != aEnd; aIt++)
- {
- ::std::clog << dbg_out(**aIt) << ::std::endl;
- }
-
- ::std::clog << "</nodes></already-done>" << ::std::endl;
+ ::std::clog << "<already-done>" << dbg_out(*pNd) << "</already-done>" << ::std::endl;
}
#endif
@@ -2522,6 +2494,10 @@ void MSWordExportBase::WriteText()
AppendSection( pAktPageDesc, pParentFmt, nRstLnNum );
}
}
+ else if ( pNd->IsStartNode() )
+ {
+ OutputStartNode( *pNd->GetStartNode() );
+ }
else if ( pNd->IsEndNode() )
{
OutputEndNode( *pNd->GetEndNode() );
@@ -3684,6 +3660,30 @@ void WW8AttributeOutput::TableNodeInfoInner( ww8::WW8TableNodeInfoInner::Pointer
m_rWW8Export.pO->Remove( 0, m_rWW8Export.pO->Count() ); // leeren
+ sal_uInt32 nShadowsBefore = pNodeInfoInner->getShadowsBefore();
+ if (nShadowsBefore > 0)
+ {
+ ww8::WW8TableNodeInfoInner::Pointer_t
+ pTmpNodeInfoInner(new ww8::WW8TableNodeInfoInner(NULL));
+
+ pTmpNodeInfoInner->setDepth(pNodeInfoInner->getDepth());
+ pTmpNodeInfoInner->setEndOfCell(true);
+
+ for (sal_uInt32 n = 0; n < nShadowsBefore; ++n)
+ {
+ m_rWW8Export.WriteCR(pTmpNodeInfoInner);
+
+ m_rWW8Export.pO->Insert( (BYTE*)&nStyle, 2,
+ m_rWW8Export.pO->Count() ); // Style #
+ TableInfoCell(pTmpNodeInfoInner);
+ m_rWW8Export.pPapPlc->AppendFkpEntry
+ ( m_rWW8Export.Strm().Tell(), m_rWW8Export.pO->Count(),
+ m_rWW8Export.pO->GetData() );
+
+ m_rWW8Export.pO->Remove( 0, m_rWW8Export.pO->Count() ); // leeren
+ }
+ }
+
if (pNodeInfoInner->isEndOfCell())
{
#ifdef DEBUG
@@ -3699,6 +3699,28 @@ void WW8AttributeOutput::TableNodeInfoInner( ww8::WW8TableNodeInfoInner::Pointer
m_rWW8Export.pO->Remove( 0, m_rWW8Export.pO->Count() ); // leeren
}
+ sal_uInt32 nShadowsAfter = pNodeInfoInner->getShadowsAfter();
+ if (nShadowsAfter > 0)
+ {
+ ww8::WW8TableNodeInfoInner::Pointer_t
+ pTmpNodeInfoInner(new ww8::WW8TableNodeInfoInner(NULL));
+
+ pTmpNodeInfoInner->setDepth(pNodeInfoInner->getDepth());
+ pTmpNodeInfoInner->setEndOfCell(true);
+
+ for (sal_uInt32 n = 0; n < nShadowsAfter; ++n)
+ {
+ m_rWW8Export.WriteCR(pTmpNodeInfoInner);
+
+ m_rWW8Export.pO->Insert( (BYTE*)&nStyle, 2, m_rWW8Export.pO->Count() ); // Style #
+ TableInfoCell(pTmpNodeInfoInner);
+ m_rWW8Export.pPapPlc->AppendFkpEntry( m_rWW8Export.Strm().Tell(), m_rWW8Export.pO->Count(),
+ m_rWW8Export.pO->GetData() );
+
+ m_rWW8Export.pO->Remove( 0, m_rWW8Export.pO->Count() ); // leeren
+ }
+ }
+
if (pNodeInfoInner->isEndOfLine())
{
#ifdef DEBUG
@@ -3719,34 +3741,62 @@ void WW8AttributeOutput::TableNodeInfoInner( ww8::WW8TableNodeInfoInner::Pointer
#endif
}
-void MSWordExportBase::OutputEndNode( const SwEndNode &rNode )
+void MSWordExportBase::OutputStartNode( const SwStartNode & rNode)
{
#ifdef DEBUG
- ::std::clog << "<OutWW8_SwEndNode>" << dbg_out(&rNode) << ::std::endl;
+ ::std::clog << "<OutWW8_SwStartNode>" << dbg_out(&rNode) << ::std::endl;
#endif
- ww8::WW8TableNodeInfo::Pointer_t pNodeInfo = mpTableInfo->getTableNodeInfo( &rNode );
+ ww8::WW8TableNodeInfo::Pointer_t pNodeInfo =
+ mpTableInfo->getTableNodeInfo( &rNode );
- if (pNodeInfo)
+ if (pNodeInfo.get() != NULL)
{
- if (pNodeInfo.get() != NULL)
- {
#ifdef DEBUG
- ::std::clog << pNodeInfo->toString() << ::std::endl;
+ ::std::clog << pNodeInfo->toString() << ::std::endl;
#endif
- const ww8::WW8TableNodeInfo::Inners_t aInners = pNodeInfo->getInners();
- ww8::WW8TableNodeInfo::Inners_t::const_iterator aIt(aInners.begin());
- ww8::WW8TableNodeInfo::Inners_t::const_iterator aEnd(aInners.end());
- while (aIt != aEnd)
- {
- ww8::WW8TableNodeInfoInner::Pointer_t pInner = aIt->second;
- AttrOutput().TableNodeInfoInner(pInner);
- aIt++;
- }
+ const ww8::WW8TableNodeInfo::Inners_t aInners = pNodeInfo->getInners();
+ ww8::WW8TableNodeInfo::Inners_t::const_reverse_iterator aIt(aInners.rbegin());
+ ww8::WW8TableNodeInfo::Inners_t::const_reverse_iterator aEnd(aInners.rend());
+ while (aIt != aEnd)
+ {
+ ww8::WW8TableNodeInfoInner::Pointer_t pInner = aIt->second;
+
+ AttrOutput().TableNodeInfoInner(pInner);
+ aIt++;
}
}
#ifdef DEBUG
+ ::std::clog << "</OutWW8_SwStartNode>" << ::std::endl;
+#endif
+}
+
+void MSWordExportBase::OutputEndNode( const SwEndNode &rNode )
+{
+#ifdef DEBUG
+ ::std::clog << "<OutWW8_SwEndNode>" << dbg_out(&rNode) << ::std::endl;
+#endif
+
+ ww8::WW8TableNodeInfo::Pointer_t pNodeInfo = mpTableInfo->getTableNodeInfo( &rNode );
+
+ if (pNodeInfo.get() != NULL)
+ {
+#ifdef DEBUG
+ ::std::clog << pNodeInfo->toString() << ::std::endl;
+#endif
+
+ const ww8::WW8TableNodeInfo::Inners_t aInners = pNodeInfo->getInners();
+ ww8::WW8TableNodeInfo::Inners_t::const_iterator aIt(aInners.begin());
+ ww8::WW8TableNodeInfo::Inners_t::const_iterator aEnd(aInners.end());
+ while (aIt != aEnd)
+ {
+ ww8::WW8TableNodeInfoInner::Pointer_t pInner = aIt->second;
+ AttrOutput().TableNodeInfoInner(pInner);
+ aIt++;
+ }
+ }
+#ifdef DEBUG
::std::clog << "</OutWW8_SwEndNode>" << ::std::endl;
#endif
}
diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx
index 21295ba11ca4..64fc363fa294 100644
--- a/sw/source/filter/ww8/wrtww8.hxx
+++ b/sw/source/filter/ww8/wrtww8.hxx
@@ -763,6 +763,9 @@ protected:
virtual bool DisallowInheritingOutlineNumbering(const SwFmt &rFmt) = 0;
protected:
+ /// Output SwStartNode
+ virtual void OutputStartNode( const SwStartNode& );
+
/// Output SwEndNode
virtual void OutputEndNode( const SwEndNode& );
@@ -1017,7 +1020,7 @@ public:
const SwPageDesc* pNewPgDesc = 0 );
void Out_SwFmtBox(const SvxBoxItem& rBox, bool bShadow);
- void Out_SwFmtTableBox( WW8Bytes& rO, const SvxBoxItem& rBox );
+ void Out_SwFmtTableBox( WW8Bytes& rO, const SvxBoxItem * rBox );
BYTE TransCol( const Color& rCol );
bool TransBrush(const Color& rCol, WW8_SHD& rShd);
WW8_BRC TranslateBorderLine(const SvxBorderLine& pLine,
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index c1c254a47f8d..2db25106d330 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -4297,17 +4297,24 @@ void WW8Export::Out_SwFmtBox(const SvxBoxItem& rBox, bool bShadow)
// ( Tabellenumrandungen fransen sonst aus )
// Ein WW8Bytes-Ptr wird als Ausgabe-Parameter uebergeben
-void WW8Export::Out_SwFmtTableBox( WW8Bytes& rO, const SvxBoxItem& rBox )
+void WW8Export::Out_SwFmtTableBox( WW8Bytes& rO, const SvxBoxItem * pBox )
{
// moeglich und vielleicht besser waere 0xffff
static const USHORT aBorders[] =
{
BOX_LINE_TOP, BOX_LINE_LEFT, BOX_LINE_BOTTOM, BOX_LINE_RIGHT
};
+ static const SvxBorderLine aBorderLine;
+
const USHORT* pBrd = aBorders;
for( int i = 0; i < 4; ++i, ++pBrd )
{
- const SvxBorderLine* pLn = rBox.GetLine( *pBrd );
+ const SvxBorderLine* pLn;
+ if (pBox != NULL)
+ pLn = pBox->GetLine( *pBrd );
+ else
+ pLn = & aBorderLine;
+
Out_BorderLine(rO, pLn, 0, 0, false);
}
}
diff --git a/sw/source/ui/app/apphdl.cxx b/sw/source/ui/app/apphdl.cxx
index 8d8fc095b5be..c78d422a397c 100644
--- a/sw/source/ui/app/apphdl.cxx
+++ b/sw/source/ui/app/apphdl.cxx
@@ -765,16 +765,26 @@ void SwModule::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint )
DELETEZ(pWebToolbarConfig) ;
DELETEZ(pAuthorNames) ;
DELETEZ(pDBConfig);
- pColorConfig->RemoveListener(this);
- DELETEZ(pColorConfig);
- pAccessibilityOptions->RemoveListener(this);
- DELETEZ(pAccessibilityOptions);
- pCTLOptions->RemoveListener(this);
- DELETEZ(pCTLOptions);
- pUserOptions->RemoveListener(this);
- DELETEZ(pUserOptions);
- pUndoOptions->RemoveListener(this);
- DELETEZ(pUndoOptions);
+ if (pColorConfig != 0) {
+ pColorConfig->RemoveListener(this);
+ DELETEZ(pColorConfig);
+ }
+ if (pAccessibilityOptions != 0) {
+ pAccessibilityOptions->RemoveListener(this);
+ DELETEZ(pAccessibilityOptions);
+ }
+ if (pCTLOptions != 0) {
+ pCTLOptions->RemoveListener(this);
+ DELETEZ(pCTLOptions);
+ }
+ if (pUserOptions != 0) {
+ pUserOptions->RemoveListener(this);
+ DELETEZ(pUserOptions);
+ }
+ if (pUndoOptions != 0) {
+ pUndoOptions->RemoveListener(this);
+ DELETEZ(pUndoOptions);
+ }
}
}
}
diff --git a/test/source/cpp/officeconnection.cxx b/test/source/cpp/officeconnection.cxx
index 0365484ea9c8..ccfd2cd0a069 100644
--- a/test/source/cpp/officeconnection.cxx
+++ b/test/source/cpp/officeconnection.cxx
@@ -54,57 +54,69 @@ OfficeConnection::OfficeConnection(): process_(0) {}
OfficeConnection::~OfficeConnection() {}
void OfficeConnection::setUp() {
- oslProcessInfo info;
- info.Size = sizeof info;
- CPPUNIT_ASSERT_EQUAL(
- osl_Process_E_None,
- osl_getProcessInfo(0, osl_Process_IDENTIFIER, &info));
- rtl::OUString desc(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("pipe,name=oootest")) +
- rtl::OUString::valueOf(static_cast< sal_Int64 >(info.Ident)) +
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(";urp")));
- rtl::OUString noquickArg(
- RTL_CONSTASCII_USTRINGPARAM("-quickstart=no"));
- rtl::OUString nofirstArg(
- RTL_CONSTASCII_USTRINGPARAM("-nofirststartwizard"));
- rtl::OUString norestoreArg(RTL_CONSTASCII_USTRINGPARAM("-norestore"));
- rtl::OUString acceptArg(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-accept=")) + desc);
- rtl::OUString argUser;
+ rtl::OUString desc;
+ rtl::OUString argSoffice;
CPPUNIT_ASSERT(
getArgument(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("user")), &argUser));
- rtl::OUString userArg(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-env:UserInstallation=")) +
- toAbsoluteFileUrl(argUser));
- rtl::OUString jreArg(
- RTL_CONSTASCII_USTRINGPARAM("-env:UNO_JAVA_JFW_ENV_JREHOME=true"));
- rtl::OUString classpathArg(
- RTL_CONSTASCII_USTRINGPARAM("-env:UNO_JAVA_JFW_ENV_CLASSPATH=true"));
- rtl_uString * args[] = {
- noquickArg.pData, nofirstArg.pData, norestoreArg.pData, acceptArg.pData,
- userArg.pData, jreArg.pData, classpathArg.pData };
- rtl_uString ** envs = 0;
- rtl::OUString argEnv;
- if (getArgument(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("env")), &argEnv))
- {
- envs = &argEnv.pData;
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("soffice")),
+ &argSoffice));
+ if (argSoffice.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("path:"))) {
+ oslProcessInfo info;
+ info.Size = sizeof info;
+ CPPUNIT_ASSERT_EQUAL(
+ osl_Process_E_None,
+ osl_getProcessInfo(0, osl_Process_IDENTIFIER, &info));
+ desc = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("pipe,name=oootest")) +
+ rtl::OUString::valueOf(static_cast< sal_Int64 >(info.Ident));
+ rtl::OUString noquickArg(
+ RTL_CONSTASCII_USTRINGPARAM("-quickstart=no"));
+ rtl::OUString nofirstArg(
+ RTL_CONSTASCII_USTRINGPARAM("-nofirststartwizard"));
+ rtl::OUString norestoreArg(RTL_CONSTASCII_USTRINGPARAM("-norestore"));
+ rtl::OUString acceptArg(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-accept=")) + desc +
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(";urp")));
+ rtl::OUString argUser;
+ CPPUNIT_ASSERT(
+ getArgument(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("user")), &argUser));
+ rtl::OUString userArg(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("-env:UserInstallation=")) +
+ toAbsoluteFileUrl(argUser));
+ rtl::OUString jreArg(
+ RTL_CONSTASCII_USTRINGPARAM("-env:UNO_JAVA_JFW_ENV_JREHOME=true"));
+ rtl::OUString classpathArg(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "-env:UNO_JAVA_JFW_ENV_CLASSPATH=true"));
+ rtl_uString * args[] = {
+ noquickArg.pData, nofirstArg.pData, norestoreArg.pData,
+ acceptArg.pData, userArg.pData, jreArg.pData, classpathArg.pData };
+ rtl_uString ** envs = 0;
+ rtl::OUString argEnv;
+ if (getArgument(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("env")), &argEnv))
+ {
+ envs = &argEnv.pData;
+ }
+ CPPUNIT_ASSERT_EQUAL(
+ osl_Process_E_None,
+ osl_executeProcess(
+ toAbsoluteFileUrl(
+ argSoffice.copy(RTL_CONSTASCII_LENGTH("path:"))).pData,
+ args, sizeof args / sizeof args[0], 0, 0, 0, envs,
+ envs == 0 ? 0 : 1, &process_));
+ } else if (argSoffice.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("connect:"))) {
+ desc = argSoffice.copy(RTL_CONSTASCII_LENGTH("connect:"));
+ } else {
+ CPPUNIT_FAIL(
+ "\"soffice\" argument starts with neither \"path:\" nor"
+ " \"connect:\"");
}
- rtl::OUString argPath;
- CPPUNIT_ASSERT(
- getArgument(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("path")), &argPath));
- CPPUNIT_ASSERT_EQUAL(
- osl_Process_E_None,
- osl_executeProcess(
- toAbsoluteFileUrl(argPath).pData, args,
- sizeof args / sizeof args[0], 0, 0, 0, envs, envs == 0 ? 0 : 1,
- &process_));
css::uno::Reference< css::bridge::XUnoUrlResolver > resolver(
css::bridge::UnoUrlResolver::create(
cppu::defaultBootstrap_InitialComponentContext()));
- for (int i = 0;; ++i) {
+ for (;;) {
try {
factory_ =
css::uno::Reference< css::lang::XMultiServiceFactory >(
@@ -113,14 +125,16 @@ void OfficeConnection::setUp() {
desc +
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
- ";StarOffice.ServiceManager"))),
+ ";urp;StarOffice.ServiceManager"))),
css::uno::UNO_QUERY_THROW);
break;
} catch (css::connection::NoConnectException &) {}
- TimeValue delay = { 1, 0 }; // 1 sec
- CPPUNIT_ASSERT_EQUAL(
- osl_Process_E_TimedOut,
- osl_joinProcessWithTimeout(process_, &delay));
+ if (process_ != 0) {
+ TimeValue delay = { 1, 0 }; // 1 sec
+ CPPUNIT_ASSERT_EQUAL(
+ osl_Process_E_TimedOut,
+ osl_joinProcessWithTimeout(process_, &delay));
+ }
}
}
diff --git a/test/source/java/OfficeConnection.java b/test/source/java/OfficeConnection.java
index 6a7ecd277758..6887c3bfa3cd 100644
--- a/test/source/java/OfficeConnection.java
+++ b/test/source/java/OfficeConnection.java
@@ -49,31 +49,41 @@ public final class OfficeConnection {
/** Start up an OOo instance.
*/
public void setUp() throws Exception {
- description = "pipe,name=oootest" + UUID.randomUUID();
- ProcessBuilder pb = new ProcessBuilder(
- getArgument("path"), "-quickstart=no", "-nofirststartwizard",
- "-norestore", "-accept=" + description + ";urp",
- "-env:UserInstallation=" + getArgument("user"),
- "-env:UNO_JAVA_JFW_ENV_JREHOME=true",
- "-env:UNO_JAVA_JFW_ENV_CLASSPATH=true");
- String envArg = getArgument("env");
- if (envArg != null) {
- Map<String, String> env = pb.environment();
- int i = envArg.indexOf("=");
- if (i == -1) {
- env.remove(envArg);
- } else {
- env.put(envArg.substring(0, i), envArg.substring(i + 1));
+ String sofficeArg = getArgument("soffice");
+ if (sofficeArg.startsWith("path:")) {
+ description = "pipe,name=oootest" + UUID.randomUUID();
+ ProcessBuilder pb = new ProcessBuilder(
+ sofficeArg.substring("path:".length()), "-quickstart=no",
+ "-nofirststartwizard", "-norestore",
+ "-accept=" + description + ";urp",
+ "-env:UserInstallation=" + getArgument("user"),
+ "-env:UNO_JAVA_JFW_ENV_JREHOME=true",
+ "-env:UNO_JAVA_JFW_ENV_CLASSPATH=true");
+ String envArg = getArgument("env");
+ if (envArg != null) {
+ Map<String, String> env = pb.environment();
+ int i = envArg.indexOf("=");
+ if (i == -1) {
+ env.remove(envArg);
+ } else {
+ env.put(envArg.substring(0, i), envArg.substring(i + 1));
+ }
}
+ process = pb.start();
+ outForward = new Forward(process.getInputStream(), System.out);
+ outForward.start();
+ errForward = new Forward(process.getErrorStream(), System.err);
+ errForward.start();
+ } else if (sofficeArg.startsWith("connect:")) {
+ description = sofficeArg.substring("connect:".length());
+ } else {
+ fail(
+ "\"soffice\" argument \"" + sofficeArg +
+ " starts with neither \"path:\" nor \"connect:\"");
}
- process = pb.start();
- outForward = new Forward(process.getInputStream(), System.out);
- outForward.start();
- errForward = new Forward(process.getErrorStream(), System.err);
- errForward.start();
XUnoUrlResolver resolver = UnoUrlResolver.create(
Bootstrap.createInitialComponentContext(null));
- for (int i = 0;; ++i) {
+ for (;;) {
try {
factory = UnoRuntime.queryInterface(
XMultiServiceFactory.class,
@@ -82,7 +92,9 @@ public final class OfficeConnection {
";urp;StarOffice.ServiceManager"));
break;
} catch (NoConnectException e) {}
- assertNull(waitForProcess(process, 1000)); // 1 sec
+ if (process != null) {
+ assertNull(waitForProcess(process, 1000)); // 1 sec
+ }
}
}
@@ -103,6 +115,8 @@ public final class OfficeConnection {
// it appears that DisposedExceptions can already happen while
// receiving the response of the terminate call
desktop = null;
+ } else if (process != null) {
+ process.destroy();
}
int code = 0;
if (process != null) {
@@ -194,9 +208,9 @@ public final class OfficeConnection {
return done;
}
- InputStream in;
- PrintStream out;
- boolean done = false;
+ private final InputStream in;
+ private final PrintStream out;
+ private boolean done = false;
}
private String description;
diff --git a/testautomation/extensions/optional/e_issues.bas b/testautomation/extensions/optional/e_issues.bas
new file mode 100755
index 000000000000..549ad69b1a2e
--- /dev/null
+++ b/testautomation/extensions/optional/e_issues.bas
@@ -0,0 +1,55 @@
+'encoding UTF-8 Do not remove or change this line!
+'**************************************************************************
+' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+'
+' Copyright 2000, 2010 Oracle and/or its affiliates.
+'
+' OpenOffice.org - a multi-platform office productivity suite
+'
+' This file is part of OpenOffice.org.
+'
+' OpenOffice.org is free software: you can redistribute it and/or modify
+' it under the terms of the GNU Lesser General Public License version 3
+' only, as published by the Free Software Foundation.
+'
+' OpenOffice.org is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY; without even the implied warranty of
+' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+' GNU Lesser General Public License version 3 for more details
+' (a copy is included in the LICENSE file that accompanied this code).
+'
+' You should have received a copy of the GNU Lesser General Public License
+' version 3 along with OpenOffice.org. If not, see
+' <http://www.openoffice.org/license.html>
+' for a copy of the LGPLv3 License.
+'
+'/******************************************************************************
+'*
+'* owner : joerg.skottke@sun.com
+'*
+'* short description : Extension publisher string
+'*
+'\******************************************************************************
+
+sub main
+
+ use "extensions\optional\includes\issue110083.inc"
+
+ call hStatusIn( "extensions" , "e_issues.bas" )
+ call tExtensionIssue110083()
+ call hStatusOut()
+
+end sub
+
+'*******************************************************************************
+
+sub LoadIncludeFiles
+
+ use "global\system\includes\gvariabl.inc"
+ use "global\system\includes\master.inc"
+ use "global\tools\includes\optional\t_extension_manager_tools.inc"
+ gApplication = "WRITER"
+ call GetUseFiles()
+
+end sub
+
diff --git a/testautomation/extensions/optional/includes/issue110083.inc b/testautomation/extensions/optional/includes/issue110083.inc
new file mode 100755
index 000000000000..8940f7f8274c
--- /dev/null
+++ b/testautomation/extensions/optional/includes/issue110083.inc
@@ -0,0 +1,79 @@
+'encoding UTF-8 Do not remove or change this line!
+'*******************************************************************************
+' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+'
+' Copyright 2000, 2010 Oracle and/or its affiliates.
+'
+' OpenOffice.org - a multi-platform office productivity suite
+'
+' This file is part of OpenOffice.org.
+'
+' OpenOffice.org is free software: you can redistribute it and/or modify
+' it under the terms of the GNU Lesser General Public License version 3
+' only, as published by the Free Software Foundation.
+'
+' OpenOffice.org is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY; without even the implied warranty of
+' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+' GNU Lesser General Public License version 3 for more details
+' (a copy is included in the LICENSE file that accompanied this code).
+'
+' You should have received a copy of the GNU Lesser General Public License
+' version 3 along with OpenOffice.org. If not, see
+' <http://www.openoffice.org/license.html>
+' for a copy of the LGPLv3 License.
+'
+'/******************************************************************************
+'*
+'* owner : joerg.skottke@sun.com
+'*
+'* short description : CWS sb112 fixes a problem with configuration schemas
+'*
+'\******************************************************************************
+
+testcase tExtensionIssue110083()
+
+ printlog( "Configuration/-schema .xcu/.xcs-files which might trigger exceptions from unopkg/Extension Manager" )
+
+ const NUMBER_OF_TEST_EXTENSIONS = 2
+
+ dim cExtensionNames( NUMBER_OF_TEST_EXTENSIONS ) as string
+ cExtensionNames( 1 ) = "LoggingOptions.xcs"
+ cExtensionNames( 2 ) = "Logging.xcu"
+
+ dim cErrorIdentifier( NUMBER_OF_TEST_EXTENSIONS ) as string
+ cErrorIdentifier( 1 ) = "no component element"
+ cErrorIdentifier( 2 ) = "no component element"
+
+ dim cExtensionPath as string
+ cExtensionPath = gTesttoolPath & "extensions/optional/input/issues/"
+
+ dim cExtension as string
+
+ dim iCurrentExtension as integer
+
+
+ for iCurrentExtension = 1 to NUMBER_OF_TEST_EXTENSIONS
+
+ cExtension = convertpath( cExtensionPath & cExtensionNames( iCurrentExtension ) )
+ hExtensionAddGUI( cExtension, "" )
+
+ kontext "Active"
+ if ( Active.exists() ) then
+ if ( instr( Active.getText, cErrorIdentifier( iCurrentExtension ) ) > 0 ) then
+ warnlog( "#i110083# - Error installing .xcs/.xcu-file: " & cExtensionNames( iCurrentExtension ) )
+ Active.ok()
+
+ kontext "PackageManager"
+ PackageManager.close()
+ else
+ warnlog( "Unexpected messagebox displayed. It cannot be handled" )
+ endif
+ else
+ hExtensionRemoveGUI( cExtensionNames( iCurrentExtension ) )
+ endif
+
+ next iCurrentExtension
+
+endcase
+
diff --git a/testautomation/extensions/optional/includes/platforms.inc b/testautomation/extensions/optional/includes/platforms.inc
index bb8bea80b12f..4f96701afd20 100644..100755
--- a/testautomation/extensions/optional/includes/platforms.inc
+++ b/testautomation/extensions/optional/includes/platforms.inc
@@ -78,7 +78,7 @@ testcase tExtensionPlatforms
printlog( "Current extension: " & cCurrentExtensionFile )
iStatus = hExtensionAddGUI( cCurrentExtensionPath, "InstallForUser, NoLicense, NoUpdate, Verbose" )
- if ( iStatus >= 0 ) then
+ if ( iStatus = -7 or iStatus >= 0 ) then
kontext "Active"
if ( Active.exists( 2 ) ) then
diff --git a/testautomation/extensions/optional/input/issues/Logging.xcu b/testautomation/extensions/optional/input/issues/Logging.xcu
new file mode 100755
index 000000000000..8bf0f34b6f1b
--- /dev/null
+++ b/testautomation/extensions/optional/input/issues/Logging.xcu
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Logging" oor:package="org.openoffice.Office">
+ <node oor:name="Settings">
+ <node oor:name="bw.stv.tvs.logging.DefaultLogger" oor:op="replace">
+ <prop oor:name="DefaultFormatter" oor:type="xs:string">
+ <value>com.sun.star.logging.PlainTextFormatter</value>
+ </prop>
+ <prop oor:name="DefaultHandler" oor:type="xs:string">
+ <value>bw.stv.tvs.logging.UILogHandler</value>
+ </prop>
+ <prop oor:name="LogLevel" oor:type="xs:int">
+ <value>2147483647</value>
+ </prop>
+ <node oor:name="HandlerSettings">
+ <prop oor:name="UIId" oor:type="xs:string">
+ <value>tvs.ui</value>
+ </prop>
+ <prop oor:name="UITitle" oor:type="xs:string">
+ <value>TVS-Logger (bw.stv.tvs.logging.DefaultLogger)</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+</oor:component-data> \ No newline at end of file
diff --git a/testautomation/extensions/optional/input/issues/LoggingOptions.xcs b/testautomation/extensions/optional/input/issues/LoggingOptions.xcs
new file mode 100644
index 000000000000..e87474bba2a2
--- /dev/null
+++ b/testautomation/extensions/optional/input/issues/LoggingOptions.xcs
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<oor:component-schema xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oor:name="Logging" oor:package="org.openoffice.Office" xml:lang="en-US">
+ <templates>
+ <group oor:name="LoggerSettings">
+ <group oor:name="HandlerSettings" oor:extensible="true">
+ <info>
+ <desc>Enthält zusätzliche Optionen für den TVS-UILogHandler</desc>
+ </info>
+ <prop oor:name="UITitle" oor:type="xs:string">
+ <value/>
+ </prop>
+ <prop oor:name="UIId" oor:type="xs:string">
+ <value/>
+ </prop>
+ </group>
+ </group>
+ </templates>
+ <component/>
+</oor:component-schema>
diff --git a/testautomation/global/tools/includes/optional/t_extension_manager_tools.inc b/testautomation/global/tools/includes/optional/t_extension_manager_tools.inc
index c231e6a798e6..ee4d7f55beba 100644..100755
--- a/testautomation/global/tools/includes/optional/t_extension_manager_tools.inc
+++ b/testautomation/global/tools/includes/optional/t_extension_manager_tools.inc
@@ -79,6 +79,7 @@ function hExtensionAddGUI( _path as string, _flags as string ) as integer
'///+<li>-4 = Unknown messagebox before the file Open dialog exists</li>
'///+<li>-5 = Broken dependency warning displayed</li>
'///+<li>-6 = The File Open dialog did not pop up</li>
+ '///+<li>-7 = Unknown and unhandled messagebox. function exit</li>
'///</ul>
'///</ol>
@@ -100,6 +101,7 @@ function hExtensionAddGUI( _path as string, _flags as string ) as integer
'///+<li>Verify that the requested extension exists (filesystem level)</li>
if ( not FileExists( path ) ) then
printlog( CFN & "Requested extension does not exist" )
+ printlog( CFN & path )
hExtensionAddGUI() = -1
exit function
endif
@@ -233,6 +235,8 @@ function hExtensionAddGUI( _path as string, _flags as string ) as integer
else
printlog( CFN & "Unexpected/unknown dialog displayed" )
printlog( Active.getText() )
+ hExtensionAddGUI() = -7
+ exit function
endif
else
if ( instr( flags , "noupdate" ) <> 0 ) then
diff --git a/testautomation/global/win/tab_a_d.win b/testautomation/global/win/tab_a_d.win
index af6d933aefb4..a3135d80e1dd 100755
--- a/testautomation/global/win/tab_a_d.win
+++ b/testautomation/global/win/tab_a_d.win
@@ -151,6 +151,7 @@ GenauigkeitWieAngezeigt sc:CheckBox:RID_SCPAGE_CALC:BTN_CALC
Suchkriterien sc:CheckBox:RID_SCPAGE_CALC:BTN_MATCH
RegulaererAusdruck sc:CheckBox:RID_SCPAGE_CALC:BTN_REGEX
SpaltenZeilenbeschriftung sc:CheckBox:RID_SCPAGE_CALC:BTN_LOOKUP
+LimitDecimals sc:CheckBox:RID_SCPAGE_CALC:BTN_GENERAL_PREC
*TabBereiche HID_INSERT_SECTION_PAGE
Bereichsliste sw:ComboBox:TP_INSERT_SECTION:ED_RNAME
diff --git a/testautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc b/testautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc
index cdb4691eed3a..55c97473902c 100644..100755
--- a/testautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc
+++ b/testautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc
@@ -92,17 +92,17 @@ testcase tArrayconstants01
kontext "DocumentCalc"
DocumentCalc.TypeKeys ("=" & sFunctionSIN & "({1;2;3}) <MOD1 SHIFT RETURN>")
'///Check that the cellvalue of A4 is "0.84"
- printlog "Check that the cellvalue of A4 is ""0.84"""
+ printlog "Check that the cellvalue of A4 is ""0.8414709848"""
call fCalcSelectRange ("A5")
kontext "DocumentCalc"
DocumentCalc.TypeKeys "=A4<TAB>=B4<TAB>=C4<RETURN>" 'because a part of a matrix is protected we need a helpcell with only the values
- call fCalcCompareCellValue ("A5","0" & sDecimalseperator & "84")
+ call fCalcCompareCellValue ("A5","0" & sDecimalseperator & "8414709848")
'///Check that the cell contents of B4 is "0.91"
- printlog "Check that the cell contents of B4 is ""0.91"""
- call fCalcCompareCellValue ("B5","0" & sDecimalseperator & "91")
+ printlog "Check that the cell contents of B4 is ""0.9092974268"""
+ call fCalcCompareCellValue ("B5","0" & sDecimalseperator & "9092974268")
'///Check that the cell contents of C4 is "0.14"
- printlog "Check that the cell contents of C4 is ""0.14"""
- call fCalcCompareCellValue ("C5","0" & sDecimalseperator & "14")
+ printlog "Check that the cell contents of C4 is ""0.1411200081"""
+ call fCalcCompareCellValue ("C5","0" & sDecimalseperator & "1411200081")
'///In cell A6 enter "={1;2|4;5;6}"
printlog "In cell A6 enter ""={1;2|4;5;6}"""
diff --git a/testautomation/spreadsheet/optional/includes/solver/c_solver.inc b/testautomation/spreadsheet/optional/includes/solver/c_solver.inc
index 623b43e98217..623b43e98217 100644..100755
--- a/testautomation/spreadsheet/optional/includes/solver/c_solver.inc
+++ b/testautomation/spreadsheet/optional/includes/solver/c_solver.inc
diff --git a/testgraphical/document-pool/demo/CurrentTime.ods b/testgraphical/document-pool/demo/CurrentTime.ods
new file mode 100644
index 000000000000..e027215ddb74
--- /dev/null
+++ b/testgraphical/document-pool/demo/CurrentTime.ods
Binary files differ
diff --git a/testgraphical/document-pool/demo/knownissues.xcl b/testgraphical/document-pool/demo/knownissues.xcl
new file mode 100644
index 000000000000..5cdad159bc35
--- /dev/null
+++ b/testgraphical/document-pool/demo/knownissues.xcl
@@ -0,0 +1,8 @@
+[ps]
+### contains date in it, will fail every time ###
+CurrentTime.ods
+
+[pdf]
+### contains date in it, will fail every time ###
+CurrentTime.ods
+
diff --git a/testgraphical/document-pool/singletest/eis-test.odt b/testgraphical/document-pool/singletest/eis-test.odt
new file mode 100644
index 000000000000..bb9c6a43f623
--- /dev/null
+++ b/testgraphical/document-pool/singletest/eis-test.odt
Binary files differ
diff --git a/cppu/test/mapping_tester/makefile.mk b/testgraphical/prechecks/makefile.mk
index db62dcd5b14a..13796c949ab5 100644
--- a/cppu/test/mapping_tester/makefile.mk
+++ b/testgraphical/prechecks/makefile.mk
@@ -25,39 +25,32 @@
#
#*************************************************************************
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := mapping.tester
+PRJ=..
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
+PRJNAME=gfxcmp_prechecks
+TARGET=notargetyet
+# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
-VERSIONOBJ := # NO GetVersionInfo symbols :-)
-ENVINCPRE := -I$(OUT)$/inc$/$(TARGET)
-#CDEFS += -DLOG_LIFECYCLE
-
-.IF "$(COM)" == "GCC"
-LINKFLAGS += -rdynamic
-.ENDIF
+# --- Targets ------------------------------------------------------
+.INCLUDE : target.mk
-.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
-ObjectFactory_LIB := -lObjectFactory.$(COMID)
+.IF "$(VERBOSE)"!=""
+ P_VERBOSE=-verbose
+.ENDIF
+.IF "$(SHOW)"!=""
+ P_JAVA6=-java6
+.ENDIF
+# PERLDEBUG=-d:ptkdb
+ALLTAR:
+.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2"
+ $(PERL) $(PERLDEBUG) softwaretests.pl -printerdriver -imagemagick -ghostscript $(P_VERBOSE) $(P_JAVA6)
.ELSE
-ObjectFactory_LIB := $(LIBPRE) iObjectFactory.$(COMID).lib
-
+ $(PERL) $(PERLDEBUG) softwaretests.pl -imagemagick -ghostscript $(P_VERBOSE) $(P_JAVA6)
.ENDIF
-
-APP1TARGET := mapping.tester
-APP1OBJS := $(OBJ)$/mapping.tester.obj
-APP1STDLIBS := $(ObjectFactory_LIB) $(SALLIB) $(CPPULIB) $(CPPUHELPERLIB)
-
-
-.INCLUDE : target.mk
-
-
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
diff --git a/testgraphical/prechecks/softwaretests.pl b/testgraphical/prechecks/softwaretests.pl
new file mode 100644
index 000000000000..f591fa139879
--- /dev/null
+++ b/testgraphical/prechecks/softwaretests.pl
@@ -0,0 +1,564 @@
+eval 'exec perl -wS $0 ${1+\"$@\"}'
+ if 0;
+
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+# This is a pre check, which checks if some extra software exists
+
+BEGIN
+{
+ # Adding the path of this script file to the include path in the hope
+ # that all used modules can be found in it.
+ $0 =~ /^(.*)[\/\\]/;
+ push @INC, $1;
+}
+
+use strict;
+use English; # $OSNAME, ...
+use Getopt::Long;
+use Cwd;
+use Cwd 'chdir';
+my $cwd = getcwd();
+
+our $help; # Help option flag
+our $version; # Version option flag
+
+# flush STDOUT
+# my $old_handle = select (STDOUT); # "select" STDOUT and save # previously selected handle
+# $| = 1; # perform flush after each write to STDOUT
+# select ($old_handle); # restore previously selected handle
+
+$OUTPUT_AUTOFLUSH=1; # works only if use English is used.
+
+our $sGlobalIniFile;
+our $verbose = 0;
+our $ghostscript;
+our $imagemagick;
+our $java6;
+our $printerdriver;
+
+our $version_info = 'compare.pl';
+
+GetOptions(
+ "ghostscript" => \$ghostscript,
+ "imagemagick" => \$imagemagick,
+ "java6" => \$java6,
+ "printerdriver" => \$printerdriver,
+ "verbose" => \$verbose,
+
+ "help" => \$help,
+ "version" => \$version
+ );
+
+if ($help)
+{
+ print_usage(*STDOUT);
+ exit(0);
+}
+# Check for version option
+if ($version)
+{
+ print STDERR "$version_info\n";
+ exit(0);
+}
+
+# prepare the GlobalIniFile
+
+sub prepare()
+{
+ my $sEnv = "$ENV{PRJ}";
+ if (! $sEnv)
+ {
+ print "Warning: Seems you are not in a makefile.mk environment.\n";
+ $sEnv = "..";
+ }
+ my $sPath = getcwd();
+ $sPath .= "/" . $sEnv;
+ chdir ($sPath);
+ cwd();
+ $sPath = getcwd();
+ my $sInpath = $ENV{INPATH};
+ $sPath .= "/" . $sInpath . "/misc";
+ $sGlobalIniFile = "$sPath/pathes.ini";
+ print "Global Path ini file is: $sGlobalIniFile\n" if ($verbose);
+}
+
+sub unixpath($)
+{
+ my $path = shift;
+ $path =~ s/\\/\//g; # make out of '\' a '/'
+ return $path;
+}
+
+# search for file in a given path list.
+# the path list should be separated as the path variable in the corresponding OS
+sub searchForFileInPath($$)
+{
+ my $sFile = shift;
+ my $sPathList = shift;
+
+ my $sep = ':';
+ if ($OSNAME eq "MSWin32")
+ {
+ $sep = ';';
+ }
+ my @path = split($sep, $sPathList);
+
+ my $sPath;
+ my $startdir;
+ my $bFound = 0;
+ my $olddir = getcwd();
+
+ my $sWindowsHomeDir = unixpath(lc($ENV{WINDIR}));
+
+ foreach $startdir (@path)
+ {
+ my $nCount = 0;
+ #
+ # IMPORTANT: leave out windir path.
+ #
+ if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ my $sPath = unixpath(lc(convertCygwinPath($startdir)));
+ if ($sPath =~ /^$sWindowsHomeDir/ )
+ {
+ print "path: $startdir is windows path leave out.\n" if ($verbose);
+ next;
+ }
+ }
+
+ local *DIR;
+ if (opendir (DIR, $startdir)) # open directory
+ {
+ print "path: $startdir" if ($verbose);
+ chdir ($startdir);
+ cwd();
+ my $myfile;
+ while ($myfile = readdir(DIR)) # get filename
+ {
+ if (-f $myfile ) # is it a file?
+ {
+ $nCount ++;
+ if ($myfile eq $sFile) # is it the real file?
+ {
+ $sPath = $startdir;
+ $bFound = 1;
+ last;
+ }
+ }
+ }
+ closedir(DIR);
+ print " ($nCount)\n" if ($verbose);
+ }
+ if ($bFound == 1)
+ {
+ last;
+ }
+ }
+ chdir ($olddir);
+ cwd();
+
+ return $sPath;
+}
+
+
+prepare();
+# don't remove the inifile, only build clean should do this.
+# if ( -e "$sGlobalIniFile")
+# {
+# unlink($sGlobalIniFile);
+# }
+
+
+# small helper, which replaces the return code
+sub errorAdaption($)
+{
+ my $error = shift;
+ if ($error != 0)
+ {
+ $error = $error / 256;
+ }
+ if ($error > 127)
+ {
+ $error = $error - 256;
+ }
+ return $error;
+}
+
+# for every error we increment this variable by 1
+our $nGlobalErrors = 0;
+
+sub handleError($$)
+{
+ my $error = shift;
+ my $sText = shift;
+ if ($error != 0)
+ {
+ print "ERROR: search for $sText has failed with Errornumber: $error\n";
+ $nGlobalErrors ++;
+ }
+}
+
+sub convertCygwinPath($)
+{
+ my $sPath = shift;
+
+ if ($OSNAME eq "cygwin")
+ {
+ # print "Cygwin Path Patch.\n" if ($verbose);
+ if ($sPath =~ /\/cygdrive\/(.)/)
+ {
+ my $Letter = $1;
+ $sPath =~ s/\/cygdrive\/${Letter}/${Letter}\:/;
+ # print "Cygwin Path Patch: '$sPath'\n" if ($verbose);
+ }
+ }
+ return $sPath;
+}
+
+# append key=value to GlobalIniFile
+sub insertPath($$)
+{
+ my $sKey = shift;
+ my $sValue = shift;
+
+ $sValue = convertCygwinPath($sValue);
+ my $sIniFile = convertCygwinPath($sGlobalIniFile);
+ local *INIFILE;
+ if (open(INIFILE, ">>" . $sIniFile ))
+ {
+ print INIFILE "$sKey=$sValue\n";
+ }
+ close(INIFILE);
+}
+
+sub getFastPath($)
+{
+ my $sKey = shift;
+ my $sValue;
+ local *INIFILE;
+ my $sIniFile = convertCygwinPath($sGlobalIniFile);
+ if (open(INIFILE, $sIniFile))
+ {
+ my $line;
+ while ($line = <INIFILE>)
+ {
+ chomp($line);
+ if ( $line =~ /^$sKey=(.*)$/ )
+ {
+ $sValue = $1;
+ # print INIFILE "$sKey=$sValue\n";
+ }
+ }
+ close(INIFILE);
+ }
+ return $sValue;
+}
+
+sub checkForGhostscript()
+{
+ print "Search for Ghostscript\n" if ($verbose);
+ if ($OSNAME eq "linux" ||
+ $OSNAME eq "solaris")
+ {
+ # search for ghostscript
+ local *GHOSTSCRIPT;
+ if (open(GHOSTSCRIPT, "which gs 2>&1 |"))
+ {
+ my $line;
+ while ($line = <GHOSTSCRIPT>)
+ {
+ chomp($line);
+ print "- $line\n" if ($verbose);
+ }
+ close(GHOSTSCRIPT);
+ }
+ my $error = errorAdaption($?);
+ handleError($error, "Ghostscript");
+ }
+ elsif ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ my $sGSExe = "gswin32c.exe";
+ # my $sGSPath = "C:/gs/gs8.64/bin";
+ my $sGSPath = getFastPath("gs.path");
+ if (! $sGSPath)
+ {
+ $sGSPath = searchForFileInPath($sGSExe, $ENV{PATH});
+
+ if ( ! -e "$sGSPath/$sGSExe")
+ {
+ $nGlobalErrors ++;
+ print "ERROR: search for $sGSPath/$sGSExe failed.\n";
+ print "Please install ghostscript from www.adobe.com to and make it available in \$PATH variable \n";
+ }
+ else
+ {
+ insertPath("gs.path", $sGSPath);
+ insertPath("gs.exe", $sGSExe);
+ }
+ }
+ if ( -e "$sGSPath/$sGSExe" )
+ {
+ print "Found Ghostscript: '$sGSPath'\n" if ($verbose);
+ }
+ }
+ else
+ {
+ print "ERROR: Check for Ghostscript failed, due to unsupported '$OSNAME' environment.\n";
+ $nGlobalErrors ++;
+ }
+}
+
+
+sub checkForPSDriver()
+{
+ # we don't need to check for unix here, due to the fact, unix is per default be able to print in postscript
+ if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ print "Check for postscript driver.\n" if ($verbose);
+ my $sWindowsRoot = $ENV{windir};
+ if (! $sWindowsRoot)
+ {
+ $sWindowsRoot = $ENV{WINDIR};
+ }
+ my $sCrossOfficeDriver = "${sWindowsRoot}/system32/crossoffice.ppd";
+ if ( ! -e "$sCrossOfficeDriver")
+ {
+ print "ERROR: Don't found Postscript driver $sCrossOfficeDriver file\n";
+ $nGlobalErrors ++;
+ print "Take a look on: http://so-gfxcmp.germany.sun.com/docs/further/convwatch/convwatch.html.\n";
+ }
+ }
+}
+
+sub checkForImageMagick()
+{
+ print "Search for Imagemagick\n" if ($verbose);
+ if ($OSNAME eq "linux" ||
+ $OSNAME eq "solaris")
+ {
+ # search for imagemagick
+ local *IMAGEMAGICK;
+ if (open(IMAGEMAGICK, "which convert 2>&1 |"))
+ {
+ my $line;
+ while ($line = <IMAGEMAGICK>)
+ {
+ chomp($line);
+ print "- $line\n" if ($verbose);
+ }
+ close(IMAGEMAGICK);
+ }
+ my $error = errorAdaption($?);
+ handleError($error, "Imagemagick");
+ }
+ elsif ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ my $sImageMagickExe = "convert.exe";
+ # my $sImageMagickPath = "C:/gs/gs8.64/bin";
+ my $sImageMagickPath = getFastPath("imagemagick.path");
+ if (! $sImageMagickPath)
+ {
+ $sImageMagickPath = searchForFileInPath($sImageMagickExe, $ENV{PATH});
+ if ($sImageMagickPath)
+ {
+ if ( ! -e "$sImageMagickPath/$sImageMagickExe")
+ {
+ $nGlobalErrors ++;
+ print "ERROR: search for $sImageMagickPath/$sImageMagickExe failed.\n";
+ print "Please install ImageMagick from www.imagemagick.org to and make it available in \$PATH variable \n";
+ }
+ else
+ {
+ insertPath("imagemagick.path", $sImageMagickPath);
+ # insertPath("gs.exe", $sImageMagickExe);
+ }
+ }
+ else
+ {
+ # next try, search image magick in $PROGRAMFILES
+ my $sPrograms = unixpath($ENV{PROGRAMFILES});
+
+ if (! $sPrograms)
+ {
+ print "There exist no \$PROGRAMFILES path, wrong Windows version?\n";
+ $nGlobalErrors++;
+ }
+ else
+ {
+ local *DIR;
+ if (opendir (DIR, $sPrograms)) # open program directory
+ {
+ my $myfile;
+ while ($myfile = readdir(DIR)) # get a filename
+ {
+ if ($myfile =~ /ImageMagick/)
+ {
+ $sImageMagickPath = $sPrograms . "/" . $myfile;
+ last;
+ }
+ }
+ closedir(DIR);
+ }
+ if (! -e $sImageMagickPath)
+ {
+ print "ImageMagick not found.\n";
+ $nGlobalErrors ++;
+ }
+ else
+ {
+ insertPath("imagemagick.path", $sImageMagickPath);
+ }
+ }
+ }
+
+ }
+ if ( -e "$sImageMagickPath/$sImageMagickExe" )
+ {
+ print "Found ImageMagick: '$sImageMagickPath'\n" if ($verbose);
+ }
+ }
+ else
+ {
+ print "ERROR: not supported environment\n";
+ }
+}
+
+sub checkForJava6()
+{
+ print "Search for Java6\n" if ($verbose);
+ my $javaexe = "java";
+ if ( $ENV{JAVA6} )
+ {
+ $javaexe = $ENV{JAVA6};
+ }
+
+ if ($OSNAME eq "linux" || $OSNAME eq "cygwin")
+ {
+ # search for imagemagick
+ local *JAVA;
+ if (open(JAVA, "$javaexe -version 2>&1 |"))
+ {
+ my $line;
+ while ($line = <JAVA>)
+ {
+ chomp($line);
+ print "- $line\n" if ($verbose);
+ if ( $line =~ /java version "(.*)"/ )
+ {
+ my $javaversion = $1;
+ my @version = split('\.', $javaversion);
+ print "Found Java version: $version[1] the complete version: $javaversion\n" if ($verbose);
+ if ( $version[1] < 6)
+ {
+ print "Wrong Java version, at least Java version 6 is need but found $javaversion.\n";
+ $nGlobalErrors++;
+ print "It is possible to overwrite the java exe with environment variable JAVA6='path'.\n";
+ }
+ else
+ {
+ insertPath("java.exe", $javaexe);
+ }
+ last;
+ }
+ }
+ close(JAVA);
+ }
+ my $error = errorAdaption($?);
+ handleError($error, "Java");
+ }
+ elsif ($OSNAME eq "MSWin32")
+ {
+ my $javaexe = "java";
+ if ( $ENV{JAVA6} )
+ {
+ $javaexe = $ENV{JAVA6};
+ }
+
+ if (! -e $javaexe)
+ {
+ print "Java not found.\n";
+ $nGlobalErrors ++;
+ }
+ else
+ {
+ print "Found Java: '$javaexe'\n" if ($verbose);
+ insertPath("java.exe", $javaexe);
+ }
+ }
+ else
+ {
+ print "ERROR: Java not found.\n";
+ }
+}
+
+# different checks
+print "Environment '$OSNAME'\n" if ($verbose);
+
+if ($printerdriver)
+{
+ checkForPSDriver();
+}
+if ($ghostscript)
+{
+ checkForGhostscript();
+}
+if ($imagemagick)
+{
+ checkForImageMagick();
+}
+if ($java6)
+{
+ checkForJava6();
+}
+
+# return with found errors
+exit($nGlobalErrors);
+
+# ------------------------------------------------------------------------------
+sub print_usage(*)
+{
+ local *HANDLE = $_[0];
+ my $tool_name = basename($0);
+
+ print(HANDLE <<END_OF_USAGE);
+
+Usage: $tool_name [OPTIONS]
+
+ -ghostscript Try to find ghostscript in your environment
+ -imagemagick Try to find imagemagick
+ -java6 Checks for java 1.6.x
+ -printerdriver Try to find printer driver, windows only
+ -verbose be verbose
+
+ -h, --help Print this help, then exit
+ -v, --version Print version number, then exit
+
+END_OF_USAGE
+;
+}
diff --git a/testgraphical/prj/build.lst b/testgraphical/prj/build.lst
new file mode 100755
index 000000000000..45fb77fd81ec
--- /dev/null
+++ b/testgraphical/prj/build.lst
@@ -0,0 +1,7 @@
+gfxcmp testgraphical : instsetoo_native NULL
+gfxcmp testgraphical usr1 - all gfxcmp_mkout NULL
+#gfxcmp testgraphical\prechecks nmake - all gfxcmp_pre NULL
+gfxcmp testgraphical\ui\java\ConvwatchGUIProject nmake - all gfxcmp_java_ui NULL
+gfxcmp testgraphical\ui\java nmake - all gfxcmp_java gfxcmp_java_ui NULL
+# gfxcmp testgraphical\source nmake - all gfxcmp_src gfxcmp_java NULL
+gfxcmp testgraphical\qa\graphical nmake - all gfxcmp_qa gfxcmp_java NULL
diff --git a/testgraphical/prj/d.lst b/testgraphical/prj/d.lst
new file mode 100755
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/testgraphical/prj/d.lst
diff --git a/testgraphical/qa/graphical/Test.java b/testgraphical/qa/graphical/Test.java
new file mode 100644
index 000000000000..8c633dede44c
--- /dev/null
+++ b/testgraphical/qa/graphical/Test.java
@@ -0,0 +1,113 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package org.openoffice.testgraphical.qa.graphical;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+import helper.ProcessHandler;
+import graphical.FileHelper;
+import java.io.File;
+
+public final class Test {
+ @org.junit.Before
+ public void setUp() throws Exception
+ {
+ connection.setUp();
+ }
+
+ @org.junit.After
+ public void tearDown() throws Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test
+ public void test()
+ {
+ boolean good = true;
+
+ final String sPerlEXE = System.getenv("PERL");
+ // System.out.println("PERL:=" + sPerlEXE);
+
+ final String sPRJ = System.getenv("PRJ");
+ // System.out.println("PRJ:=" + sPRJ);
+
+ String sShow = "";
+ if (System.getProperty("SHOW") != null)
+ {
+ sShow = "-show";
+ }
+
+ final String sComparePath = FileHelper.appendPath(sPRJ, "source");
+ final String sCompareName = FileHelper.appendPath(sComparePath, "compare.pl");
+
+ File aCompareFile = new File(sCompareName);
+ if (!aCompareFile.exists())
+ {
+ System.out.println("Path to compare.pl is wrong: '" + aCompareFile.getAbsolutePath() + "'");
+ assertTrue(false);
+ }
+
+ final String sConnectionString = connection.getDescription();
+
+ String[] sCommandArray =
+ {
+ sPerlEXE,
+ aCompareFile.getAbsolutePath(),
+ "-creatortype", "pdf",
+
+// If you make changes here, do it also in ../../source/makefile.mk in selftest: target!
+
+ "-pool", "singletest",
+ "-document", "eis-test.odt",
+ // "-pool", "demo",
+ // "-document", "CurrentTime.ods",
+ "-connectionstring", sConnectionString,
+ // "-verbose",
+ sShow
+ };
+
+ ProcessHandler aHandler = new ProcessHandler(sCommandArray);
+ boolean bBackValue = aHandler.executeSynchronously();
+ int nExitCode = aHandler.getExitCode();
+
+ // String sBack = aHandler.getOutputText();
+ if (nExitCode != 0)
+ {
+ good = false;
+ }
+
+ assertTrue(good);
+
+ // Runner.run(
+ // "-sce", "sw.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ // "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/cppu/test/FreeReference/makefile.mk b/testgraphical/qa/graphical/makefile.mk
index 3d9a4069718b..7cb43a6585db 100644
--- a/cppu/test/FreeReference/makefile.mk
+++ b/testgraphical/qa/graphical/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,34 +21,37 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := FreeReference.test
-
-
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
-
-
-.INCLUDE : settings.mk
+#***********************************************************************/
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+ @echo "OOO_SUBSEQUENT_TESTS not given, do nothing."
+.ELSE
-.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
-ObjectFactory_LIB := -lObjectFactory.$(COMID)
+PRJ = ../..
+PRJNAME = testgraphical
+TARGET = qa_graphical
-.ELSE
-ObjectFactory_LIB := $(LIBPRE) iObjectFactory.$(COMID).lib
+.IF "$(OOO_JUNIT_JAR)" != ""
+.IF "$(SHOW)" != ""
+# You will need java6 for this!
+JAVAIFLAGS:=$(JAVAIFLAGS) -DSHOW=1
.ENDIF
+PACKAGE = org/openoffice/testgraphical/qa/graphical
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-APP1TARGET := $(TARGET)
-APP1OBJS := $(OBJ)$/FreeReference.test.obj
-APP1STDLIBS := $(ObjectFactory_LIB) $(CPPULIB) $(SALLIB)
+ALLTAR : javatest
+.END
-.INCLUDE : target.mk
+clean:
diff --git a/testgraphical/references/unxlngi/demo/CurrentTime.ods.pdf b/testgraphical/references/unxlngi/demo/CurrentTime.ods.pdf
new file mode 100644
index 000000000000..a753c03708c7
--- /dev/null
+++ b/testgraphical/references/unxlngi/demo/CurrentTime.ods.pdf
Binary files differ
diff --git a/testgraphical/references/unxlngi/demo/CurrentTime.ods.ps b/testgraphical/references/unxlngi/demo/CurrentTime.ods.ps
new file mode 100644
index 000000000000..aa7455255e2c
--- /dev/null
+++ b/testgraphical/references/unxlngi/demo/CurrentTime.ods.ps
@@ -0,0 +1,576 @@
+%!PS-Adobe-3.0
+%%BoundingBox: (atend)
+%%Creator: (Oracle Open Office 3.2)
+%%For: (ll93751)
+%%CreationDate: (Fri May 12 00:00:14 2000)
+%%Title: (CurrentTime)
+%%LanguageLevel: 2
+%%DocumentData: Clean7Bit
+%%Pages: (atend)
+%%Orientation: (atend)
+%%PageOrder: Ascend
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset PSPrint-Prolog 1.0 0
+/ISO1252Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+/zero /one /two /three /four /five /six /seven
+/eight /nine /colon /semicolon /less /equal /greater /question
+/at /A /B /C /D /E /F /G
+/H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W
+/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+/grave /a /b /c /d /e /f /g
+/h /i /j /k /l /m /n /o
+/p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /unused
+/Euro /unused /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
+/circumflex /perthousand /Scaron /guilsinglleft /OE /unused /Zcaron /unused
+/unused /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
+/tilde /trademark /scaron /guilsinglright /oe /unused /zcaron /Ydieresis
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
+/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
+/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
+/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
+/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
+/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
+/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
+/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
+/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+
+/psp_definefont { exch dup findfont dup length dict begin { 1 index /FID ne
+{ def } { pop pop } ifelse } forall /Encoding 3 -1 roll def
+currentdict end exch pop definefont pop } def
+
+/pathdict dup 8 dict def load begin
+/rcmd { { currentfile 1 string readstring pop 0 get dup 32 gt { exit }
+{ pop } ifelse } loop dup 126 eq { pop exit } if 65 sub dup 16#3 and 1
+add exch dup 16#C and -2 bitshift 16#3 and 1 add exch 16#10 and 16#10
+eq 3 1 roll exch } def
+/rhex { dup 1 sub exch currentfile exch string readhexstring pop dup 0
+get dup 16#80 and 16#80 eq dup 3 1 roll { 16#7f and } if 2 index 0 3
+-1 roll put 3 1 roll 0 0 1 5 -1 roll { 2 index exch get add 256 mul }
+for 256 div exch pop exch { neg } if } def
+/xcmd { rcmd exch rhex exch rhex exch 5 -1 roll add exch 4 -1 roll add
+1 index 1 index 5 -1 roll { moveto } { lineto } ifelse } def end
+/readpath { 0 0 pathdict begin { xcmd } loop end pop pop } def
+
+systemdict /languagelevel known not {
+/xshow { exch dup length 0 1 3 -1 roll 1 sub { dup 3 index exch get
+exch 2 index exch get 1 string dup 0 4 -1 roll put currentpoint 3 -1
+roll show moveto 0 rmoveto } for pop pop } def
+/rectangle { 4 -2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0
+rlineto closepath } def
+/rectfill { rectangle fill } def
+/rectstroke { rectangle stroke } def } if
+/bshow { currentlinewidth 3 1 roll currentpoint 3 index show moveto
+setlinewidth false charpath stroke setlinewidth } def
+/bxshow { currentlinewidth 4 1 roll setlinewidth exch dup length 1 sub
+0 1 3 -1 roll { 1 string 2 index 2 index get 1 index exch 0 exch put dup
+currentpoint 3 -1 roll show moveto currentpoint 3 -1 roll false charpath
+stroke moveto 2 index exch get 0 rmoveto } for pop pop setlinewidth } def
+
+/psp_lzwfilter { currentfile /ASCII85Decode filter /LZWDecode filter } def
+/psp_ascii85filter { currentfile /ASCII85Decode filter } def
+/psp_lzwstring { psp_lzwfilter 1024 string readstring } def
+/psp_ascii85string { psp_ascii85filter 1024 string readstring } def
+/psp_imagedict {
+/psp_bitspercomponent { 3 eq { 1 }{ 8 } ifelse } def
+/psp_decodearray { [ [0 1 0 1 0 1] [0 255] [0 1] [0 255] ] exch get }
+def 7 dict dup
+/ImageType 1 put dup
+/Width 7 -1 roll put dup
+/Height 5 index put dup
+/BitsPerComponent 4 index psp_bitspercomponent put dup
+/Decode 5 -1 roll psp_decodearray put dup
+/ImageMatrix [1 0 0 1 0 0] dup 5 8 -1 roll put put dup
+/DataSource 4 -1 roll 1 eq { psp_lzwfilter } { psp_ascii85filter } ifelse put
+} def
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%
+%%BeginResource: font ArialMTFID10HGSet1
+%!PS-AdobeFont-1.0-2.53740
+% Creator: SunTypeTools-TT 1.0 gelf
+% Original font name: ArialMT
+30 dict begin
+/PaintType 0 def
+/FontType 3 def
+/StrokeWidth 0 def
+/FontName (ArialMTFID10HGSet1) cvn def
+/XUID [103 0 0 16#44E1DF76 13 16#50429D91 16#0D1ECFCF] def
+/FontMatrix [.001 0 0 .001 0 0] def
+/FontBBox [-664 -324 2028 1037] def
+/Encoding 256 array def
+ 0 1 255 {Encoding exch /.notdef put} for
+ Encoding 0 /glyph0 put
+ Encoding 32 /glyph1 put
+ Encoding 48 /glyph2 put
+ Encoding 49 /glyph3 put
+ Encoding 51 /glyph4 put
+ Encoding 58 /glyph5 put
+ Encoding 80 /glyph6 put
+ Encoding 83 /glyph7 put
+ Encoding 97 /glyph8 put
+ Encoding 101 /glyph9 put
+ Encoding 103 /glyph10 put
+ Encoding 104 /glyph11 put
+ Encoding 116 /glyph12 put
+/CharProcs 14 dict def
+ CharProcs begin
+ /.notdef {} def
+ /glyph0 {
+ 750 0 125 0 625 625 setcachedevice
+ 125 0 moveto
+ 125 625 lineto
+ 625 625 lineto
+ 625 0 lineto
+ 125 0 lineto
+ closepath
+ 140 15 moveto
+ 609 15 lineto
+ 609 609 lineto
+ 140 609 lineto
+ 140 15 lineto
+ closepath
+ fill
+ } bind def
+ /glyph1 {
+ 277 0 0 0 0 0 setcachedevice
+ } bind def
+ /glyph2 {
+ 556 0 41 -12 508 718 setcachedevice
+ 41 353 moveto
+ 41 437 50 505 67 557 curveto
+ 84 608 110 648 145 676 curveto
+ 179 704 222 718 274 718 curveto
+ 313 718 347 711 375 695 curveto
+ 404 680 428 658 447 628 curveto
+ 466 600 481 564 492 522 curveto
+ 502 480 508 424 508 353 curveto
+ 508 269 500 201 482 149 curveto
+ 465 98 439 58 405 30 curveto
+ 371 2 327 -12 274 -12 curveto
+ 206 -12 151 12 112 62 curveto
+ 65 121 41 218 41 353 curveto
+ closepath
+ 131 353 moveto
+ 131 235 145 157 173 118 curveto
+ 200 80 234 60 274 60 curveto
+ 315 60 349 79 376 118 curveto
+ 404 157 417 235 417 353 curveto
+ 417 470 404 549 376 587 curveto
+ 349 626 315 645 273 645 curveto
+ 233 645 201 629 177 594 curveto
+ 147 551 131 470 131 353 curveto
+ closepath
+ fill
+ } bind def
+ /glyph3 {
+ 556 0 108 0 372 718 setcachedevice
+ 372 0 moveto
+ 284 0 lineto
+ 284 560 lineto
+ 263 540 236 520 201 499 curveto
+ 167 479 136 464 108 454 curveto
+ 108 539 lineto
+ 158 562 201 590 237 623 curveto
+ 274 655 300 687 315 718 curveto
+ 372 718 lineto
+ 372 0 lineto
+ closepath
+ fill
+ } bind def
+ /glyph4 {
+ 556 0 41 -12 510 718 setcachedevice
+ 41 188 moveto
+ 129 200 lineto
+ 140 151 157 115 181 93 curveto
+ 205 71 235 60 270 60 curveto
+ 311 60 346 74 375 103 curveto
+ 403 131 417 166 417 209 curveto
+ 417 250 404 283 377 309 curveto
+ 352 335 318 348 277 348 curveto
+ 261 348 240 345 215 338 curveto
+ 225 416 lineto
+ 230 415 235 415 239 415 curveto
+ 276 415 310 424 340 444 curveto
+ 370 463 385 494 385 534 curveto
+ 385 566 374 593 352 614 curveto
+ 331 635 302 646 268 646 curveto
+ 234 646 205 636 182 614 curveto
+ 160 593 145 561 138 517 curveto
+ 50 533 lineto
+ 61 592 85 637 124 670 curveto
+ 162 702 209 718 266 718 curveto
+ 305 718 341 710 374 693 curveto
+ 406 677 432 654 449 625 curveto
+ 466 596 475 565 475 532 curveto
+ 475 501 467 474 450 448 curveto
+ 434 423 409 402 376 387 curveto
+ 419 378 452 357 475 327 curveto
+ 499 296 510 257 510 211 curveto
+ 510 149 488 96 442 52 curveto
+ 396 9 339 -12 269 -12 curveto
+ 207 -12 154 5 113 43 curveto
+ 71 81 48 129 41 188 curveto
+ closepath
+ fill
+ } bind def
+ /glyph5 {
+ 277 0 90 0 190 518 setcachedevice
+ 90 418 moveto
+ 90 518 lineto
+ 190 518 lineto
+ 190 418 lineto
+ 90 418 lineto
+ closepath
+ 90 0 moveto
+ 90 100 lineto
+ 190 100 lineto
+ 190 0 lineto
+ 90 0 lineto
+ closepath
+ fill
+ } bind def
+ /glyph6 {
+ 666 0 77 0 623 715 setcachedevice
+ 77 0 moveto
+ 77 715 lineto
+ 347 715 lineto
+ 394 715 431 713 456 708 curveto
+ 491 703 520 692 544 675 curveto
+ 568 659 587 636 602 606 curveto
+ 616 577 623 544 623 508 curveto
+ 623 448 604 396 565 354 curveto
+ 526 312 457 291 355 291 curveto
+ 171 291 lineto
+ 171 0 lineto
+ 77 0 lineto
+ closepath
+ 171 375 moveto
+ 356 375 lineto
+ 417 375 461 386 487 409 curveto
+ 513 432 525 464 525 505 curveto
+ 525 535 518 561 503 583 curveto
+ 488 604 468 618 443 625 curveto
+ 427 629 398 631 354 631 curveto
+ 171 631 lineto
+ 171 375 lineto
+ closepath
+ fill
+ } bind def
+ /glyph7 {
+ 666 0 44 -12 614 728 setcachedevice
+ 44 229 moveto
+ 134 237 lineto
+ 138 202 148 172 164 149 curveto
+ 179 126 203 108 235 94 curveto
+ 268 80 305 72 345 72 curveto
+ 381 72 413 78 441 88 curveto
+ 469 99 489 114 503 133 curveto
+ 516 151 523 172 523 194 curveto
+ 523 216 517 236 503 253 curveto
+ 491 270 469 284 439 295 curveto
+ 420 302 377 314 312 330 curveto
+ 246 346 200 360 173 375 curveto
+ 140 393 114 415 97 441 curveto
+ 81 468 72 498 72 530 curveto
+ 72 566 82 600 103 632 curveto
+ 123 663 153 687 192 703 curveto
+ 232 719 275 728 324 728 curveto
+ 377 728 424 719 464 702 curveto
+ 505 685 536 660 558 626 curveto
+ 580 594 591 556 593 514 curveto
+ 502 507 lineto
+ 498 552 481 586 453 609 curveto
+ 425 632 383 644 328 644 curveto
+ 270 644 229 634 203 613 curveto
+ 177 592 163 566 163 537 curveto
+ 163 511 172 490 191 473 curveto
+ 209 457 257 440 334 422 curveto
+ 411 405 463 390 492 376 curveto
+ 534 357 564 333 584 304 curveto
+ 604 274 614 240 614 202 curveto
+ 614 164 604 128 582 94 curveto
+ 560 61 529 35 488 16 curveto
+ 447 -2 401 -12 350 -12 curveto
+ 285 -12 231 -2 187 16 curveto
+ 144 35 109 63 84 101 curveto
+ 59 139 46 182 44 229 curveto
+ closepath
+ fill
+ } bind def
+ /glyph8 {
+ 556 0 36 -11 513 530 setcachedevice
+ 404 63 moveto
+ 372 36 340 17 310 5 curveto
+ 280 -5 248 -11 213 -11 curveto
+ 156 -11 112 2 82 30 curveto
+ 51 58 36 93 36 136 curveto
+ 36 162 41 185 53 206 curveto
+ 64 227 80 244 99 256 curveto
+ 117 269 138 279 162 285 curveto
+ 179 290 205 294 240 298 curveto
+ 311 307 363 317 396 329 curveto
+ 397 341 397 348 397 352 curveto
+ 397 387 389 413 372 427 curveto
+ 350 447 316 457 272 457 curveto
+ 231 457 201 450 181 436 curveto
+ 161 421 146 395 137 358 curveto
+ 51 370 lineto
+ 59 407 71 437 89 459 curveto
+ 107 482 133 500 167 512 curveto
+ 201 524 240 530 285 530 curveto
+ 329 530 365 525 393 514 curveto
+ 420 504 440 491 454 475 curveto
+ 467 459 476 439 481 415 curveto
+ 484 400 485 374 485 334 curveto
+ 485 217 lineto
+ 485 135 487 84 491 62 curveto
+ 495 41 502 20 513 0 curveto
+ 421 0 lineto
+ 413 18 407 39 404 63 curveto
+ closepath
+ 396 260 moveto
+ 365 247 317 236 253 227 curveto
+ 217 222 191 216 176 209 curveto
+ 162 203 150 193 142 181 curveto
+ 134 168 129 154 129 139 curveto
+ 129 116 138 96 156 80 curveto
+ 174 65 200 57 234 57 curveto
+ 268 57 298 64 324 79 curveto
+ 351 94 370 114 382 140 curveto
+ 392 160 396 189 396 228 curveto
+ 396 260 lineto
+ closepath
+ fill
+ } bind def
+ /glyph9 {
+ 556 0 36 -11 514 530 setcachedevice
+ 420 166 moveto
+ 511 155 lineto
+ 497 103 471 62 432 32 curveto
+ 393 3 344 -11 283 -11 curveto
+ 208 -11 147 11 103 58 curveto
+ 59 104 36 170 36 254 curveto
+ 36 342 59 409 104 458 curveto
+ 148 506 207 530 278 530 curveto
+ 348 530 404 506 448 459 curveto
+ 492 412 514 346 514 260 curveto
+ 514 255 514 247 514 236 curveto
+ 127 236 lineto
+ 130 180 146 136 175 105 curveto
+ 204 76 240 60 284 60 curveto
+ 316 60 343 68 366 85 curveto
+ 389 103 407 129 420 166 curveto
+ closepath
+ 132 309 moveto
+ 421 309 lineto
+ 418 352 407 385 388 407 curveto
+ 360 440 324 458 279 458 curveto
+ 239 458 206 444 178 417 curveto
+ 150 390 135 354 132 309 curveto
+ closepath
+ fill
+ } bind def
+ /glyph10 {
+ 556 0 32 -210 489 530 setcachedevice
+ 49 -42 moveto
+ 135 -55 lineto
+ 138 -81 148 -101 165 -113 curveto
+ 187 -129 216 -137 254 -137 curveto
+ 294 -137 326 -129 348 -112 curveto
+ 370 -96 385 -74 393 -44 curveto
+ 397 -26 400 10 399 67 curveto
+ 361 22 313 0 256 0 curveto
+ 185 0 130 25 90 77 curveto
+ 52 128 32 190 32 262 curveto
+ 32 311 41 357 59 399 curveto
+ 77 440 103 473 137 496 curveto
+ 170 519 210 530 256 530 curveto
+ 317 530 368 505 408 456 curveto
+ 408 518 lineto
+ 489 518 lineto
+ 489 70 lineto
+ 489 -10 481 -67 464 -101 curveto
+ 448 -134 422 -161 386 -180 curveto
+ 351 -200 307 -210 254 -210 curveto
+ 193 -210 143 -196 104 -168 curveto
+ 67 -140 48 -99 49 -42 curveto
+ closepath
+ 122 268 moveto
+ 122 200 136 151 163 119 curveto
+ 189 88 224 72 264 72 curveto
+ 305 72 338 88 366 119 curveto
+ 393 150 407 199 407 265 curveto
+ 407 329 393 376 365 409 curveto
+ 337 441 303 457 263 457 curveto
+ 224 457 191 441 163 410 curveto
+ 136 378 122 331 122 268 curveto
+ closepath
+ fill
+ } bind def
+ /glyph11 {
+ 556 0 65 0 488 715 setcachedevice
+ 65 0 moveto
+ 65 715 lineto
+ 153 715 lineto
+ 153 458 lineto
+ 194 506 246 530 309 530 curveto
+ 347 530 380 522 409 507 curveto
+ 437 492 458 471 470 444 curveto
+ 482 418 488 379 488 328 curveto
+ 488 0 lineto
+ 400 0 lineto
+ 400 328 lineto
+ 400 372 391 404 372 424 curveto
+ 353 444 326 454 291 454 curveto
+ 265 454 240 448 217 434 curveto
+ 194 421 178 402 168 379 curveto
+ 159 356 153 324 153 283 curveto
+ 153 0 lineto
+ 65 0 lineto
+ closepath
+ fill
+ } bind def
+ /glyph12 {
+ 277 0 17 -6 270 699 setcachedevice
+ 257 78 moveto
+ 270 0 lineto
+ 246 -3 224 -6 204 -6 curveto
+ 172 -6 147 -1 129 8 curveto
+ 112 18 100 31 92 48 curveto
+ 85 64 82 99 82 151 curveto
+ 82 450 lineto
+ 17 450 lineto
+ 17 518 lineto
+ 82 518 lineto
+ 82 646 lineto
+ 169 699 lineto
+ 169 518 lineto
+ 257 518 lineto
+ 257 450 lineto
+ 169 450 lineto
+ 169 146 lineto
+ 169 122 170 105 174 98 curveto
+ 177 91 182 85 189 81 curveto
+ 196 77 206 75 219 75 curveto
+ 229 75 241 76 257 78 curveto
+ closepath
+ fill
+ } bind def
+ end
+/BuildGlyph {
+ exch /CharProcs get exch
+ 2 copy known not
+ {pop /.notdef} if
+ get exec
+} bind def
+/BuildChar {
+ 1 index /Encoding get exch get
+ 1 index /BuildGlyph get exec
+} bind def
+currentdict end
+(ArialMTFID10HGSet1) cvn exch definefont pop
+%%EndResource
+%%DocumentSuppliedResources: font ArialMTFID10HGSet1
+[{
+%%BeginFeature: *PageSize A4
+<</PageSize [595 842] /ImagingBBox null>> setpagedevice
+%%EndFeature
+} stopped cleartomark
+%%EndSetup
+%%Page: 1 1
+%%PageOrientation: Portrait
+%%PageBoundingBox: 18 18 577 824
+%%BeginPageSetup
+%
+%%EndPageSetup
+gsave
+[0.24 0 0 -0.24 18 824] concat
+gsave
+grestore
+gsave
+readpath
+V00EC00ECA003CE07D900A00BC~
+closepath clip newpath
+grestore
+gsave
+readpath
+V00EC00ECA003CE07D900A00BC~
+closepath clip newpath
+1174 280 moveto
+0 0 0 setrgbcolor
+(ArialMTFID10HGSet1) cvn findfont 42 -42 matrix scale makefont setfont
+<536865657431>
+[28 23 23 23 12 0]
+xshow
+grestore
+gsave
+readpath
+V00EC00ECA003CE07D900A00BC~
+closepath clip newpath
+grestore
+gsave
+readpath
+V00EC0C8CA003CE07D900A00BC~
+closepath clip newpath
+grestore
+gsave
+readpath
+V00EC0C8CA003CE07D900A00BC~
+closepath clip newpath
+1174 3256 moveto
+0 0 0 setrgbcolor
+(ArialMTFID10HGSet1) cvn findfont 42 -42 matrix scale makefont setfont
+<5061676520>
+[28 23 23 23 0]
+xshow
+1283 3256 moveto
+<31>
+show
+grestore
+gsave
+readpath
+V00EC0C8CA003CE07D900A00BC~
+closepath clip newpath
+grestore
+gsave
+568 782 moveto
+0 0 0 setrgbcolor
+(ArialMTFID10HGSet1) cvn findfont 367 -367 matrix scale makefont setfont
+<30>
+show
+781 782 moveto
+<3A>
+show
+1050 782 moveto
+<3030>
+[204 0]
+xshow
+1466 782 moveto
+<3A>
+show
+1735 782 moveto
+<3133>
+[204 0]
+xshow
+grestore grestore
+showpage
+%%PageTrailer
+
+%%Trailer
+%%BoundingBox: 0 0 595 842
+%%Orientation: Portrait
+%%Pages: 1
+%%EOF
diff --git a/testgraphical/references/unxlngi/singletest/eis-test.odt.pdf b/testgraphical/references/unxlngi/singletest/eis-test.odt.pdf
new file mode 100644
index 000000000000..cf48e3d3df14
--- /dev/null
+++ b/testgraphical/references/unxlngi/singletest/eis-test.odt.pdf
Binary files differ
diff --git a/testgraphical/references/unxlngi/singletest/eis-test.odt.ps b/testgraphical/references/unxlngi/singletest/eis-test.odt.ps
new file mode 100644
index 000000000000..456905de90b2
--- /dev/null
+++ b/testgraphical/references/unxlngi/singletest/eis-test.odt.ps
@@ -0,0 +1,565 @@
+%!PS-Adobe-3.0
+%%BoundingBox: (atend)
+%%Creator: (StarOffice 9)
+%%For: (ll93751)
+%%CreationDate: (Fri Mar 5 11:50:06 2010)
+%%Title: (eis-test)
+%%LanguageLevel: 2
+%%DocumentData: Clean7Bit
+%%Pages: (atend)
+%%Orientation: (atend)
+%%PageOrder: Ascend
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset PSPrint-Prolog 1.0 0
+/ISO1252Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+/zero /one /two /three /four /five /six /seven
+/eight /nine /colon /semicolon /less /equal /greater /question
+/at /A /B /C /D /E /F /G
+/H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W
+/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+/grave /a /b /c /d /e /f /g
+/h /i /j /k /l /m /n /o
+/p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /unused
+/Euro /unused /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
+/circumflex /perthousand /Scaron /guilsinglleft /OE /unused /Zcaron /unused
+/unused /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
+/tilde /trademark /scaron /guilsinglright /oe /unused /zcaron /Ydieresis
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
+/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
+/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
+/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
+/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
+/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
+/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
+/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
+/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+
+/psp_definefont { exch dup findfont dup length dict begin { 1 index /FID ne
+{ def } { pop pop } ifelse } forall /Encoding 3 -1 roll def
+currentdict end exch pop definefont pop } def
+
+/pathdict dup 8 dict def load begin
+/rcmd { { currentfile 1 string readstring pop 0 get dup 32 gt { exit }
+{ pop } ifelse } loop dup 126 eq { pop exit } if 65 sub dup 16#3 and 1
+add exch dup 16#C and -2 bitshift 16#3 and 1 add exch 16#10 and 16#10
+eq 3 1 roll exch } def
+/rhex { dup 1 sub exch currentfile exch string readhexstring pop dup 0
+get dup 16#80 and 16#80 eq dup 3 1 roll { 16#7f and } if 2 index 0 3
+-1 roll put 3 1 roll 0 0 1 5 -1 roll { 2 index exch get add 256 mul }
+for 256 div exch pop exch { neg } if } def
+/xcmd { rcmd exch rhex exch rhex exch 5 -1 roll add exch 4 -1 roll add
+1 index 1 index 5 -1 roll { moveto } { lineto } ifelse } def end
+/readpath { 0 0 pathdict begin { xcmd } loop end pop pop } def
+
+systemdict /languagelevel known not {
+/xshow { exch dup length 0 1 3 -1 roll 1 sub { dup 3 index exch get
+exch 2 index exch get 1 string dup 0 4 -1 roll put currentpoint 3 -1
+roll show moveto 0 rmoveto } for pop pop } def
+/rectangle { 4 -2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0
+rlineto closepath } def
+/rectfill { rectangle fill } def
+/rectstroke { rectangle stroke } def } if
+/bshow { currentlinewidth 3 1 roll currentpoint 3 index show moveto
+setlinewidth false charpath stroke setlinewidth } def
+/bxshow { currentlinewidth 4 1 roll setlinewidth exch dup length 1 sub
+0 1 3 -1 roll { 1 string 2 index 2 index get 1 index exch 0 exch put dup
+currentpoint 3 -1 roll show moveto currentpoint 3 -1 roll false charpath
+stroke moveto 2 index exch get 0 rmoveto } for pop pop setlinewidth } def
+
+/psp_lzwfilter { currentfile /ASCII85Decode filter /LZWDecode filter } def
+/psp_ascii85filter { currentfile /ASCII85Decode filter } def
+/psp_lzwstring { psp_lzwfilter 1024 string readstring } def
+/psp_ascii85string { psp_ascii85filter 1024 string readstring } def
+/psp_imagedict {
+/psp_bitspercomponent { 3 eq { 1 }{ 8 } ifelse } def
+/psp_decodearray { [ [0 1 0 1 0 1] [0 255] [0 1] [0 255] ] exch get }
+def 7 dict dup
+/ImageType 1 put dup
+/Width 7 -1 roll put dup
+/Height 5 index put dup
+/BitsPerComponent 4 index psp_bitspercomponent put dup
+/Decode 5 -1 roll psp_decodearray put dup
+/ImageMatrix [1 0 0 1 0 0] dup 5 8 -1 roll put put dup
+/DataSource 4 -1 roll 1 eq { psp_lzwfilter } { psp_ascii85filter } ifelse put
+} def
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%
+%%BeginResource: font TimesNewRomanPSMTFID26HGSet1
+%!PS-AdobeFont-1.0-2.53740
+% Creator: SunTypeTools-TT 1.0 gelf
+% Original font name: TimesNewRomanPSMT
+30 dict begin
+/PaintType 0 def
+/FontType 3 def
+/StrokeWidth 0 def
+/FontName (TimesNewRomanPSMTFID26HGSet1) cvn def
+/XUID [103 0 0 16#2F10B8E9 9 16#7048BAB3 16#9CA4D966] def
+/FontMatrix [.001 0 0 .001 0 0] def
+/FontBBox [-568 -306 2028 1006] def
+/Encoding 256 array def
+ 0 1 255 {Encoding exch /.notdef put} for
+ Encoding 0 /glyph0 put
+ Encoding 45 /glyph1 put
+ Encoding 69 /glyph2 put
+ Encoding 73 /glyph3 put
+ Encoding 83 /glyph4 put
+ Encoding 84 /glyph5 put
+ Encoding 101 /glyph6 put
+ Encoding 115 /glyph7 put
+ Encoding 116 /glyph8 put
+/CharProcs 10 dict def
+ CharProcs begin
+ /.notdef {} def
+ /glyph0 {
+ 777 0 125 0 625 625 setcachedevice
+ 125 0 moveto
+ 125 625 lineto
+ 625 625 lineto
+ 625 0 lineto
+ 125 0 lineto
+ closepath
+ 140 15 moveto
+ 609 15 lineto
+ 609 609 lineto
+ 140 609 lineto
+ 140 15 lineto
+ closepath
+ fill
+ } bind def
+ /glyph1 {
+ 333 0 40 187 292 261 setcachedevice
+ 40 261 moveto
+ 292 261 lineto
+ 292 187 lineto
+ 40 187 lineto
+ 40 261 lineto
+ closepath
+ fill
+ } bind def
+ /glyph2 {
+ 610 0 20 0 587 662 setcachedevice
+ 208 625 moveto
+ 208 364 lineto
+ 354 364 lineto
+ 392 364 417 370 430 381 curveto
+ 447 396 456 422 458 460 curveto
+ 476 460 lineto
+ 476 229 lineto
+ 458 229 lineto
+ 454 262 449 282 444 291 curveto
+ 439 303 429 312 416 318 curveto
+ 402 325 382 328 354 328 curveto
+ 208 328 lineto
+ 208 110 lineto
+ 208 81 210 63 212 57 curveto
+ 215 50 220 45 226 41 curveto
+ 232 38 245 36 263 36 curveto
+ 375 36 lineto
+ 413 36 440 38 457 43 curveto
+ 474 49 490 59 506 74 curveto
+ 526 94 547 125 568 166 curveto
+ 587 166 lineto
+ 530 0 lineto
+ 20 0 lineto
+ 20 18 lineto
+ 43 18 lineto
+ 59 18 74 21 88 29 curveto
+ 98 34 105 42 109 52 curveto
+ 113 62 115 84 115 116 curveto
+ 115 546 lineto
+ 115 588 111 614 102 624 curveto
+ 91 637 71 644 43 644 curveto
+ 20 644 lineto
+ 20 662 lineto
+ 530 662 lineto
+ 538 517 lineto
+ 519 517 lineto
+ 512 551 504 575 496 588 curveto
+ 488 602 476 611 459 618 curveto
+ 446 623 423 625 390 625 curveto
+ 208 625 lineto
+ closepath
+ fill
+ } bind def
+ /glyph3 {
+ 333 0 24 0 308 662 setcachedevice
+ 308 18 moveto
+ 308 0 lineto
+ 24 0 lineto
+ 24 18 lineto
+ 48 18 lineto
+ 75 18 95 25 107 41 curveto
+ 115 52 119 77 119 117 curveto
+ 119 544 lineto
+ 119 578 117 600 113 611 curveto
+ 110 619 103 626 93 632 curveto
+ 79 640 64 644 48 644 curveto
+ 24 644 lineto
+ 24 662 lineto
+ 308 662 lineto
+ 308 644 lineto
+ 284 644 lineto
+ 257 644 238 636 225 620 curveto
+ 217 609 213 584 213 544 curveto
+ 213 117 lineto
+ 213 83 215 62 219 50 curveto
+ 223 42 229 36 240 29 curveto
+ 254 22 269 18 284 18 curveto
+ 308 18 lineto
+ closepath
+ fill
+ } bind def
+ /glyph4 {
+ 556 0 62 -15 502 677 setcachedevice
+ 458 677 moveto
+ 458 448 lineto
+ 440 448 lineto
+ 435 492 424 527 409 553 curveto
+ 394 579 372 600 344 615 curveto
+ 316 630 287 638 257 638 curveto
+ 223 638 195 628 173 607 curveto
+ 151 586 140 563 140 536 curveto
+ 140 516 146 498 161 481 curveto
+ 181 457 229 424 305 383 curveto
+ 367 351 409 325 432 307 curveto
+ 454 290 472 269 484 244 curveto
+ 496 220 502 195 502 168 curveto
+ 502 119 483 76 444 39 curveto
+ 405 3 355 -15 293 -15 curveto
+ 274 -15 256 -13 239 -10 curveto
+ 229 -9 208 -2 177 7 curveto
+ 145 17 125 22 116 22 curveto
+ 108 22 102 20 97 15 curveto
+ 93 10 89 0 86 -15 curveto
+ 68 -15 lineto
+ 68 211 lineto
+ 86 211 lineto
+ 95 164 106 129 121 105 curveto
+ 135 82 157 62 187 46 curveto
+ 216 31 248 22 283 22 curveto
+ 324 22 356 33 380 55 curveto
+ 403 76 415 102 415 131 curveto
+ 415 147 411 164 402 180 curveto
+ 393 197 379 212 360 227 curveto
+ 348 236 313 257 256 289 curveto
+ 200 321 159 346 135 365 curveto
+ 111 384 93 404 81 427 curveto
+ 68 450 62 475 62 502 curveto
+ 62 550 80 591 117 625 curveto
+ 153 660 200 677 256 677 curveto
+ 291 677 328 668 368 651 curveto
+ 386 643 399 639 406 639 curveto
+ 415 639 422 641 427 646 curveto
+ 433 651 437 662 440 677 curveto
+ 458 677 lineto
+ closepath
+ fill
+ } bind def
+ /glyph5 {
+ 610 0 30 0 585 662 setcachedevice
+ 578 662 moveto
+ 585 506 lineto
+ 567 506 lineto
+ 563 534 559 553 552 565 curveto
+ 542 584 529 598 512 607 curveto
+ 496 616 474 620 446 620 curveto
+ 353 620 lineto
+ 353 114 lineto
+ 353 74 357 48 366 38 curveto
+ 378 25 397 18 423 18 curveto
+ 446 18 lineto
+ 446 0 lineto
+ 165 0 lineto
+ 165 18 lineto
+ 188 18 lineto
+ 216 18 236 26 248 43 curveto
+ 255 53 259 77 259 114 curveto
+ 259 620 lineto
+ 179 620 lineto
+ 148 620 126 618 113 613 curveto
+ 97 607 82 596 70 578 curveto
+ 58 561 51 537 48 506 curveto
+ 30 506 lineto
+ 38 662 lineto
+ 578 662 lineto
+ closepath
+ fill
+ } bind def
+ /glyph6 {
+ 443 0 37 -13 415 460 setcachedevice
+ 106 278 moveto
+ 106 212 122 160 154 122 curveto
+ 187 84 225 65 269 65 curveto
+ 298 65 324 74 346 90 curveto
+ 367 106 385 133 400 172 curveto
+ 415 163 lineto
+ 409 118 389 78 355 41 curveto
+ 323 4 282 -13 232 -13 curveto
+ 179 -13 133 7 94 49 curveto
+ 56 90 37 146 37 217 curveto
+ 37 294 56 354 96 396 curveto
+ 135 439 184 460 243 460 curveto
+ 293 460 334 444 367 411 curveto
+ 399 378 415 334 415 278 curveto
+ 106 278 lineto
+ closepath
+ 106 307 moveto
+ 313 307 lineto
+ 312 335 308 355 303 367 curveto
+ 295 385 283 400 267 410 curveto
+ 250 420 234 426 216 426 curveto
+ 189 426 165 416 144 395 curveto
+ 123 374 110 344 106 307 curveto
+ closepath
+ fill
+ } bind def
+ /glyph7 {
+ 389 0 48 -13 354 460 setcachedevice
+ 320 460 moveto
+ 320 308 lineto
+ 304 308 lineto
+ 291 355 276 388 256 405 curveto
+ 237 422 212 431 182 431 curveto
+ 160 431 141 425 127 413 curveto
+ 113 401 106 388 106 373 curveto
+ 106 355 111 339 122 326 curveto
+ 132 313 152 299 183 284 curveto
+ 254 249 lineto
+ 320 217 354 175 354 122 curveto
+ 354 81 338 48 308 23 curveto
+ 277 0 243 -13 204 -13 curveto
+ 177 -13 146 -8 110 0 curveto
+ 100 4 91 5 84 5 curveto
+ 77 5 71 1 66 -6 curveto
+ 50 -6 lineto
+ 50 152 lineto
+ 66 152 lineto
+ 76 107 93 73 119 49 curveto
+ 145 26 173 15 205 15 curveto
+ 228 15 246 21 260 35 curveto
+ 274 48 281 63 281 82 curveto
+ 281 104 274 124 258 139 curveto
+ 242 154 210 173 163 197 curveto
+ 116 220 85 241 70 260 curveto
+ 56 279 48 302 48 331 curveto
+ 48 367 61 398 86 423 curveto
+ 111 448 144 460 184 460 curveto
+ 202 460 223 457 248 449 curveto
+ 265 444 276 441 281 441 curveto
+ 287 441 291 442 293 445 curveto
+ 296 447 300 452 304 460 curveto
+ 320 460 lineto
+ closepath
+ fill
+ } bind def
+ /glyph8 {
+ 277 0 9 -7 279 594 setcachedevice
+ 161 594 moveto
+ 161 447 lineto
+ 265 447 lineto
+ 265 413 lineto
+ 161 413 lineto
+ 161 123 lineto
+ 161 94 165 74 173 64 curveto
+ 182 54 192 49 205 49 curveto
+ 216 49 226 52 236 59 curveto
+ 247 65 254 75 260 88 curveto
+ 279 88 lineto
+ 268 57 251 33 230 17 curveto
+ 210 0 188 -7 166 -7 curveto
+ 151 -7 137 -2 122 5 curveto
+ 108 13 98 25 90 41 curveto
+ 84 56 80 80 80 112 curveto
+ 80 413 lineto
+ 9 413 lineto
+ 9 429 lineto
+ 27 436 45 448 64 465 curveto
+ 83 482 100 502 114 526 curveto
+ 122 538 132 561 145 594 curveto
+ 161 594 lineto
+ closepath
+ fill
+ } bind def
+ end
+/BuildGlyph {
+ exch /CharProcs get exch
+ 2 copy known not
+ {pop /.notdef} if
+ get exec
+} bind def
+/BuildChar {
+ 1 index /Encoding get exch get
+ 1 index /BuildGlyph get exec
+} bind def
+currentdict end
+(TimesNewRomanPSMTFID26HGSet1) cvn exch definefont pop
+%%EndResource
+%%DocumentSuppliedResources: font TimesNewRomanPSMTFID26HGSet1
+%%EndSetup
+%%Page: 1 1
+%%PageOrientation: Portrait
+%%PageBoundingBox: 18 18 577 824
+%%BeginPageSetup
+%
+[{
+%%BeginFeature: *PageSize A4
+<</PageSize [595 842] /ImagingBBox null>> setpagedevice
+%%EndFeature
+} stopped cleartomark
+%%EndPageSetup
+gsave
+[0.24 0 0 -0.24 18 824] concat
+gsave
+1122 184 moveto
+0 0 0 setrgbcolor
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 25 -25 matrix scale makefont setfont
+<4549532D54657374>
+[15 8 14 9 15 11 10 0]
+xshow
+1114 215 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 29 -29 matrix scale makefont setfont
+<4549532D54657374>
+[17 10 16 10 18 13 11 0]
+xshow
+1107 251 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 33 -33 matrix scale makefont setfont
+<4549532D54657374>
+[20 11 19 11 20 15 13 0]
+xshow
+1100 291 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 38 -38 matrix scale makefont setfont
+<4549532D54657374>
+[23 13 20 13 22 17 15 0]
+xshow
+1092 337 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 42 -42 matrix scale makefont setfont
+<4549532D54657374>
+[26 14 23 14 25 19 16 0]
+xshow
+1088 385 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 44 -44 matrix scale makefont setfont
+<4549532D54657374>
+[27 14 24 15 27 19 17 0]
+xshow
+1085 435 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 46 -46 matrix scale makefont setfont
+<4549532D54657374>
+[28 15 26 15 28 20 18 0]
+xshow
+1077 490 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 50 -50 matrix scale makefont setfont
+<4549532D54657374>
+[30 17 28 16 31 22 19 0]
+xshow
+1070 549 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 54 -54 matrix scale makefont setfont
+<4549532D54657374>
+[33 18 30 19 33 24 21 0]
+xshow
+1063 613 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 58 -58 matrix scale makefont setfont
+<4549532D54657374>
+[35 19 33 20 35 26 23 0]
+xshow
+1055 681 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 63 -63 matrix scale makefont setfont
+<4549532D54657374>
+[37 21 35 21 38 28 24 0]
+xshow
+1048 754 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 67 -67 matrix scale makefont setfont
+<4549532D54657374>
+[41 22 37 22 41 30 26 0]
+xshow
+1033 835 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 75 -75 matrix scale makefont setfont
+<4549532D54657374>
+[46 25 42 25 46 33 29 0]
+xshow
+1018 926 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 83 -83 matrix scale makefont setfont
+<4549532D54657374>
+[51 28 46 28 51 37 32 0]
+xshow
+1003 1025 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 92 -92 matrix scale makefont setfont
+<4549532D54657374>
+[56 30 51 31 56 40 36 0]
+xshow
+1003 1127 moveto
+<4549532D54657374>
+[56 30 51 31 56 40 36 0]
+xshow
+989 1236 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 100 -100 matrix scale makefont setfont
+<4549532D54657374>
+[61 33 56 33 61 44 39 0]
+xshow
+974 1354 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 108 -108 matrix scale makefont setfont
+<4549532D54657374>
+[66 36 60 36 66 49 41 0]
+xshow
+959 1481 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 117 -117 matrix scale makefont setfont
+<4549532D54657374>
+[71 39 65 39 71 52 45 0]
+xshow
+929 1625 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 133 -133 matrix scale makefont setfont
+<4549532D54657374>
+[81 44 74 45 81 59 52 0]
+xshow
+900 1788 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 150 -150 matrix scale makefont setfont
+<4549532D54657374>
+[92 50 83 50 92 66 58 0]
+xshow
+870 1969 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 167 -167 matrix scale makefont setfont
+<4549532D54657374>
+[102 56 93 55 102 73 65 0]
+xshow
+840 2168 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 183 -183 matrix scale makefont setfont
+<4549532D54657374>
+[112 61 102 61 112 81 71 0]
+xshow
+811 2386 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 200 -200 matrix scale makefont setfont
+<4549532D54657374>
+[122 67 111 67 122 88 78 0]
+xshow
+766 2630 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 225 -225 matrix scale makefont setfont
+<4549532D54657374>
+[137 75 125 75 137 100 88 0]
+xshow
+722 2901 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 250 -250 matrix scale makefont setfont
+<4549532D54657374>
+[153 83 139 84 152 112 96 0]
+xshow
+grestore grestore
+showpage
+%%PageTrailer
+
+%%Trailer
+%%BoundingBox: 0 0 595 842
+%%Orientation: Portrait
+%%Pages: 1
+%%EOF
diff --git a/testgraphical/references/unxlngi/singletest/tolerance.ini_ b/testgraphical/references/unxlngi/singletest/tolerance.ini_
new file mode 100644
index 000000000000..ba027e21452a
--- /dev/null
+++ b/testgraphical/references/unxlngi/singletest/tolerance.ini_
@@ -0,0 +1,4 @@
+# This is the tolerance we will accept if there are problems
+# [eis-test.odt.ps]
+# accept=111
+# page1=111
diff --git a/testgraphical/references/unxsoli/singletest/eis-test.odt.pdf b/testgraphical/references/unxsoli/singletest/eis-test.odt.pdf
new file mode 100644
index 000000000000..96c922f4aa63
--- /dev/null
+++ b/testgraphical/references/unxsoli/singletest/eis-test.odt.pdf
Binary files differ
diff --git a/testgraphical/references/wntmsci/demo/CurrentTime.ods.pdf b/testgraphical/references/wntmsci/demo/CurrentTime.ods.pdf
new file mode 100644
index 000000000000..a753c03708c7
--- /dev/null
+++ b/testgraphical/references/wntmsci/demo/CurrentTime.ods.pdf
Binary files differ
diff --git a/testgraphical/references/wntmsci/demo/CurrentTime.ods.ps b/testgraphical/references/wntmsci/demo/CurrentTime.ods.ps
new file mode 100644
index 000000000000..36b469ce81a3
--- /dev/null
+++ b/testgraphical/references/wntmsci/demo/CurrentTime.ods.ps
@@ -0,0 +1,499 @@
+%!PS-Adobe-3.0
+%%Title: CurrentTime
+%%Creator: PScript5.dll Version 5.2.2
+%%CreationDate: 5/17/2010 15:0:3
+%%For: ll93751
+%%BoundingBox: (atend)
+%%Pages: (atend)
+%%Orientation: Portrait
+%%PageOrder: Special
+%%DocumentNeededResources: (atend)
+%%DocumentSuppliedResources: (atend)
+%%DocumentData: Clean7Bit
+%%TargetDevice: (Generic Printer For MSWord Testing) (1) 1
+%%LanguageLevel: 2
+%%EndComments
+
+%%BeginDefaults
+%%PageBoundingBox: 18 18 577 824
+%%ViewingOrientation: 1 0 0 1
+%%EndDefaults
+
+
+%%BeginProlog
+%%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0
+/currentpacking where{pop/oldpack currentpacking def/setpacking where{pop false
+setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type/stringtype
+ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch
+def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0
+rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def
+/nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def/=={/cp 0 def
+typeprint nl}def/typeprint{dup type exec}readonly def/lmargin 72 def/rmargin 72
+def/tprint{dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp
+exch def prnt}readonly def/cvsprint{=string cvs tprint( )tprint}readonly def
+/integertype{cvsprint}readonly def/realtype{cvsprint}readonly def/booleantype
+{cvsprint}readonly def/operatortype{(--)tprint =string cvs tprint(-- )tprint}
+readonly def/marktype{pop(-mark- )tprint}readonly def/dicttype{pop
+(-dictionary- )tprint}readonly def/nulltype{pop(-null- )tprint}readonly def
+/filetype{pop(-filestream- )tprint}readonly def/savetype{pop(-savelevel- )
+tprint}readonly def/fonttype{pop(-fontid- )tprint}readonly def/nametype{dup
+xcheck not{(/)tprint}if cvsprint}readonly def/stringtype{dup rcheck{(\()tprint
+tprint(\))tprint}{pop(-string- )tprint}ifelse}readonly def/arraytype{dup rcheck
+{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}forall(])
+tprint}ifelse}{pop(-array- )tprint}ifelse}readonly def/packedarraytype{dup
+rcheck{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}
+forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse}readonly def/courier
+/Courier findfont 10 scalefont def end errordict/handleerror{systemdict begin
+$error begin $brkpage begin newerror{/newerror false store vmstatus pop pop 0
+ne{grestoreall}if errorname(VMerror)ne{showpage}if initgraphics courier setfont
+lmargin 720 moveto errorname(VMerror)eq{userdict/ehsave known{clear userdict
+/ehsave get restore 2 vmreclaim}if vmstatus exch pop exch pop PrtVMMsg}{
+(ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt
+$error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}
+repeat}if}ifelse systemdict/showpage get exec(%%[ Error: )print errorname
+=print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end
+end}dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking
+where{pop/setpacking where{pop oldpack setpacking}if}if
+%%EndResource
+userdict /Pscript_WinNT_Incr 230 dict dup begin put
+%%BeginResource: file Pscript_FatalError 5.0 0
+userdict begin/FatalErrorIf{{initgraphics findfont 1 index 0 eq{exch pop}{dup
+length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding
+{ISOLatin1Encoding}stopped{StandardEncoding}if def currentdict end
+/ErrFont-Latin1 exch definefont}ifelse exch scalefont setfont counttomark 3 div
+cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def end
+%%EndResource
+userdict begin/PrtVMMsg{vmstatus exch sub exch pop gt{[
+(Dieser Druckauftrag erfordert mehr Speicher, als auf diesem Drucker vorhanden ist. )
+100 500
+(Versuchen Sie es mit einer oder mehreren der folgenden Methoden und drucken Sie dann erneut:)
+100 485(Wählen Sie für das Ausgabeformat die Option "Optimale Portierung".)115
+470
+(Stellen Sie sicher, daß auf der Registerkarte "Geräteeinstellungen" die Angabe für "Verfügbarer Postscript-Speicher" korrekt ist.)
+115 455(Reduzieren Sie die Anzahl der im Dokument verwendeten Schriftarten. )
+115 440(Drucken Sie das Dokument in verschiedenen Teilstücken. )115 425 12
+/Times-Roman showpage(%%[ PrinterError: Low Printer VM ]%%)= true FatalErrorIf}
+if}bind def end version cvi 2016 ge{/VM?{pop}bind def}{/VM? userdict/PrtVMMsg
+get def}ifelse
+105000 VM?
+%%BeginResource: file Pscript_Win_Basic 5.0 0
+/d/def load def/,/load load d/~/exch , d/?/ifelse , d/!/pop , d/`/begin , d/^
+/index , d/@/dup , d/+/translate , d/$/roll , d/U/userdict , d/M/moveto , d/-
+/rlineto , d/&/currentdict , d/:/gsave , d/;/grestore , d/F/false , d/T/true ,
+d/N/newpath , d/E/end , d/Ac/arc , d/An/arcn , d/A/ashow , d/D/awidthshow , d/C
+/closepath , d/V/div , d/O/eofill , d/L/fill , d/I/lineto , d/-c/curveto , d/-M
+/rmoveto , d/+S/scale , d/Ji/setfont , d/Lc/setlinecap , d/Lj/setlinejoin , d
+/Lw/setlinewidth , d/Lm/setmiterlimit , d/sd/setdash , d/S/show , d/LH/showpage
+, d/K/stroke , d/W/widthshow , d/R/rotate , d/L2? false/languagelevel where{pop
+languagelevel 2 ge{pop true}if}if d L2?{/xS/xshow , d/yS/yshow , d/zS/xyshow ,
+d}if/b{bind d}bind d/bd{bind d}bind d/xd{~ d}bd/ld{, d}bd/bn/bind ld/lw/Lw ld
+/lc/Lc ld/lj/Lj ld/sg/setgray ld/ADO_mxRot null d/self & d/OrgMx matrix
+currentmatrix d/reinitialize{: OrgMx setmatrix[/TextInit/GraphInit/UtilsInit
+counttomark{@ where{self eq}{F}?{cvx exec}{!}?}repeat cleartomark ;}b
+/initialize{`{/Pscript_Win_Data where{!}{U/Pscript_Win_Data & put}?/ADO_mxRot ~
+d/TextInitialised? F d reinitialize E}{U/Pscript_Win_Data 230 dict @ ` put
+/ADO_mxRot ~ d/TextInitialised? F d reinitialize}?}b/terminate{!{& self eq
+{exit}{E}?}loop E}b/suspend/terminate , d/resume{` Pscript_Win_Data `}b U `
+/lucas 21690 d/featurebegin{countdictstack lucas[}b/featurecleanup{stopped
+{cleartomark @ lucas eq{! exit}if}loop countdictstack ~ sub @ 0 gt{{E}repeat}
+{!}?}b E/snap{transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~
+itransform}b/dsnap{dtransform round ~ round ~ idtransform}b/nonzero_round{@ 0.5
+ge{round}{@ -0.5 lt{round}{0 ge{1}{-1}?}?}?}b/nonzero_dsnap{dtransform
+nonzero_round ~ nonzero_round ~ idtransform}b U<04>cvn{}put/rr{1 ^ 0 - 0 ~ -
+neg 0 - C}b/irp{4 -2 $ + +S fx 4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/rp{4 2 $ M 1 ^ 0
+- 0 ~ - neg 0 -}b/solid{[]0 sd}b/g{@ not{U/DefIf_save save put}if U/DefIf_bool
+2 ^ put}b/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e
+{DefIf_El !}b/UDF{L2?{undefinefont}{!}?}b/UDR{L2?{undefineresource}{! !}?}b
+/freeVM{/Courier findfont[40 0 0 -40 0 0]makefont Ji 2 vmreclaim}b/hfRedefFont
+{findfont @ length dict `{1 ^/FID ne{d}{! !}?}forall & E @ ` ~{/CharStrings 1
+dict `/.notdef 0 d & E d}if/Encoding 256 array 0 1 255{1 ^ ~/.notdef put}for d
+E definefont !}bind d/hfMkCIDFont{/CIDFont findresource @ length 2 add dict `{1
+^ @/FID eq ~ @/XUID eq ~/UIDBase eq or or{! !}{d}?}forall/CDevProc ~ d/Metrics2
+16 dict d/CIDFontName 1 ^ d & E 1 ^ ~/CIDFont defineresource ![~]composefont !}
+bind d
+%%EndResource
+%%BeginResource: file Pscript_Win_Utils_L2 5.0 0
+/rf/rectfill , d/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 -1 $ @ 0 ge
+{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{4 -2 $
+snap + +S fx rf}b/rs/rectstroke , d/rc/rectclip , d/UtilsInit{currentglobal{F
+setglobal}if}b/scol{! setcolor}b/colspA/DeviceGray d/colspABC/DeviceRGB d
+/colspRefresh{colspABC setcolorspace}b/SetColSpace{colspABC setcolorspace}b
+/resourcestatus where{!/ColorRendering/ProcSet resourcestatus{! ! T}{F}?}{F}?
+not{/ColorRendering<</GetHalftoneName{currenthalftone @/HalftoneName known{
+/HalftoneName get}{!/none}?}bn/GetPageDeviceName{currentpagedevice @
+/PageDeviceName known{/PageDeviceName get @ null eq{!/none}if}{!/none}?}bn
+/GetSubstituteCRD{!/DefaultColorRendering/ColorRendering resourcestatus{! !
+/DefaultColorRendering}{(DefaultColorRendering*){cvn exit}127 string
+/ColorRendering resourceforall}?}bn>>/defineresource where{!/ProcSet
+defineresource !}{! !}?}if/buildcrdname{/ColorRendering/ProcSet findresource `
+mark GetHalftoneName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)
+GetPageDeviceName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)5 ^ 0 5
+-1 1{^ length add}for string 6 1 $ 5 ^ 5{~ 1 ^ cvs length 1 ^ length 1 ^ sub
+getinterval}repeat ! cvn 3 1 $ ! ! E}b/definecolorrendering{~ buildcrdname ~
+/ColorRendering defineresource !}b/findcolorrendering where{!}{
+/findcolorrendering{buildcrdname @/ColorRendering resourcestatus{! ! T}{
+/ColorRendering/ProcSet findresource ` GetSubstituteCRD E F}?}b}?
+/selectcolorrendering{findcolorrendering !/ColorRendering findresource
+setcolorrendering}b/G2UBegin{findresource/FontInfo get/GlyphNames2Unicode get
+`}bind d/G2CCBegin{findresource/FontInfo get/GlyphNames2HostCode get `}bind d
+/G2UEnd{E}bind d/AddFontInfoBegin{/FontInfo 8 dict @ `}bind d/AddFontInfo{
+/GlyphNames2Unicode 16 dict d/GlyphNames2HostCode 16 dict d}bind d
+/AddFontInfoEnd{E d}bind d/T0AddCFFMtx2{/CIDFont findresource/Metrics2 get ` d
+E}bind d
+%%EndResource
+end
+%%EndProlog
+
+%%BeginSetup
+statusdict begin (%%[ ProductName: ) print product print ( ]%%)= flush end
+[ 1 0 0 1 0 0 ] false Pscript_WinNT_Incr dup /initialize get exec
+featurebegin{
+%%BeginNonPPDFeature: JobTimeout 0
+0 /languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/JobTimeout 4 -1 roll put setuserparams}{statusdict/setjobtimeout get exec}ifelse
+%%EndNonPPDFeature
+}featurecleanup
+
+featurebegin{
+%%BeginNonPPDFeature: WaitTimeout 300
+300 /languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/WaitTimeout 4 -1 roll put setuserparams}{statusdict/waittimeout 3 -1 roll put}ifelse
+%%EndNonPPDFeature
+}featurecleanup
+
+featurebegin{
+%%BeginFeature: *InputSlot ManualFeed
+
+<< /ManualFeed true /Policies << /ManualFeed 1 >> >> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *Duplex None
+
+<</Duplex false /Tumble false
+ /Policies << /Duplex 1 /Tumble 1 >>
+>> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *PageRegion A4
+<</PageSize [595 842] /ImagingBBox null>> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *Resolution 1200x1200dpi
+
+ 1 dict dup /HWResolution [1200 1200] put setpagedevice
+%%EndFeature
+}featurecleanup
+1 setlinecap 1 setlinejoin
+/mysetup [ 72 1200 V 0 0 -72 1200 V 18 824.0003 ] def
+%%EndSetup
+
+userdict begin /ehsave save def end
+%%Page: 1 1
+%%PageBoundingBox: 18 18 577 824
+%%EndPageComments
+%%BeginPageSetup
+/DeviceRGB dup setcolorspace /colspABC exch def
+mysetup concat colspRefresh
+%%EndPageSetup
+
+0 0 0 1 scol 22500 VM?
+11 dict begin
+/FontName /TTEC2o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1ae15c03974a1a9b3c172d5d01da698bb3e9bd8fb187
+15ad84bc85cd145093e29e1b226d167407e1f00a6529c34100fe35097c0d
+b5af1eda9d93c4fbe9bd86433be0237415462af5d09911e8c9f42535e5d2
+2dd429d16a06629077406afc7b7c534dc9e9e045cc02be968fa94e480676
+cb53f625f5f575a27ab6d08d5c839bcfee5628e5ccd4d4605b7fec3a76bb
+28738163f3b82fd887dfecdc22fecb045a567be6d3b5a147b633e25bed18
+40c3e8e2f2258801243cf18236f06a8992b5a43fdca766d185ec61f2b174
+d769605817b24a47643e089d8814e415ab639130ea66e36890bd761d0a8f
+5d374c4904ff82dfe0f21c18dee922bc8376caeba56e25b6c9ddbd670491
+72036f023f43bf7830df38d0c36ef5d7184a77d3822cb988db6213ddd19d
+879129e1b8f3a8dafd1d138bec6d1ded9fbbb5b4294072df1f12a135929c
+9a45aea5ebc051f8d6514ccf32b2acbd84dfcbcce5469c945c93be1929e7
+f9fca6965e31a4328311b483ac44acb3daed602b089ab4fe0f74705bb07b
+21067988ba7246b0dd96c23046cbbc2414fdb62ca2e102c041d24e977418
+1bd25e1bd6f500cad2b24572a49f549bf2e59a693759d0acb7c42c2caaa6
+f940204c5d06b53cc4847dac692da2e938bf86283692a51a631279087ecd
+19b56062b53f44ca8d3025a1c25c7aed9b406e9d9fed5a13ff540359abc6
+0a0a444273d3bf793cb00c3158c1050a0a026d200bf4d34f0237233c5b80
+ee79e7cad72f335228314e3461cd05ef2f3826bc1c5c43a92b0551e00b19
+ebeea73ef66820f36ee61ad9be6012c65138a13ef4cd7745cb966af72d76
+d42781dc5aaf5f69753ae6bd324bf42ec9cee010ff5f487dfaf1eea51f2f
+43488c9a9115ceda9b959465b3ae6f1e94ede9ce7867344484db692e5423
+962fa13ffb0073691e3a193f217e588ec12fcad5e3c7a2da41073813b4e4
+99a784d26534294d71d117a87c98a814df39bf6fc01fac1bf8f73960775b
+0a4ed51d90d942c14585b424223f30c4f93ee07bd3c05dd7f36271b10cc0
+914af6e94e4451befc31d1557802dad903b71eb5189c18fadd8ba9ce4ff0
+c2d750518bfca7c652b5c5d314a35fefb8e62e62632d0168c97718779689
+97abcc8e922914102cc46e07874511d23c143f7c2440a81b012532995272
+f01ae7b4d8f66ffac047ba7ddcf4b156ce29e19491ceb0af30494c5755e6
+16eb123ec1f237fa5d36c4a03de9e90000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTEC2o00 findfont /Encoding get
+dup 1 /S put
+dup 2 /h put
+dup 3 /e put
+dup 4 /t put
+dup 5 /one put
+pop
+Pscript_WinNT_Incr begin
+%%BeginResource: file Pscript_Text 5.0 0
+/TextInit{TextInitialised? not{/Pscript_Windows_Font & d/TextInitialised? T d
+/fM[1 0 0 1 0 0]d/mFM matrix d/iMat[1 0 0.212557 1 0 0]d}if}b/copyfont{1 ^
+length add dict `{1 ^/FID ne{d}{! !}?}forall & E}b/EncodeDict 11 dict d/bullets
+{{/bullet}repeat}b/rF{3 copyfont @ ` ~ EncodeDict ~ get/Encoding ~ 3 ^/0 eq{&
+/CharStrings known{CharStrings/Eth known not{! EncodeDict/ANSIEncodingOld get}
+if}if}if d E}b/mF{@ 7 1 $ findfont ~{@/Encoding get @ StandardEncoding eq{! T}{
+{ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get
+StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{1 ^ ~ rF}{0 copyfont}? 6 -2 $
+! ! ~ !/pd_charset @ where{~ get 128 eq{@ FDV 2 copy get @ length array copy
+put pd_CoverFCRange}if}{!}? 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 put fM
+makefont Pscript_Windows_Font 3 1 $ put}b/sLT{: Lw -M currentpoint snap M 0 - 0
+Lc K ;}b/xUP null d/yUP null d/uW null d/xSP null d/ySP null d/sW null d/sSU{N
+/uW ~ d/yUP ~ d/xUP ~ d}b/sU{xUP yUP uW sLT}b/sST{N/sW ~ d/ySP ~ d/xSP ~ d}b/sT
+{xSP ySP sW sLT}b/sR{: + R 0 0 M}b/sRxy{: matrix astore concat 0 0 M}b/eR/; , d
+/AddOrigFP{{&/FontInfo known{&/FontInfo get length 6 add}{6}? dict `
+/WinPitchAndFamily ~ d/WinCharSet ~ d/OrigFontType ~ d/OrigFontStyle ~ d
+/OrigFontName ~ d & E/FontInfo ~ d}{! ! ! ! !}?}b/mFS{makefont
+Pscript_Windows_Font 3 1 $ put}b/mF42D{0 copyfont `/FontName ~ d 2 copy ~ sub 1
+add dict `/.notdef 0 d 2 copy 1 ~{@ 3 ^ sub Encoding ~ get ~ d}for & E
+/CharStrings ~ d ! ! & @ E/FontName get ~ definefont}b/mF42{15 dict ` @ 4 1 $
+FontName ~ d/FontType 0 d/FMapType 2 d/FontMatrix[1 0 0 1 0 0]d 1 ^ 254 add 255
+idiv @ array/Encoding ~ d 0 1 3 -1 $ 1 sub{@ Encoding 3 1 $ put}for/FDepVector
+Encoding length array d/CharStrings 2 dict `/.notdef 0 d & E d 0 1 Encoding
+length 1 sub{@ @ 10 lt{! FontName length 1 add string}{100 lt{FontName length 2
+add string}{FontName length 3 add string}?}? @ 0 FontName @ length string cvs
+putinterval @ 3 -1 $ @ 4 1 $ 3 string cvs FontName length ~ putinterval cvn 1 ^
+256 mul @ 255 add 3 -1 $ 4 ^ findfont mF42D FDepVector 3 1 $ put}for & @ E
+/FontName get ~ definefont ! ! ! mF}b/mF_OTF_V{~ ! ~ ! 4 -1 $ ! findfont 2 ^ ~
+definefont fM @ @ 4 6 -1 $ neg put 5 0 put 90 matrix R matrix concatmatrix
+makefont Pscript_Windows_Font 3 1 $ put}b/mF_TTF_V{3{~ !}repeat 3 -1 $ !
+findfont 1 ^ ~ definefont Pscript_Windows_Font 3 1 $ put}b/UmF{L2?
+{Pscript_Windows_Font ~ undef}{!}?}b/UmF42{@ findfont/FDepVector get{/FontName
+get undefinefont}forall undefinefont}b
+%%EndResource
+end reinitialize
+F /F0 0 /0 F /TTEC2o00 mF
+/F0SA7 F0 [167 0 0 -167 0 0 ] mFS
+F0SA7 Ji
+4696 1120 M <010203030405>[111 93 93 93 46 0]xS
+3600 VM?
+
+currentfile eexec
+9e67edc6b841305d5d10e5a53359c38b0291a4f57acae0c56237cee47bc1
+d85570b1414b43fc17ea6b4843d55ac9afa7067f1a7091b4594d913de276
+a8772313a65fcd26ba87b9a05d166b03e17f03277dd8efccb02a7d4c1be6
+177e723f7aa9e190ce43dd1df2bf2988559fa94bfa641911cece0e747ceb
+9b660904152a628a244fd923b311f5c4a5fe7c546e8d37afebee19511e85
+7ff39e7ff6c4792d53badbc7a555b283f38f31e279752d4342dd5f00e99d
+ba2152623e1e346ef7276b3265bc6cc3a37e315df96fd5d085e519b5cf03
+fb27cf9385ba7058ff6c83c880bff9c4fbd2947bdc5c671ae82a44177042
+f439578104f7c75f2ba09f3a578b522774bde2cbc6643d623a5e689df5bd
+359ed5f335c5b979036b99e788351b92cb83205fff7dfc1b4880b7c6f468
+edd5346a15139d558c3bc6afd4767b4d9529a0b1aa4767bc65f3a158d720
+6b2b276cc6eb3b50ea5319f6a5b9f96114b77ee5ff8b0d84786036821196
+10d2ea5e2af2f62d8e94dfa5e9d87f303e6969e9121676a20da78c247202
+97cf246bcdca069951c2ca4294017dbf317ba60a54367a75dcb0c005394f
+2e21d22fc8f1ca437c52566a26569f6f218d87831bbb59f9d7ce80d28c89
+c77c8ae2b608c786ebca7c5c5a7b7ded13c1007bc6484e8151dc558cb6f0
+6056b74666e6cdb8c0ccdc65044d55b68497ebec08ea9f2c661760595438
+8dfea6f0743c11811fd26f2837f954ef0a99db60eb9c3e1b523e0762deec
+c717a44bfc75d4b55b7b8719218283ecd5e23ccbcc9bc1893cd9dda88922
+be1f24e77c46fbafd369868830f7ac384a338b2dde52ac79f83047febbb7
+a1adfd3f3ea13de8dbb63607beec48b0b5957be43431e98c34591c3ce646
+5c30ed78f1a8d521a4349671263c640e277d310adf33cae19cfdc350adff
+14c02e0b73c1a80c0b97e5974cd751a144d34ca579b5cb81d8e0f230dbb8
+2d306f969dbd71108cc52e7338359ca95bc1873c1c91be7b51240fc14001
+98c8f64796e991eea99e27eba7bdac1f2296da2c6db2cdbcc4d7538af40d
+5cd881a349dbc71725ab9bf815736c339b0f5aec8f6c4ca0438ecca51f39
+130895a4e7fd438813034129b8a838589b370000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTEC2o00 findfont /Encoding get
+dup 6 /P put
+dup 7 /a put
+dup 8 /g put
+dup 9 /space put
+pop
+4696 13024 M <0607080309>[111 93 93 93 0]xS
+5132 13024 M <05>S
+19800 VM?
+11 dict begin
+/FontName /TTBC013398o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1add2c77631f898ffcae76502bbe5e22d7ef71c602e1
+9e22c890817f47e70d08803467d31dd4454c7e898bf1e600f73ba7788118
+7a31575a7bde4b80b1052323a8cd8606039f631424bead9a04865f2b6ccd
+563650769cf3b9f4ec66fa0b354b1389beaff83c6934509010d5c85f025f
+31060982b13953fa166bd5a265f4594dd80728aad8dbc710567ddbed093f
+27b08481959f39d5ea87844272e351c3b107807046866c6efdb34ab1a02a
+4560b58fd36e23b92ffe3af9cc87a0bcbebea7877536640c59261a3a850a
+0941a1da1349cafaf520ac0b488e6dd848ded092875c1ddfbb53986369d2
+ea38f05fc71a0f819904a116f9de8d4281e77df87763452fd42258656862
+4ee87f6acc7b7e1de1128cffce1168ba4f0f231290002f98b6bd2bc60a37
+f305d9515113ceba5d077871c967bffa3d810d8b4355895fdb320c155536
+880c517ea5384f01027eae42fb1a1cf3b4105a4bd7287b950000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTBC013398o00 findfont /Encoding get
+dup 1 /one put
+dup 2 /five put
+pop
+F /F1 0 /0 F /TTBC013398o00 mF
+/F1S5BA F1 [1466 0 0 -1466 0 0 ] mFS
+F1S5BA Ji
+1459 3161 M <0102>[815 0]xS
+900 VM?
+
+currentfile eexec
+9e67edc6b841305af19a6e4bb2a230e3e9efc9b96f464cd2cec0584bfa5d
+e6b6c8bf4fb2bca3ff5c4ffdcb930b9549cfaa6d954b63169b356002d4a2
+065b3dad6c77543f2f4c58aba309a5f2e2cec5372d5eb49ba5adffe6ec0d
+ed20ee879de2476ee6f4099e560589a666b9194b6bf7f0128e1a3afd80ec
+9f40a396884744c1962e90eba74a9cd4a32f9fdd0782f0c6b6d12f732bee
+20b6ac0c3bfba90b08742c53ddc1970000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTBC013398o00 findfont /Encoding get
+dup 3 /colon put
+pop
+3123 3161 M <03>S
+900 VM?
+
+currentfile eexec
+9e67edc6b841305af19a6e4bb2a230e3e9efc9b96f464cd2cec0584bfa5d
+e6b6c8bf4fb2bca3ff5c4ffdcb930b9549cfaa6d954b63169b356002d4a2
+065b3dad6c77543f2f4c58abba975b6391782ae96f027086c2b7fc4d3f90
+351b67f8a2fc2116477655cf0dff5a6bf15f1a3d629270d6af26f69b32a3
+312831823f86f43a0ab84649de6044d445b8ed1fbd9a8f026fbac386a0e1
+c5428153a9d4e786021ed524ba1216a3b8ab60edfbf05959d5558b762ca6
+ffa65d882d930f795bc1903885698b5558100097185b7cacdbe4413bc735
+faa8d6a05f03b5bcb23f73372cbb5f7cd01ce3e3bb2e524201be263c6e0c
+f04205a026405c90467d80e06d42e97c1af53a494a1c86c7a93c034ec9a1
+58c34d868fc499aa20961ab79c8fd94237c294a6d7569b8cddbab704dca3
+ab7466244b990000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTBC013398o00 findfont /Encoding get
+dup 4 /zero put
+pop
+4201 3161 M <0404>[815 0]xS
+5865 3161 M <03>S
+900 VM?
+
+currentfile eexec
+9e67edc6b841305af19a6e4bb2a230e3e9efc9b96f464cd2cec0584bfa5d
+e6b6c8bf4fb2bca3ff5c4ffdcb930b9549cfaa6d954b63169b356002d4a2
+065b3dad6c77543f2f4c58abb474233ea80ce809e35265271e29a645609a
+f19523b459da829c3beb337f4e916de7baa7dd40e381e60e1d68dd6dc672
+318ee6d51a4977d970db3ae073fa94a7f5afcd21e06e8476d782a2865dd3
+2a9c235bd5f3c5f1f327252a54d27bae21d8962686e2aa6912c72c946bed
+83223cfc201da7c3f18870a82efce4ad7f1c996c4d99903969225ed21444
+37bc8415a6f4b6d44e30c3d0e47b6d6945d1536311137281dee93fc9a238
+a6036c912e79e0ebe6ecb3d20cd3093cccd00d504fa49f3c0efe04da2103
+3e167528183bdb7896175c77778fde8f0d0b65cb28281e8869747cde7f28
+94c91c302ba109d3ae45ff70f1999a40d8e9a33bd9ce6b8b22961db9c435
+a39d612dba6c4fcc51231f651c91bd0b0724b13d8d8e0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTBC013398o00 findfont /Encoding get
+dup 5 /three put
+pop
+6943 3161 M <0405>[815 0]xS
+LH
+(%%[Page: 1]%%) =
+%%PageTrailer
+
+%%Trailer
+%%BoundingBox: 18 18 577 824
+%%DocumentNeededResources:
+%%DocumentSuppliedResources:
+%%+ procset Pscript_WinNT_ErrorHandler 5.0 0
+%%+ procset Pscript_FatalError 5.0 0
+%%+ procset Pscript_Win_Basic 5.0 0
+%%+ procset Pscript_Win_Utils_L2 5.0 0
+%%+ procset Pscript_Text 5.0 0
+Pscript_WinNT_Incr dup /terminate get exec
+ehsave restore
+%%Pages: 1
+(%%[LastPage]%%) =
+%%EOF
+ \ No newline at end of file
diff --git a/testgraphical/references/wntmsci/singletest/eis-test.odt.pdf b/testgraphical/references/wntmsci/singletest/eis-test.odt.pdf
new file mode 100644
index 000000000000..0654d52c11a8
--- /dev/null
+++ b/testgraphical/references/wntmsci/singletest/eis-test.odt.pdf
Binary files differ
diff --git a/testgraphical/references/wntmsci/singletest/eis-test.odt.ps b/testgraphical/references/wntmsci/singletest/eis-test.odt.ps
new file mode 100644
index 000000000000..968c7b3cbd44
--- /dev/null
+++ b/testgraphical/references/wntmsci/singletest/eis-test.odt.ps
@@ -0,0 +1,1984 @@
+%!PS-Adobe-3.0
+%%Title: eis-test
+%%Creator: PScript5.dll Version 5.2.2
+%%CreationDate: 5/17/2010 13:9:19
+%%For: ll93751
+%%BoundingBox: (atend)
+%%Pages: (atend)
+%%Orientation: Portrait
+%%PageOrder: Special
+%%DocumentNeededResources: (atend)
+%%DocumentSuppliedResources: (atend)
+%%DocumentData: Clean7Bit
+%%TargetDevice: (Generic Printer For MSWord Testing) (1) 1
+%%LanguageLevel: 2
+%%EndComments
+
+%%BeginDefaults
+%%PageBoundingBox: 18 18 577 824
+%%ViewingOrientation: 1 0 0 1
+%%EndDefaults
+
+
+%%BeginProlog
+%%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0
+/currentpacking where{pop/oldpack currentpacking def/setpacking where{pop false
+setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type/stringtype
+ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch
+def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0
+rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def
+/nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def/=={/cp 0 def
+typeprint nl}def/typeprint{dup type exec}readonly def/lmargin 72 def/rmargin 72
+def/tprint{dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp
+exch def prnt}readonly def/cvsprint{=string cvs tprint( )tprint}readonly def
+/integertype{cvsprint}readonly def/realtype{cvsprint}readonly def/booleantype
+{cvsprint}readonly def/operatortype{(--)tprint =string cvs tprint(-- )tprint}
+readonly def/marktype{pop(-mark- )tprint}readonly def/dicttype{pop
+(-dictionary- )tprint}readonly def/nulltype{pop(-null- )tprint}readonly def
+/filetype{pop(-filestream- )tprint}readonly def/savetype{pop(-savelevel- )
+tprint}readonly def/fonttype{pop(-fontid- )tprint}readonly def/nametype{dup
+xcheck not{(/)tprint}if cvsprint}readonly def/stringtype{dup rcheck{(\()tprint
+tprint(\))tprint}{pop(-string- )tprint}ifelse}readonly def/arraytype{dup rcheck
+{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}forall(])
+tprint}ifelse}{pop(-array- )tprint}ifelse}readonly def/packedarraytype{dup
+rcheck{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}
+forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse}readonly def/courier
+/Courier findfont 10 scalefont def end errordict/handleerror{systemdict begin
+$error begin $brkpage begin newerror{/newerror false store vmstatus pop pop 0
+ne{grestoreall}if errorname(VMerror)ne{showpage}if initgraphics courier setfont
+lmargin 720 moveto errorname(VMerror)eq{userdict/ehsave known{clear userdict
+/ehsave get restore 2 vmreclaim}if vmstatus exch pop exch pop PrtVMMsg}{
+(ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt
+$error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}
+repeat}if}ifelse systemdict/showpage get exec(%%[ Error: )print errorname
+=print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end
+end}dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking
+where{pop/setpacking where{pop oldpack setpacking}if}if
+%%EndResource
+userdict /Pscript_WinNT_Incr 230 dict dup begin put
+%%BeginResource: file Pscript_FatalError 5.0 0
+userdict begin/FatalErrorIf{{initgraphics findfont 1 index 0 eq{exch pop}{dup
+length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding
+{ISOLatin1Encoding}stopped{StandardEncoding}if def currentdict end
+/ErrFont-Latin1 exch definefont}ifelse exch scalefont setfont counttomark 3 div
+cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def end
+%%EndResource
+userdict begin/PrtVMMsg{vmstatus exch sub exch pop gt{[
+(Dieser Druckauftrag erfordert mehr Speicher, als auf diesem Drucker vorhanden ist. )
+100 500
+(Versuchen Sie es mit einer oder mehreren der folgenden Methoden und drucken Sie dann erneut:)
+100 485(Wählen Sie für das Ausgabeformat die Option "Optimale Portierung".)115
+470
+(Stellen Sie sicher, daß auf der Registerkarte "Geräteeinstellungen" die Angabe für "Verfügbarer Postscript-Speicher" korrekt ist.)
+115 455(Reduzieren Sie die Anzahl der im Dokument verwendeten Schriftarten. )
+115 440(Drucken Sie das Dokument in verschiedenen Teilstücken. )115 425 12
+/Times-Roman showpage(%%[ PrinterError: Low Printer VM ]%%)= true FatalErrorIf}
+if}bind def end version cvi 2016 ge{/VM?{pop}bind def}{/VM? userdict/PrtVMMsg
+get def}ifelse
+105000 VM?
+%%BeginResource: file Pscript_Win_Basic 5.0 0
+/d/def load def/,/load load d/~/exch , d/?/ifelse , d/!/pop , d/`/begin , d/^
+/index , d/@/dup , d/+/translate , d/$/roll , d/U/userdict , d/M/moveto , d/-
+/rlineto , d/&/currentdict , d/:/gsave , d/;/grestore , d/F/false , d/T/true ,
+d/N/newpath , d/E/end , d/Ac/arc , d/An/arcn , d/A/ashow , d/D/awidthshow , d/C
+/closepath , d/V/div , d/O/eofill , d/L/fill , d/I/lineto , d/-c/curveto , d/-M
+/rmoveto , d/+S/scale , d/Ji/setfont , d/Lc/setlinecap , d/Lj/setlinejoin , d
+/Lw/setlinewidth , d/Lm/setmiterlimit , d/sd/setdash , d/S/show , d/LH/showpage
+, d/K/stroke , d/W/widthshow , d/R/rotate , d/L2? false/languagelevel where{pop
+languagelevel 2 ge{pop true}if}if d L2?{/xS/xshow , d/yS/yshow , d/zS/xyshow ,
+d}if/b{bind d}bind d/bd{bind d}bind d/xd{~ d}bd/ld{, d}bd/bn/bind ld/lw/Lw ld
+/lc/Lc ld/lj/Lj ld/sg/setgray ld/ADO_mxRot null d/self & d/OrgMx matrix
+currentmatrix d/reinitialize{: OrgMx setmatrix[/TextInit/GraphInit/UtilsInit
+counttomark{@ where{self eq}{F}?{cvx exec}{!}?}repeat cleartomark ;}b
+/initialize{`{/Pscript_Win_Data where{!}{U/Pscript_Win_Data & put}?/ADO_mxRot ~
+d/TextInitialised? F d reinitialize E}{U/Pscript_Win_Data 230 dict @ ` put
+/ADO_mxRot ~ d/TextInitialised? F d reinitialize}?}b/terminate{!{& self eq
+{exit}{E}?}loop E}b/suspend/terminate , d/resume{` Pscript_Win_Data `}b U `
+/lucas 21690 d/featurebegin{countdictstack lucas[}b/featurecleanup{stopped
+{cleartomark @ lucas eq{! exit}if}loop countdictstack ~ sub @ 0 gt{{E}repeat}
+{!}?}b E/snap{transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~
+itransform}b/dsnap{dtransform round ~ round ~ idtransform}b/nonzero_round{@ 0.5
+ge{round}{@ -0.5 lt{round}{0 ge{1}{-1}?}?}?}b/nonzero_dsnap{dtransform
+nonzero_round ~ nonzero_round ~ idtransform}b U<04>cvn{}put/rr{1 ^ 0 - 0 ~ -
+neg 0 - C}b/irp{4 -2 $ + +S fx 4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/rp{4 2 $ M 1 ^ 0
+- 0 ~ - neg 0 -}b/solid{[]0 sd}b/g{@ not{U/DefIf_save save put}if U/DefIf_bool
+2 ^ put}b/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e
+{DefIf_El !}b/UDF{L2?{undefinefont}{!}?}b/UDR{L2?{undefineresource}{! !}?}b
+/freeVM{/Courier findfont[40 0 0 -40 0 0]makefont Ji 2 vmreclaim}b/hfRedefFont
+{findfont @ length dict `{1 ^/FID ne{d}{! !}?}forall & E @ ` ~{/CharStrings 1
+dict `/.notdef 0 d & E d}if/Encoding 256 array 0 1 255{1 ^ ~/.notdef put}for d
+E definefont !}bind d/hfMkCIDFont{/CIDFont findresource @ length 2 add dict `{1
+^ @/FID eq ~ @/XUID eq ~/UIDBase eq or or{! !}{d}?}forall/CDevProc ~ d/Metrics2
+16 dict d/CIDFontName 1 ^ d & E 1 ^ ~/CIDFont defineresource ![~]composefont !}
+bind d
+%%EndResource
+%%BeginResource: file Pscript_Win_Utils_L2 5.0 0
+/rf/rectfill , d/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 -1 $ @ 0 ge
+{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{4 -2 $
+snap + +S fx rf}b/rs/rectstroke , d/rc/rectclip , d/UtilsInit{currentglobal{F
+setglobal}if}b/scol{! setcolor}b/colspA/DeviceGray d/colspABC/DeviceRGB d
+/colspRefresh{colspABC setcolorspace}b/SetColSpace{colspABC setcolorspace}b
+/resourcestatus where{!/ColorRendering/ProcSet resourcestatus{! ! T}{F}?}{F}?
+not{/ColorRendering<</GetHalftoneName{currenthalftone @/HalftoneName known{
+/HalftoneName get}{!/none}?}bn/GetPageDeviceName{currentpagedevice @
+/PageDeviceName known{/PageDeviceName get @ null eq{!/none}if}{!/none}?}bn
+/GetSubstituteCRD{!/DefaultColorRendering/ColorRendering resourcestatus{! !
+/DefaultColorRendering}{(DefaultColorRendering*){cvn exit}127 string
+/ColorRendering resourceforall}?}bn>>/defineresource where{!/ProcSet
+defineresource !}{! !}?}if/buildcrdname{/ColorRendering/ProcSet findresource `
+mark GetHalftoneName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)
+GetPageDeviceName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)5 ^ 0 5
+-1 1{^ length add}for string 6 1 $ 5 ^ 5{~ 1 ^ cvs length 1 ^ length 1 ^ sub
+getinterval}repeat ! cvn 3 1 $ ! ! E}b/definecolorrendering{~ buildcrdname ~
+/ColorRendering defineresource !}b/findcolorrendering where{!}{
+/findcolorrendering{buildcrdname @/ColorRendering resourcestatus{! ! T}{
+/ColorRendering/ProcSet findresource ` GetSubstituteCRD E F}?}b}?
+/selectcolorrendering{findcolorrendering !/ColorRendering findresource
+setcolorrendering}b/G2UBegin{findresource/FontInfo get/GlyphNames2Unicode get
+`}bind d/G2CCBegin{findresource/FontInfo get/GlyphNames2HostCode get `}bind d
+/G2UEnd{E}bind d/AddFontInfoBegin{/FontInfo 8 dict @ `}bind d/AddFontInfo{
+/GlyphNames2Unicode 16 dict d/GlyphNames2HostCode 16 dict d}bind d
+/AddFontInfoEnd{E d}bind d/T0AddCFFMtx2{/CIDFont findresource/Metrics2 get ` d
+E}bind d
+%%EndResource
+end
+%%EndProlog
+
+%%BeginSetup
+statusdict begin (%%[ ProductName: ) print product print ( ]%%)= flush end
+[ 1 0 0 1 0 0 ] false Pscript_WinNT_Incr dup /initialize get exec
+featurebegin{
+%%BeginNonPPDFeature: JobTimeout 0
+0 /languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/JobTimeout 4 -1 roll put setuserparams}{statusdict/setjobtimeout get exec}ifelse
+%%EndNonPPDFeature
+}featurecleanup
+
+featurebegin{
+%%BeginNonPPDFeature: WaitTimeout 300
+300 /languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/WaitTimeout 4 -1 roll put setuserparams}{statusdict/waittimeout 3 -1 roll put}ifelse
+%%EndNonPPDFeature
+}featurecleanup
+
+featurebegin{
+%%BeginFeature: *InputSlot ManualFeed
+
+<< /ManualFeed true /Policies << /ManualFeed 1 >> >> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *Duplex None
+
+<</Duplex false /Tumble false
+ /Policies << /Duplex 1 /Tumble 1 >>
+>> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *PageRegion A4
+<</PageSize [595 842] /ImagingBBox null>> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *Resolution 1200x1200dpi
+
+ 1 dict dup /HWResolution [1200 1200] put setpagedevice
+%%EndFeature
+}featurecleanup
+1 setlinecap 1 setlinejoin
+/mysetup [ 72 1200 V 0 0 -72 1200 V 18 824.0003 ] def
+%%EndSetup
+
+userdict begin /ehsave save def end
+%%Page: 1 1
+%%PageBoundingBox: 18 18 577 824
+%%EndPageComments
+%%BeginPageSetup
+/DeviceRGB dup setcolorspace /colspABC exch def
+mysetup concat colspRefresh
+%%EndPageSetup
+
+0 0 0 1 scol 25200 VM?
+11 dict begin
+/FontName /TTA55o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066084a75e287a6b21
+7d5ead11cee92565651ea4f1d618325c70b09fa582d2eca5e5c5deea3be0
+b1103a2db20dd69d0ed4b12a762ee64108282b8d83f8d25f9b0608098b16
+460b06a011c4da3f1e637f7ceebc2c8c5e93750ddf750a5c367617f3ede0
+a6cce86a134ca76a529adbcaeb6269451c7420c09daca772307efbb571ee
+ca3a4465c4c2c3d07e2e4a4d48c613544563cea572138daa08d3f5cf8000
+48b9a9565dad61504d768972a63af0d028d75c4659f9cca991fb4b69a2bd
+6e431e8b0e6a12e9dcc103601275d759cab9eeadc4460c47826081779cba
+93705992909858e7649b160152d7bf68815571de7b523535e3f769594f22
+6903dcade6a25b8812844738e33c7cb6fcaee97f7e0d8603cd3dc3ff06a8
+773abda4287715d753d213526621e7b9bd20a1d7c760b92a1abcd504356e
+4d33dafc982a531bd06a84380c708eb3650d88f88d440ded48d8d3ce7678
+a965d8469f5931134fe32d1a371bfd25667b18e588de27003a6758c36c0e
+a3d1550756abfd014ccbd822aebd05c03521ded77a70cbc5a58c47def657
+79dab92fed044a48697ae300bc4ea5a33620bfcde234c944b214a9c2d562
+d369051015084e6cbf286344a22b3f1003133679dc6962df21405aa70d6b
+725b8f8a37436c2f12a9cf0eb097dbda2dd417b2c2e6eb0ac571bc00b5e5
+93817cce74217395cc079c8222746172fd669a96cb65e23828a2a4b1ff2c
+93428a8c2738b0c42e14b93725d2907b0352a41c50fef53b7a13daeb06b6
+d1f339ee6f2cd8c8fa1154c733b17a2f3ac716ad02da5459abfc16b83ab3
+9fc018038386e7065f68be925cebb5f86a1112a2657cd4c5a741c5e7b520
+be2a0dfcf072d331964cb6065f51531606db141ad04b59b2aea886c83024
+feccd6a378c41dc2bacf17907885e03384773ce94735dc19022f0d171df4
+4322ad309a02ddf3455ba4c822cddaa3b0b0552dbdd354bbd279223a6b54
+a55fd4b0d5570543709083a26e944bce2feb3c09d9ea02a4851b70bf4a24
+7892c3d0bb0483daae9b9a9dc5acd3955a9e213c7ca9b51bc1a3a97eae3e
+67abaf6e26d68e27bbfd9a05b30474a1ef758ed08ae5423f0e430efdf23a
+6149cf11ecd234c9d48aca961f1cdaafa375f9e488605876fc32ad44b2da
+abb0e23a05b2e35412aef4dc77dbae93b2bc47f7b284d5f3e12dbc56a1fa
+971a5c5be62ef903e4f54edd9dddea7c3908546ff5dd4bda3079624a9a22
+9cbb4c84ac0b4f68a19b24a88d2068b8074c21eb35ef43789a3588b32710
+4558187555465bfed7858029c1f7f30f942ae86dff06d1f8f2da8cf8b330
+a1260fb9bb4648d8fccfc12f295164eac890dea6d03091bd25c91db21856
+e1023ae08ea96af37790bcab40398f35122b6287f3e0ba266b563cd5e09b
+117b848b20d986fc6f08d53a5115263e91e84448ce2052e731ba5ac2274a
+3cfe116473da78d88a3980ab570e9d8afe870905da9620ef3c55b859f825
+a7239fd31d4a6a5ea67381a26e68dd48a07d7b2e9396ebd861b3f55e04a2
+b0cb2a2dc1c20e2919cd3981883acea06c47700adc875197fd05cf4dee96
+e3847d7e7cad37e3d62536f36bf7e9b39fed99c8e18564b030417d7c46d7
+73edfc7c97506df2ee5dadc76b03c19d17444c5d529641aa20fd07d50f62
+85d1ea902c58baa75ed6f2236c1904605a89c333160a190d92068c03982a
+8bfc3b3968487f940314478274337863c0e7c797435dab9758bb85240e4a
+59345b67492edfe7a3c00d6626c663bf7577f4012bcdc438fd37e32f5785
+cd124fab0681605098048f77aec3819aab4de3ba73bfea197c50c4284225
+3008b38a77151400eeeaf84ea6d1e8a26f9463baef55137b53a4460000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA55o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+Pscript_WinNT_Incr begin
+%%BeginResource: file Pscript_Text 5.0 0
+/TextInit{TextInitialised? not{/Pscript_Windows_Font & d/TextInitialised? T d
+/fM[1 0 0 1 0 0]d/mFM matrix d/iMat[1 0 0.212557 1 0 0]d}if}b/copyfont{1 ^
+length add dict `{1 ^/FID ne{d}{! !}?}forall & E}b/EncodeDict 11 dict d/bullets
+{{/bullet}repeat}b/rF{3 copyfont @ ` ~ EncodeDict ~ get/Encoding ~ 3 ^/0 eq{&
+/CharStrings known{CharStrings/Eth known not{! EncodeDict/ANSIEncodingOld get}
+if}if}if d E}b/mF{@ 7 1 $ findfont ~{@/Encoding get @ StandardEncoding eq{! T}{
+{ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get
+StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{1 ^ ~ rF}{0 copyfont}? 6 -2 $
+! ! ~ !/pd_charset @ where{~ get 128 eq{@ FDV 2 copy get @ length array copy
+put pd_CoverFCRange}if}{!}? 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 put fM
+makefont Pscript_Windows_Font 3 1 $ put}b/sLT{: Lw -M currentpoint snap M 0 - 0
+Lc K ;}b/xUP null d/yUP null d/uW null d/xSP null d/ySP null d/sW null d/sSU{N
+/uW ~ d/yUP ~ d/xUP ~ d}b/sU{xUP yUP uW sLT}b/sST{N/sW ~ d/ySP ~ d/xSP ~ d}b/sT
+{xSP ySP sW sLT}b/sR{: + R 0 0 M}b/sRxy{: matrix astore concat 0 0 M}b/eR/; , d
+/AddOrigFP{{&/FontInfo known{&/FontInfo get length 6 add}{6}? dict `
+/WinPitchAndFamily ~ d/WinCharSet ~ d/OrigFontType ~ d/OrigFontStyle ~ d
+/OrigFontName ~ d & E/FontInfo ~ d}{! ! ! ! !}?}b/mFS{makefont
+Pscript_Windows_Font 3 1 $ put}b/mF42D{0 copyfont `/FontName ~ d 2 copy ~ sub 1
+add dict `/.notdef 0 d 2 copy 1 ~{@ 3 ^ sub Encoding ~ get ~ d}for & E
+/CharStrings ~ d ! ! & @ E/FontName get ~ definefont}b/mF42{15 dict ` @ 4 1 $
+FontName ~ d/FontType 0 d/FMapType 2 d/FontMatrix[1 0 0 1 0 0]d 1 ^ 254 add 255
+idiv @ array/Encoding ~ d 0 1 3 -1 $ 1 sub{@ Encoding 3 1 $ put}for/FDepVector
+Encoding length array d/CharStrings 2 dict `/.notdef 0 d & E d 0 1 Encoding
+length 1 sub{@ @ 10 lt{! FontName length 1 add string}{100 lt{FontName length 2
+add string}{FontName length 3 add string}?}? @ 0 FontName @ length string cvs
+putinterval @ 3 -1 $ @ 4 1 $ 3 string cvs FontName length ~ putinterval cvn 1 ^
+256 mul @ 255 add 3 -1 $ 4 ^ findfont mF42D FDepVector 3 1 $ put}for & @ E
+/FontName get ~ definefont ! ! ! mF}b/mF_OTF_V{~ ! ~ ! 4 -1 $ ! findfont 2 ^ ~
+definefont fM @ @ 4 6 -1 $ neg put 5 0 put 90 matrix R matrix concatmatrix
+makefont Pscript_Windows_Font 3 1 $ put}b/mF_TTF_V{3{~ !}repeat 3 -1 $ !
+findfont 1 ^ ~ definefont Pscript_Windows_Font 3 1 $ put}b/UmF{L2?
+{Pscript_Windows_Font ~ undef}{!}?}b/UmF42{@ findfont/FDepVector get{/FontName
+get undefinefont}forall undefinefont}b
+%%EndResource
+end reinitialize
+F /F0 0 /0 F /TTA55o00 mF
+/F0S64 F0 [100 0 0 -100 0 0 ] mFS
+F0S64 Ji
+4483 738 M <0102030405060708>[61 30 57 35 61 44 39 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA56o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206689a2c7f31c3571c
+8737a397efefad52089b0a63555d3209d1f3499e5f079b0179d26bd1a32a
+7bf160e83323b466debc925db378cff20fe2ba66a466a4d8e1d2a6615e05
+93a54552fe19a6e69b359af73bdf13ed8417dc9fc8dc3f18af93902e4197
+b017bff7f07009d52cf468581f6a23267d555fa25bef058e1ac4f1bf710a
+4067b25bf8ed2fd76a56a21222c35beb89a1e778c0ca1c10db6fad771b1b
+85771340b80523ff61971323b189e5cd4f8666eabccd1bd2aa658224cc84
+a8652949369fd109f7da580efd0ef48637981305ef31dd2654b818529b95
+81188e00d73117aaf12858765156a2ee8b290fc3b1ad7f8500e5fdf3a784
+bcd5a3d1d8613b692b3fc5d88ba80b961c093aca30c05de21307a42665dd
+567218faaf8e7531b8658b777053fa437955fab3db6bcc47bf877b55850b
+26ca2a1d2ae2f655f6939da944107009b124d97feab6b504be5d1d142fd6
+e7a2e0b1e5c51daf94eb93a43ce9ae7ebc4afba0c6dde00967e5ff15f6e7
+87af9d25ee37e13ab42bd3c6163335570877ec27d2e0b8a87083b7bd4e51
+f5a164659aec160554f0cf11eb2f253844b0a6adc1748c633f16f0ab1885
+3f25a36b4e80c4f742f83568920975e061327bf0a3a77e99b0bf948a068d
+18a4723ea71d7048424ac7b39260fd0717446fc6916cd997742d088d4258
+d4301cef2f3cc8c632d9c0aea984131a59c77315ff1e282c26d745f499cb
+4ad480715a91553e4dd0345774bdac173e3db6dab78f559da4b3ec76c473
+5d24af2afecb96535a5a6c956453f5ed7f00fdfff68025fd6667ffa85b3e
+fc5bafa39cfbdba93d1e9054b5581daa9d37bbfba4f602f3766d61f275aa
+7aa663a22d807494bff21a562eae0507e64bc74dc8d1a2f052b626539a73
+5d1a5832e7a89e886eb4db30ccac44725ef80f8215d2115764ff1dec4cf2
+4bfa1f30c36e3da7b69915d30cde7e205e8a9e780bdacc60f3bb715b00e8
+221669692a26d568e581e1b318334ac68fc818b4aae56f9bcb7c4dc7b749
+a083c67c5df50e02ddf9fbe5ab022acd31204913f32d7a8b47242c2de557
+cb452815625cb986e010e03c757188e99acdcff88b435c229c9fa7e762f4
+2823b4b32bbad7aefa65cca11515b4bd335afea1638e7ef8da3fa7f84626
+25c39e1a2ed855c06cc5f62152d2eafe46b9d11dca17173ec0955b1452af
+531f67fabb234bd217a9aba25d1dcd411f90829c70932706ad453c184066
+f3981f10ec9d212029aec5fdbdbc0ee51d1808c0a7d911c3f039d4f5368d
+0b8f0fbe6b67b888119a7f7bc24558be741e57ea649bf1d03f8a555aa600
+a90a69e471b6d8014264f1e3efa6c74e2a2f694c36bcaa713d16a2279073
+748d853fa087e61ef3db613d9112c861655a99de6a3e4a707c8d450eb68a
+0a6959ce43b5437f338ef9f90a4a2f1611ac157c105a68770e2d00af10df
+882fd6b4f100ecc610515e037112a012e306c2e6b684cc837e815971ed26
+6fcc6fa7f2fb5f83cb06d835731a5034e683ceb10e5402f41eddbd8302e1
+df211165be9eff0f2c296eb85d7ea8c667d86fc1a620504f5158dfb898e4
+72f7c46964e2ceaf85c9a892eff29d25bcc1e5297aa679976919f6c839f3
+d0f54de71a531116f4ed682f527c7f53d5c164517db6f807c1d20d37c022
+c5bd5e6a8da424c3e3d47689fb71fa07290f52db51c37d64b83207fca5a6
+9833ba0c2c3ab8c4d8d171c040863605ee1122166d712ad8c04475341da5
+86b1a501e0dae2d6726daac4b640945778ffc53c567618e47993dbba3ffa
+82fbed8bd9f9eb3f0145870cb80b4429e582595ab561bcbb6dc15c889e3e
+ac002d4fef28fd1b9422c142dfe50ababb2be2f385bd343ae40000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA56o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F1 0 /0 F /TTA56o00 mF
+/F1S75 F1 [117 0 0 -117 0 0 ] mFS
+F1S75 Ji
+4454 869 M <0102030405060708>[70 40 65 39 71 50 47 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA57o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206118c660a9cbf6d8e
+4b94826b96ececa9599a7609dcee16efe1179b77c1b7f46a95a0ab7c17a5
+697836677e08c4eee7e9abfc4070a184ceafafef2726ec95228791901739
+e45003466c73dbc8c43a9c04969dbcfd8dd8cf15a19004cee3a14a49be6e
+b91213a5ee7b0d2d584078f374b74774ed505dcdc8983311c8f8e03e9edb
+9df6842ada6e161ed6a5b011b3f1c7320ded247da6deb3cd17a7ec0f397b
+2415ea072df14348131a70acc1f7c7fbbfd3870b5f41e98d030d413cb08a
+2845f8f1c697e10d8ac363d896f70864686afbee40d592ff2a9e75e3e361
+06444d8ee582de9d325fb883a53b6c68d362eaceeafa7048afa7430ccc45
+572995e53aad2bd2386c32d72665fe9d6964f038c062b01a43757a9ab52e
+2cd852d6146f2232dfa51ead4a2b44b01c5832d54b88ed54c258aed0171b
+b62cc9a580de1309215b9be7403d782f2bf09d2a9edd0f657647fdc4900a
+22c529490ca9a42be2400c61acc09f4db4f7d500159c7a4e4e3ad5d4f112
+0507ba0052d9818e041afe07325886343f03c99f60cc1601307e85a68685
+691790d16bdb7d487a68e6e15d211ebeac2443efbed31a5512d98cacfdff
+e34d638fdb613469cffd654f12c888fb2923930f739325fb86060b4acae3
+c1e5a887d8703feda1156c4d73c0e21813d748154bb54f8c24c1daf24601
+8792c263771d62affb085a58adbf11ab9599cb9dcda256cfe6909ffa616e
+53434e3627483cb07b06d46eef74e18d985429a9e1ab75b933114b58082c
+22cf52f6c86824e52d1ec597c6250f14a100499af35f259be3e328da8e47
+483a34be21f28bc8a3262a528199b63a9791d53121a622873f5e6987e883
+930912abd47d820cb61501acb111bb4b004abc7bd88ab6b8245fb7ed6917
+8a29a82d445ee37eefda5c108e2e5729338da717589f1aaf4bb384d05de0
+f8094fc57f0b38379014638d4e690feb342a7767052f75d630b35a14c266
+846a0a255e7012750b989aec755b5f382e79a9417c6fc1e67dd51ff6db64
+6105edd0f9db04526a56c1dafc9a5c3b2eec3e8b9cc15e6eaf81df891db3
+1e4a1578f50ae8b34485e77abb15bc441dfe8dbe345c23f8378de08d802e
+6b1fd78d7f06217fcaf8737778d271c391cc56f2111f7600b59d683316dd
+dc1c3721f4e1bf984f1c1922b989a852ea83eb7cc9e907fefaffab3777b5
+5b0f4b31ef5995c2e4d1f076a36c6dac984dab1fe574f6c30f9883f3adb3
+8104eba28e817d1c8845c2e339509afb6916f2e74a26335df0f2389652cb
+b97a144bd0b34d282501f1ac84ec15b8ab7208be238220a6d45443928c3e
+678a651ed615ab2419886ecb8170bca1de483c4bf773a2ace74003476dd4
+9cfa70f78ddb9b2d832b6da5cde76b8286c581c6e0855333f24c4a849b3b
+0591099e36178aecee54d3a7d3aee7c2af5c84555f6a2b6d0090938f6a48
+177c4e5d34c0287c6b8c4a0dd59ad7ed951e296d122a8f174da1497fb317
+2426125f25cb184a7e89665539ecbc53e89416e28a146b933ab891ce7291
+db110571cc559ac79a8f06534d3aeb78af1fd90c1a62ee315df8e9ea58e1
+3003e4784c9354d1de15ee86207c70f572629fa6b62cad886aa18a39c2e9
+f2dd802c49542b085b88afcaae2ea3b3aca61ba5ffd9f4e3d2c1e9bdd3cf
+d5669196623887a7a2016ef55d22f6b5d791e1b787bd8c234d2c715ce9b4
+0bcd0dee3a9ddcbb71bb1ddbf2a76cd4fb4f0d7d2b786a28905989ae899a
+669a081cb20699ac39b91b6fc7a98870cabd07f2d54d666e66bf182334a9
+236157ad4379069afadc84bc9438bf76ca41bd153d38f64b5af32421d933
+0f54c7855f00031060c388dc4ef54a67ef866969cf47a6e684367c794f0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA57o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F2 0 /0 F /TTA57o00 mF
+/F2S85 F2 [133 0 0 -133 0 0 ] mFS
+F2S85 Ji
+4424 1019 M <0102030405060708>[80 45 74 45 81 59 51 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA58o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066a6b46d2cf1728ab
+cda123ebf188b9a6b8b24cbe57d2fdc0fb1465e42a4a57f1b5de50d12264
+c2c52885376894a97a3c08ba53166de08d794b16c034e3260814dc36d7d5
+bd49c3cd5a16d882e9a1adc9ffc8fa13e3d736dd14a0f59c0e23b738cd57
+789aa9c1769a2a0780fc2c19fc708dfc6073d95f7be838edfc03cbae144a
+378d7cf48890570309de33ee5d7cb65a04e574605763d16439afa2291a11
+03067d6228112b327dcf9ec9ffb4b4c5842fb3d130ce409f5838ceea1dfe
+56bf53695ba7e626b7e902e190dea669301951796a841a0bedb5e51d3c09
+3e882413436423ef296308bdbd1ac60b84bc70376ea86c1b07062f7a204c
+573da34342995ae05ec7dbf7853f2e5f9b9842c8ec74fa1d38c508ef3e13
+c69f19b5dfaa844e9cc5e3d791f36fae0adfc6a6e90069792294e2170e4d
+ac265f7c0fdb3301ac4b0ff5ec185b21826fc4ac759a856acb923365268c
+2939a33c5bb257385b099f89737dc9f92a81ffee9fd40483dc6e9e1918ce
+cb7dc0141b3fb52a6f9326e075efd4c5296c39718ff35463da3ad067d02a
+96d8b41a02f84adff5bb4f6950fbca87a3db27261f99d049c78ce3d75510
+788b537af73800fc21501b72ac3cfea52b9d86946fa2d807b50640efc784
+9492f277cbb4a451bccf504badbb0f5e0a8f6bb116d8c16ec3522fcaa2e1
+466cdd96ab803f47d4c8c206b5676909ece2e6db8dd88afacd31b9f5a670
+5daa6dbf84d3f053ba4261a8d3707311fa9d46bda5ae891aea4ad6b70360
+08628f733151a4f2262aadabac443b4dce72ce55c62968cc0205bca2e296
+41c53ad39c339efcc6ff63a56440b6109c071289a18024596d0840bc634b
+fd0076c39db41e96443f89d1d79f6c796b3df419f8d19b9abebd474cba56
+f1b0be6e75199399666b1e5c297418a5e05575a85f4f596615ffdb47ea6f
+79933ed05fba1911a87ec7985fe0acc52c074888943175fa52470b364398
+3a99eead59369a00556ee687c9ceed2e8a95d9dc1790034d2fa6a19919d1
+a43f10bcae5e14ef4ad036c7f44cb63f99f9a2cf4970b5760fa073a6c970
+eefd0ce5d2fa46af1b542149afe26804a834ac0a7f727ef8649d6af07667
+2724e5f7b6b25744e674bf9a5086196b7834df64bc3bcab2cd70a1fcc492
+b3e7afc80f72e3a84aa5d3e5c3c902d6032f41da6ae5e7340944e1f4bfb6
+85fc826248d897cff0897e4c590258f8df6c84c891f3b46abeabe0411cac
+70b9abd20ef4324819bc49b28fb3df7e25381d9d21c276fc908aaabdc532
+6621c5cdcb3dc3dfa758584a9b8f86e7070ade12bfdd54b1f56947eb98a5
+a46745809b0edafabd19192517147c68d4dcd55b2bcd924955d09d8a363c
+596a4e5f0b18e23813e70d5231def676dff793ad0f4af3ca4b279d5276c2
+adcdb87b00531a4ebeed39d836f09861386999c622bffdd5df501c7e7844
+6b559037fce2e95221391d4223368d705bb40bbe7d1a7a7f15c49686a9fe
+418d72a2b9fff5bcd68b058633580ea72709a3d95779a06821f56d70febb
+a767246ff6c567e7d4f3cf63c69551a37652aced5441e9e5df350d931420
+916a69ef9a880108df611eec29d502d08b073b78271c1b151774392639b7
+5cdbdc2045bd3a6f81086d8500e50d195207f3b4c289539cebaa82ee9d83
+05552788b36623ab12f103176a73856bfa4e6be9cc9897fc305b86829b30
+2c0b7287e514ef5e9b10733ed95ecf1b51121b9ad99f9becada0c85c7c1d
+c8fe8e896c083bf9daebb69e529af516c09562c6bc8b50eef72f33b81e7f
+08a88ff5be58bfccbd42f96a582ff3d3ba11218f82d121040d0fc501dd3c
+fef1e5d184c959108f096bbd543980458a682ea0ad0b62ba31ceb3560000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA58o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F3 0 /0 F /TTA58o00 mF
+/F3S96 F3 [150 0 0 -150 0 0 ] mFS
+F3S96 Ji
+4395 1188 M <0102030405060708>[92 50 83 50 91 68 57 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA59o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22061485d7d0c2a0dbf2
+930a8f5918a6862051241b27b50bcdabfaf3447ec6b9abe16f841c5bb191
+f22797fcdf6a8c8ff86f049be5c0235027cd0afec26ca4ec8f456e5fdca3
+48ec1263f3379ff320dac2de3bf289d44a586dbc7321cc21f6970a30ec04
+4c81bfe4cc4aad0c34c941050be71d47d6b71b17cdc52f5f4929234df4ce
+8e8dda53ba1756d68ff2998920764c753c787ce2aad2b7318beedaf154cd
+ed062e47828b15606957a37f2ed31c497b84f23af55a4be8ec19ec290bc0
+8b8a36d4f76ed450f2b6bd24d1ab0cb9733ded98d13d121ed6e61bea7f25
+535d7bb636e41d1e6c85066ad25a4129078090ff449da4901c333fff5a65
+3b109d418559dfcad8a3b95343e32949626ae79e1b9b76f34e85f8ad1d02
+45224ae5469e6de5f8ebe918e4243c58795f146dcd8fdb345ced4febbb37
+49447b9005b7e9da42f5d30c4760fc2fc25f01bd6cabee8635bc3b354b51
+4640db9cc5a1ffc3b043e11b946b86dba33ae4d62a6868a0563918626a9c
+ab48b3a26ac63b32314dd3e73ffdb937da9fd8641213b6e421733bc26d75
+4436a44bb0374923869ba9d9e3ad5d720963b321d55c8a69622f6e513484
+cb56406691e8ebff011186c94bda3ae6d73b1ee31e0ab7a00d1ddc0a0add
+9162daa7d98b701e411ef69cba5bab29143d51a6621fdbbc6c2786715312
+6abed7ad07ee21ea4aa2604ae9801151304692738429383a6be9e2420d35
+36706494a215bbc41a8b0720608803753eb09b8da2232ed01b25984e1ad2
+2ced31325125ae4f61f6c40c003e081c25e1648f36c734b9206e82780ff2
+d6890dfdba56a76379cb87ccd6a207a3e96ea78cf156ef86936224d070be
+a4af0e4c33a1e9016db6a04374dfefe1190ff69f20c89991541c22cbeae9
+d716460f215a5e3cf1b3da78cd2fa5c732024001c91382dfb9cc28268f71
+6097460b697b27d156c66591da3701476c10f4a699da79d411353d984a44
+335227370be063f904c2ed3046c105d07d009f5586a254627bc02cc60086
+5ce2c25952b4ed43a867b1e4de7312dade167ead9739792765d1987c094b
+611be118f5392f62b207aebe1855cf31d6cd93e85627a1314bfe1c99231b
+3f5fcc8cdc99e8c843f553f264d4a676e700104c4f98640d95f912bb5c2f
+21d3fd8ef0fa3759139bf3e24238c7571aae8f3db149822f24233c25d03b
+e95c19deb5e0fb30f5ce473f81cfbcf25a3998b511c61e1c788aa5653bca
+a78621a572a576df9bd271e38ad6de59995df949aa857ec90ddaaa3972bc
+abecf967125d88bf8cd80f5864010b927ee8a77909505e8a0d84ac430ac7
+7c3568384caf36adccc0b4c083fa19dc61f5a35f9f51adef83a1e4410507
+9f1238fe26633516e27aa116a1ed20889fc23c2e803a34d17ca4a328b654
+df8bf4312ed207b24abe6b205f401b2239a29154f251a6ef7a5a8481640c
+c92819cd1aec2d6cec4964d9230d8011a9908efe0a14f825cf3bfbe84d7f
+bbfb539c127c84611cb20e0a59301a13b4a5d279c763a2f7a718f99073ae
+5f18d7c7e8c9d8f4baa8ef33941cf41620bab2ebf6b55d781ec3b2bf7157
+74e3ec25418d93decaf162f96cdf0d6f96e81997358c0e1cab62af3bcb24
+86904a0858a07eabd803e5379b03c650af98500509eadef2b1afcc03dc34
+e669c1b996554c6ef76b1a40f130d9d342411fb9b5ce422e71166545e4c6
+70a2abdaf7a4fd819d3ea3c501917eca68803f09af97fc95618a36048ad9
+93647725ffd4bbc4fbbda3258b92047db2c9309e51efc433257e23c84274
+90d257dfb2ce98ad682743094f1ea6342930f3b9dcda8ce2d665e08f7aa3
+fa4df153a7da21f64c2eeb74351ae8cea832987cf187ad483d67900000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA59o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F4 0 /0 F /TTA59o00 mF
+/F4SA7 F4 [167 0 0 -167 0 0 ] mFS
+F4SA7 Ji
+4365 1376 M <0102030405060708>[101 57 92 56 102 74 65 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Ao00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066ef7ec7adad4e5d3
+8b2e433d08a0dc640353a02ece412a4b09d5e6d3465f6bc5e74216dd072f
+3e9e3f8ddd853f280cb37ec60c99e5ebfc757e7be973819b39ff8196497e
+472a63fdfc05e286e46365bf4d55ef237a062467084640c98e5d0dbea864
+ebd8683f644b0d7c6923a28af309cb98a3be6e046ced7cb900f4631b119b
+65be6103be27edf87e4f495d1753cd8bd59e99bbebd2e1d600fe9e2d5ae7
+db029e32176da132e72f490d02728cdfd28b8be9472520c524363b527f9d
+91b3224e223789c3aa5422aaade5dd21796ca05e253143fddcea8d000ef4
+bbfa338c920b5c025a3475b44b9ebf0dec8b8bc9fd1a4f4328f1dcfc041b
+902792f9477fda833b0962748e3261db32d775f63eca2c99bd863edb9c3a
+e5e06bc0886cb9de7e91161055143943d5b9ffe3d69894eff59942c6e6bd
+14f1764dff5ac5f1b0bb60812e6ef1f4935a5443092a15cf32a4b18e21e9
+aa333e356f31f450f888aa11c25480a796202faf03196243a7fa68bac329
+1dbb3b0d7ad4c7f80f66f8462e44d066c558c16e377fe342997ea31c3c00
+c0903389a580aa761d9ae539521a4cc09f2cb49232385ffcc7126415f498
+5289dd79d836c4d11ac344119b7755cb406f12c2bc0c6abd598754be166c
+9e62e0c1f0c55e8e205273db43574b4ce35677439575aa7cce8b1860f212
+3803d6a99b5f928e00536bdb35d7f77b9caac62936e902762921648e9189
+4586de6c61e572732b0d097683bdf4e2f7a0b9332efd48b15de3d934c324
+6d96fd969ba4abcef9b28563b45c266aeac1782cfe4ef1d3baac42796450
+3e0ecef9b80d20a51c757eb8eb8b4cb3832f1bdaf75d336748a3bf5746b5
+48d93f3a13fbd0e29d974ad5991ef5e14ee409d385d59d83fb9413950468
+ea2b09a608b72a0b7bd60ecb9814cce7d920b22d387e867a23cebcf54958
+ac985c6433b3a65b5778543daea52a9beae38bc838995895bb2262772b07
+7a4e0cdb87633287eb320b56d652895b12f39927dd54104579c497fd1c47
+25bc223e54ce3fcaa22faca351346c4979209419ec33264b1578034461b9
+d2b2359f310d3bb0578f30e5b729009d6372fcb1d6430e282de232363d67
+5eac59c4a6704836aa6e274473d2f6220a627c9ab5747fc3115ac948180f
+549b305bcc2895ca1de60aea55332b2b180b36831ab380b7c2f421ca5689
+7b173ac0ceb1e4198cb47b8c626057eb4319bb9b2505f3a6c9f4638f14e3
+f07c1d915d490174d7b6deccda599a3aa67af1adb52192c2b0591f52ae78
+78527f69baf10ad6bea8d1d50898e4f5795717bcc90cd5f9078caeea6760
+ff12a1ca76439be0385cdc3c7af7905a904828638c51121648265d99c5b0
+16781fd791060dcfe4a611b15e5c42e92c1a31fd40f8873c79b438041899
+50070799a04d114ac98dbadf46a8023a4413aad03c2546cda40fdff6afd3
+70572d90a7709336daa37491ef98c376a836250a37818621b0ab50401e5c
+137004bda09e99ab2726dea1b4b17afc11a04c20cbb9e12f70bc3cfe4304
+83bba0e3079cdc0a27ebffd6701cb4908f0e2afc384d7a9ef77170216a6c
+acfb8842c9c700734705a3828d0f43b2bc2d378b16678b9daa7e20a62217
+5e41ce1d9a669d4a4accf73231cb66c4671642c6bc2a5cfeb84e58d51344
+3e4ee31aa83dad85b034293d42f390cb9f6949729a019ef973fd4d2a5bde
+aa3b3d2d41de3daf5b11c02eca9ae7441215e0c44319c090873208fa32f3
+caf24b4b92d67e744e8234207efaf0cd03066ec4d84ac8e0f71138fa5ecf
+d4a87a60a2b5be428d95e0fe40147782a1cb875c53e84ba042387a35a687
+e9e02f0a7a934069d2dc97971f43b809d0a358a5a92991cc279b4d0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Ao00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F5 0 /0 F /TTA5Ao00 mF
+/F5SAF F5 [175 0 0 -175 0 0 ] mFS
+F5SAF Ji
+4350 1576 M <0102030405060708>[107 58 97 59 107 77 69 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Bo00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066baeb5dbea4fa9a3
+71fbf5607f4335673d842c1fb7de714eadcb044948b7458d4cd4d22f303c
+51e1270d84994826f6a1a17ea11bc730d40426ace8a29926f3e4fc00e701
+a90ee9f5cc95cf95beb409d15d258fa32a3a904d0f959273e6eda6f0df7d
+08ac5dc01d384b162e5ca1aa8a3b1f45c0ed44717a8b1d92a54ad496aa6d
+86c578d27a9aa506dcbe25e7181a98e99c355dd06cac8f9f8c2edc1a6278
+1b861b29d71b1ead02638aa086f77942c6cae5fa9678321e48be7a95b860
+56566e58dacbfcaa51dcc09cb1f7c4cc3f34dcbd2f5e33dfe4222fd8b18c
+36bf74b5d48df7344cd4cf4972bc08ffa6f62ca6bc4b0eee26ece563b33f
+5ca6f0c377d134cd7f31c4802763cdd756c01b5ec85fb2a1a641d7aee478
+26402f527ffe707d36f6f6f90c180dd922dcef1c5cc10cd1d26c916f8362
+190f7100cd97d6feca5604bc997f8cd99b7c0b44a5c4660d832949eaa19b
+bf9aa919275db8306def142a4cbdf5689c190b4b9e9d510a319270245dc2
+16e5f52217d490e714fed8e83d29d12c55f7f01e2ad235fd852f2ea19ddf
+ebc7ac1d32552815089539f04b30e775082de5a863ff0365f5607b7bfac8
+2887ef522be1490075f821f4d5ef5ece2687458ac2e87c1d503fbf3795b9
+47ae1ba5d480635a873473d7551abebec664e312e7b242f60c471eeb4e88
+b86d6d27d6d71a55196e112a1bad2d00f428d7258ecf7541a70894b2c812
+db5b402a617cb11d25510f8ed3109a74271835139e732abe651d81c5cfa3
+52703ee63da6b2dcf5929a3724c661f23e316c04cd73a3a2072f56390b79
+a7500ce8575d6fdd9221b5347ec45bb7759729a220a37b6144b41fdd5b3f
+12d49a9caf57421edada1a5752f216108d2c32e40f5cab75fae02f7f3b27
+2834e35707f4788f3c70190d486b5b5baa19ad85e3f694abed01aeab1f05
+2a7b0b54b2531eb9cb1ef43e53eeb0f5969812ca7fec824a63bd8fbfc78f
+46adcf490959cdaa80dafecbc397b558f027a97de9c3fb9b55ed5fde50ae
+324323479715e14a95a4c955116c967c7bda2119923fb71f1f1021a74f1d
+69d17e1ab09ec97586d63f267583c43b22d528f2b57c25c53e4e0b07bf8e
+25bbbf3477821da145bd30c01373afff39e2baef768e0425857900d83ee1
+dd635c2f317258a2fab349a733300a24ada26a77464995e7e0bf2c24de2f
+cd756fba3610d79b0f69be5682362fdb0dd6d159b27578deeea4b892db05
+55f50cfc5390f24fc67ddd9035f72675329677af64cff7b051a1a34288a4
+9ce551925ab6ec27b552fc677d566a2f18c75ad8002b2ffa6b0ec56d20fb
+8f27087eb5ba673deedbb7f3e588c740f85682d3ea2ab618978f7037f659
+7da162957e953a97236acbbd757ac4b73bd8e60d34d178102477c0574175
+28662b96fbecd33dd786db3773f3771459fd92b1e25a149601d8fdbd7a6c
+f1de6aa1a61da61494f8c7a8f8df88b09c72a9d70a51ef10704a324e8756
+5fecf5c04e72193933506c7a0b3d55a6d59e2c6a4ec96ec0070deeaf6abb
+50f0d29fa90b9523fe30374b73444bf11dfa093827100f92fa75909a7fa1
+107d966ea3f4ce988cd246845975e87332e5e277e693f0588f2ca55c1e06
+8b1a6b5e2914a40743a964c92356393c742272e9eec81ea0fd77d8ddf90d
+2a48f011233c6b0d65a1398bc12459cfc161bc15c22ff325a0aa41b29d3a
+0c652a52b449502683b5a11c5a5072af5aab99ca2e7b5be106b03f066826
+5b2bd317ea19358bb92fdad766daad1cf9cbc8c81d33da27c41b0be7c252
+378efa2dd77d639f6eeab6e738ed470c5a9c2ff96956aab708cf0129f182
+19a5599cef850ffd465071e2d44b2347d401f82fade624e4dee38b0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Bo00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F6 0 /0 F /TTA5Bo00 mF
+/F6SB7 F6 [183 0 0 -183 0 0 ] mFS
+F6SB7 Ji
+4336 1785 M <0102030405060708>[112 62 101 61 113 80 71 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Co00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb220616fc35b8e91f4411
+2ea3e18d75348a1b570035ada3ca7681f0d5845dd9dfec3cd6f29f9d0c50
+ad262fb16bc30f7723e63f783c20889eb90751dc023bfb4ede4165eb655b
+6163541eb0a9d146f382dfcad00d5398d12bb905725708a55921dbcfafc8
+fffddc36649a4d606ea08acc886b1ec07e6d5790eb9723c3b8c8bd327929
+5acebb70c048f1bb55874dd9bbc0815f7617c4031ef813c968dfb3b69a59
+12039471551dfc475d116d9f62ab9713c351ff48ffa5a9b6c0602990b34a
+985e118ccf9b853ec6313649c6ddf17b10ef6ca51360a0c19710daa58695
+4c14858082820bb3985a8117932627679a0ff497e1724d5b0f0994bca28c
+3d9b57615a601a25cfb1496187e3697596c87670600397a0b03d87cfe888
+e5ae783f0ac78a0198392285b47056cd96dad15fa8a95954b0d04fb1cc64
+c39402320e2f365dd118708e1c8f9c0019f4ca95d3a33bbc5fc700cb2806
+02b2b4de764f0a55eebed1277f9b5c71caf3f119ca24285d2f736386aa92
+a2ca367d9a6b3201f578278a52ad274c4478fea87dc93b97df73cdcc7a2b
+b55205f2c859608e06cb37bdf8f2be8e75cf505eb0e77781e321de98f410
+bfb42b5fa970a743ecf7ac2a3d8e49c32db746f11b0c52f823e249843257
+48412382bef94b64cddc4841d3c8214a8e56aec81c12e9d5f456d1641c36
+c477ffc722b09b1b8fa301f977ba6abc218f2fbd39419917d82bdcc1a5bc
+4f781865006f56faab8321f0e3c9b4e358a871dde55e36c46a402005856f
+4f83816a420730bd83e5d894fad1879bf93f10325a8830777decaa17d3aa
+1493a38cc7684235778bdbdb719f1297b854156d101885b96e98b7222c1b
+fc11cfc18c25b03a173b05d53c5f4385aab31a2864f702402ad84ca18eed
+c09937a2b31097d8b07ae55b8d1038a7ce9b3c70b6fc88db42d0bda799fa
+fd17d6868c14ac40abd445c91f03b5b3a13367024e0edd28408aeb40e05e
+732a268432a78cc7095b6807fb6d97562db7fb82b53277cc12062b50b480
+33ed74b2b39e9f35727a6cb20a7b35c92be650a1bc35252c7761aa55c6c8
+8442073108bcdb015fa7d8fabc5ea6ff2bd0c372403feb12da4ef9adf970
+6efc84b2a0b531345ae34d9d3699feb3675889d6ed757255a911d766f0a4
+dd34c57301bbe1265e3883c7697ff7116c5a9cff89e8bf96cb16513a1e86
+f6b1239f76daddfa3ed680db35a2881d3fa08b9ba64f09d1971958ce62ee
+de4a1c4f9e69ee0674dbe1ec200a7d1d76c52ad7f5025d5f812273f18ff8
+6af9f5fa5bff055c25c590e50fe8eddb3feb6ccd8e0d9fd0ac0916658f5c
+0a618bf4cfdaf2d1451f29869de7771b66a4909f7139825334d97db11f15
+a9359cc2d5012c57fc9122b248da66fcd042370313d1729e9ae288203470
+1b92f8e155c72aa48e38f01dd3651f516effdfc5bb75d612072f7d02aafc
+86b606522e2a5f952f9c62762b208b30be4b59130b141db083f35a9d315a
+0578a98ed4d0ecb7c5bbb7ea94d5f66568e12c754a1d91c199c8ccb95299
+c4bc3e6e2e3ffd9384e9bc392900389dda064e849fedb5d38bdddfafd0fc
+7ebaead7941293d3f85ab533a79fcc2286dce859b663142ce0b16a99750b
+e0a02cca5a6e4cd7e0d46fd1fac9c833bbbf33d307c3741f54ab210bb4e2
+ba0077d05abcdc9334e07f77dff7cf6515f2418dc5a93043d4777ac91af8
+f4cf77a24e14042d3046797038b4fbfd7d430563657ac56608c6f98b3769
+2b75a71bdc4781c16bf3f738a1d3ffbd5ae9e99f3c691ea52f311236b669
+d7d0689268d10d2d90ca9d06b88097b2d72ea20c75109f87768b2d489e67
+2330db7f78701b56cfa5e5b02eb6375b2df4e612630504bff664125a0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Co00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F7 0 /0 F /TTA5Co00 mF
+/F7SC8 F7 [200 0 0 -200 0 0 ] mFS
+F7SC8 Ji
+4306 2012 M <0102030405060708>[122 67 111 67 122 89 77 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Do00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066cadc506161c23a7
+07cdaf743386c9822f1c3d4f1494deef8094aecfa106d5bdcefc2934aeea
+6c4639fba0af1e13157a96336c8af33c57c65e0fcefc246506268822e518
+cddff1357a1dac1553af2b7cc7c807b2848594a4ec5eb543f2401ec4a3aa
+5c3198e4b670c8cdbca93390ddfde52b91b320ee408da449cdbbe4b8a5a6
+9160a65140185ee849eac0bbedbac799f4d0a8bcbb61f53c0a60fa06e396
+e2db21c286f13dee961e86c199cb40f7b489412d0e75822c3ebe0db17eed
+df59427be23998af0d97ec9f6e15cf937e9aeeeebc5ac671d2ae3d35819b
+1d21b24d78783e94bd21c2e3f61c52b62d334162bb9a14504c229f656c89
+872fe3863d2e9b6ab97a470713023e22e8f9517cc057c317547c546577c2
+9a4a39657b10568ba08dd8579b011d4bf5ab42a847852edc43d265df501f
+05326c3804b1fad0ffa31e7629b54edce59163ad88f88804675e68747d16
+6286211a0f76666185aec30ca45784112a93bcf0ed930a554114ea2958dc
+be58bb93a657e161193a0114f2d16b2ac7418cbecdddd7b9afc10673c246
+c814cfbbc49e88044ac141baad415809ee06676d000c2c7ac663be935b1f
+04bdf1e27fe903d292f49ed28429a6a8750e734895bd4e681f33f7e0e615
+78282e452fdefdcbd93b89248f3172b927b1563a4b580f303f294847beba
+b5b8ab0693692817badaa8d4ba9bd3a17c5b0db7f8c36f52f388261cd797
+54b5bb730849e083e1cbc9a0c7c4597bc0dad77a79d35fc6f4e0ea162d68
+4fe21b3223dfa8df1137cb37a8bad1f221f869428f779bafa584bce859a3
+646ab50caa39997b3fc3ebedef9109e7b32efd180b3633b5cc562cdd7ee9
+68789ac1dc8a27261c09aaf09f69c61ee63c380913bf4baf6944d8166a5b
+54b8ffdf78fe6875854d17898d53f0fddfe5f913e41f9657452f7c93805a
+ecc771b74975813179e3a181d2f7268c6adfb1c923067e737fca7bd5c060
+c67755410ec3faf0265d0483f5c66a31bdb89ae87239d3bd8bd49b4be079
+2565bd4da3eeacab81135a4fe96733e47faec3fc5c1165e25a5f5c19e24e
+589a1ba2cb960ab30bf2cbf442b12c3a75d752b8cc667aeb891f34329e41
+e6a35cd058c9a5d8d78a6bd7e9687606108239def2530636fa2a02d3091d
+8abd4583482272bf522b3ed2eb217f1c209621fd8eab075683819b077977
+ddc380731182d2d34bffc8f253ba4cdec4c054bc489682c39287cb8e3ebb
+1c49c50617994d8169ce00e67f617d5ebf7a7c5390a3096424bb3854294d
+a66805215beb03aa892ba9019872ac2c3cdd408b7a3f4d9ad3af3cdaa284
+bba725d0d16636c723507f53258a97d77cc8f9dae0eaf1dcb7a6f58c0bce
+5339f3cf6c1e85164624363e4b267f471170d417d307080d11dded682cce
+378cbcf8fb1f98a78960b4a37c917346fe6da893d512ad58b1f33ec6ee88
+201aadcf068877609c68922e6eaf21524367ed9cb711f1b4d225ba8c6302
+dcd23f934979a2cdf99e5f99fa661adc0117169415a20660498de8046bde
+1bf97171d5a06cf380771f4b0356847bf466fbc7ae3998fc87ccfb05e624
+1179a30746391da63a4e2a19a38680c7a5e276ca15712c7eb2afe8430882
+eabd46f019c882f82fbbd86195810899a0c676b9f322309d945cf5010cb5
+bbce1a15392d78c20880a4edf30404c1005656b0bd33dc31b1624ade0b5e
+ebc291cbed766f163e47554522396d59734bc0bdc46f207b9e9b62b94a14
+8039b5a3ed8720863aa1d0774c2738767018cc6469e35aa9f2ae6409842a
+8d18ecc86eb37249e60b6056542f605e123c1276e606b6ca246111b2b5ab
+1ee684f1c915e1b2a8b783e7138f7bbc48542315461ddf686d17970000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Do00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F8 0 /0 F /TTA5Do00 mF
+/F8SD9 F8 [217 0 0 -217 0 0 ] mFS
+F8SD9 Ji
+4277 2258 M <0102030405060708>[133 71 121 73 132 96 84 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Eo00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206689a2c7f31f86d83
+ec215dc15546bab381b4f0b8cf598b3de4c3de3f6a106e539cdb0f64c685
+e8ce98b2286105e954732793d04f8c77bb313fbaa17485daeba6e5c4f6f5
+d01696085413cf6d9ad5a061c2eeb124bbb8b99bc879c0521034f10efed3
+37a6d5850e031ec2caee80822c71fef24a88e5787fe50f5de916d2d6a3a2
+e380f8898b9210c3a198ca0f76bbedf8fded493125b69a924475869668fc
+861cfc389477f13d02bb3d0d067c2e164b56613d248570c4482ef87c54ef
+4d4d50dee5f62984f8581aa288b09bf7e231e844c7f50e25f78f7e6ed700
+18dc53b8a138090dc053e18ddfbff6cd6d885a3703a59e298001310379f9
+be660008ea82c80f1447f0a7945d0745faad0b0830ff465a65c587c5e996
+95495f5911387ba8aca425ea35b80e043de79bce76252042b0cde47cf891
+4efa923553835ff41a7b627bf6123dc1f6206fb88246c428e4983733f82c
+fcb24f89ed1b6607ec6726f43950e1a20ae46bc4181f0abe0ea39caf020a
+6119f6355ecb87c1b45b72b4af80d27a3801a6e1fb792c77fe9db23d751a
+0c0c62f748e06896b179fdcbbfb2a8ee05fb52f687f43a5c018505f0649b
+5f257546b1037a8de164aef8fa06294cd4f6e058aa2f040c3cc1e6440341
+4fd43acafd408d15070730b8d5a49a1f524d57a23730fd79727c21e905f5
+a653c7bedeeeaeba7382fb9cc6b703f29f89ac4da5f8721c0752c884473e
+c3f30e16b7eda908f68fc34f96f25faa76585ac41846682c52e2ff9f40d3
+3a61fddd2ec477641be661f5bc7e51018abde3e7f3dca6c64425c9025bbf
+7577dc758aaeb5e3aeddc592c365d50985ed3d387f80c73b28185997ae1b
+2e1a77b025b36f91df6ad12be854fe79727317fcc10fcff99549233530bc
+22beaca0960ba7e2c092be4e9af0f630b6e7f22fd0d30c1f21cec9418066
+eb5e81abbdcfe85696bfec4cc7746886880c04eb0b333a42fc1f077dd7cf
+7d4d808e690a15cfea75a4998c592c52967a33da837ae0569142330069fe
+babc011d29826fcdd1d64a2cf3112b20d98aa16e1b4d1574bd8e124bd7f0
+169c402f37a7cfc53921608cdecfd58447b3b98447edcbf69e5c5ddd2c8d
+cd73f297c5901858a9552c530528872bbaf2dd6215fe304cb767529af72c
+67b145b0ac5b1308c855a307bd78548fcfcaa6eef3057280ae00a90e0dd6
+fe6c0b5d68783be52dac797c2cb6e7243331d7e9ebab2beb54d02a87571a
+43fda71b3e15f97b5c965bbce78ec8e6efff04ca44fe2c4aaee2d981f02d
+af6c1a696b6c86fd2b8ebfbe5b3dc92813be6ce95a41134640e27643a851
+55ca711bad0cb9a26482e5a8f6ca3b067e43ad332c21c148b0ed92d55bae
+9ef93397577adc025f36f6ae10d59caf488ee9b6d6bbe3c55b6447c7cb7a
+d26e7ebdb2992907b685a7e703d3024baa3b0787e89de76fea8b46d2b473
+d6733b40d4e41923d6b923b190103fdabcedd8e701ccb843a760aeea1096
+212590c5a281a108951ea4cdbc2e6c7114724b5c1021d593605618a4d7fa
+df5bf17a2e5f267bb62ae421b46d3edb9f8856438664637da5bfc861128f
+c5639ea03dc7290c690436bce7820156c0be99100274f97054877a573ddc
+9c0be5dfd7cef8f7c8aba68ac05b9ce1b81180c001bd7841349c9587ba21
+d9b158599b672a7c42238e7eef628da1a88b539886a6b9f6c241a53ff44c
+adadc01d0ef7469509c740afb7fee4eb2a75ef8e78072229b90cd292fa96
+6f94bf659328d23cc7f22253a06cd3b0d2db36646f58084a622904a66fe7
+9b6260f400bac49be0e74934869dca984af60e898905b07ce5e37e729c0e
+5806c2b93ef7a09edbaaec50e5e49e7f9673a9f463df5eb51feb0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Eo00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F9 0 /0 F /TTA5Eo00 mF
+/F9SE9 F9 [233 0 0 -233 0 0 ] mFS
+F9SE9 Ji
+4247 2523 M <0102030405060708>[142 78 129 79 141 104 90 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Fo00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22061485d7d0c2a6275d
+8da901d4c90b764c07b7b55a308444fa1e7a528df157b5f3a3c98718c51b
+b8405ef3fea9ef7db06034e263d395c70f718a4b588bc1590b987df93e7a
+72c230091e534b07a2ee7b4cf1641847bfc6d3721c80ad7d67f7b7e7952f
+5297e4c939a240bef9367734ebdb25f95d2e914d53ed710482d6c0ef0e7e
+a5d569ebc4ead0daec244491f71d5c6c5279d1c62599dfcd2e5b8f1a98c0
+883cd198bd7c7cb5d8583f6eb5bdadc1509f1e07e8a60fdd5ac1f91fa8bc
+bd3db3de11f798d327c54f9bab256e9b64ee974c431c601574ba9f16f705
+f849859f9b81fe926d3ad64dc715c4fcdd03547669c72c29ff6d9db7ba0c
+9c8eb6ad87836223789881c8c054a785683e679ff620f747733cf8a65f41
+f41804649ac29633168ee70c441958e03b3d857aef37fe2f4b61a4356640
+8d39bf06df627a1cafbec8c90cd5d4b9e17ddbc0ef8b838887991521beec
+7745da33772b5f1dfee80a89ef3058868878ef1abe7131a1a337abf0c241
+12546185d043c9a89bc0790368cab51d11bde95d9f893797a1bf7da358eb
+b681c63b922a074a5be052b91f0bfc31090ca4d6f266f70f4f4c27ff2774
+475b69301570f64e2a775e961246ba51d1ef37716621dce50b155078fb60
+cd81d9c133641423778e3f899bb102dfc5f28f20894bf5850e57425324a5
+7adf1ee9ed235f80dd53251e24d53992b184dea9bd5644be6d3c7128f61b
+469e5b03866cf5d090fb847d437ca106ceeffd41a20c2feb6f018fe69b81
+d2e1bf7a084a6c95ea8f102ad81b5e02812d7c36395f11ceb3fac49adfe3
+f918e5bcefe4b1425c469dd7e3c57de7a680d6999078510cdf1a2741efaa
+af2995071314fb018448d7dcb5109391cbc69507d206d6eaf1cf74b28403
+00aaf32adeddf5070b80f9831083be56864cb84d7c80f60df6d1f534dd88
+90245a330c13b34b0b487f7c126489e4faebade7b1d12ffc058bbf48baff
+67fb0722a453db48756058436e565969dec48ad212ff410e07d51fa23d54
+f180e530efae113004f42d300251c04eda6317f01db9cc54808622ddb708
+2e4238aed2e5aabad836d08a599bb57a43faef2e1f3e4cabedd2dec9843c
+2eec92fafe755341b5c2b0aa3fa058da19b178a041ac3cdf161f1df3c506
+110fdd73c18af469090aefad97f6732e4478506a901883d1809359513d7c
+bb2aff861ff164e85a79fa1fae05fbcd6c4b3248c4d7d9dcf3ff4ea043b0
+9e9a8b73f108ec6873d7de2af19598798a1e2948797270ca9d680070b2c4
+cff9e32bf2417a6813098943ff603482c834a38ba8d10b16a26e195b41f1
+66dc801fe2ff73ad06165e3c48281bba7c5ac6c6c09774362af43726f85c
+ac8fad3dccff8c7008a3bf70265abe55a724af89b740b3b8f464ad66db80
+06ff96f44b70a5630729600bf74ff96218dd3865fd472776f0cc56bc02f2
+62f60450c4041afbe70d278e7fe87b4956c3a414c9efc1ef733bf317f984
+644729023b633fee715f438df1b36d5f021bb0c018b838570c1ab4a47378
+6cf297596d0831c0ecef9dadb1ce6f90210c8498ddce915d60d9d0ddf317
+0415d5788b83c3883ff9968c9875b2f8f9be67d847b07a4143605e9cdd26
+f84486d0d8014ce92ecfb99bb11ccfc40efe0019383cf75e02f132b9c552
+6da2286619ef4904b9537885b4fc108a295fc33213cfbead8cf919c20b7a
+42e5d1e389899e132428f143d5ad323c4890fd80deea0e1133dd64149eda
+5ac5c123e24807ecc7ec529e5b5fe77fcf4d199f4ac1f2c37fa1f70e36f5
+a52faf5e28918a4dec9abceb374a2167601194c2b5b44beeb01e3203a82a
+0378af4be9359d36b99521b6b93da7a297b1dc05c54edaa035b5b10000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Fo00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F10 0 /0 F /TTA5Fo00 mF
+/F10SFA F10 [250 0 0 -250 0 0 ] mFS
+F10SFA Ji
+4218 2806 M <0102030405060708>[153 83 139 83 153 111 97 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA60o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb220669f64824a95af9e1
+b7462e8101f23040cd414ad1ad5fc3ea20cd2b3e75f6ba5e360e7705bc89
+b2e3bf9d3e15ae90366dd842e27734d8f0e0c27a6a076b2c59fadff0ec12
+8400f2a8d05c969a3b3817ad9f981ccf8ee6cca8c5236ec32d047c5cb595
+b4e3e2bcdb983d7b14810f4c5567975b7decfa08dcb923d4ef76014e6ece
+7119e297986961f7aba4ad98225ea6c1ed25b02f4a2f325595b8cddd4d10
+085bce5d2dbf77aa0a40181d2bcafae4abe0b0128ec44e173da86ed26fd2
+b266135f3566bab3a73a2358120237add2d0efb4b62380f68a275d6ea766
+2305076aabafd83c161527b9200a8c64465680e8d626f3c9662f5aa9927d
+69882070a476dd23399cbdf49c8f6da83cb53ffbc2ab9189fb529a614652
+75d93d4a2af2a4bd529a88a496b70b6abc1a72d91cf0087faf95bb6a9b12
+a1d3f5c69427ec3b5117326196458bebc4a07bf2ac9228381defb84d565a
+104d1a6587062d03ac3c58f6ddbe8979cfa3de980a675af65c303b63e181
+a015445a27b3cb04b1635773e8f0c3b6c95b8a844b69db30b74ee4b6f1d3
+8c9439aa9754161e65b5d4ce67f0809e34167542666410a3f9c56253809a
+8dec6dbcabf721c0d5ca6261144924a302842e973846e6f6f50494bbf814
+4049c7cfac9be4774d06653114914308033c25e328af5a4ab42541699492
+fdc3cb7a1c287c3b623230b9f083ec48e34f2857a7bffd03e90700183d0b
+0f8310b4ada2d2064bae1b46c72cfe83ad9e0e818d1d0f3baf70c228817b
+9ec38a785de8d17ba5093765b4bf6c22d6ba40a9f9d80eadad352b33befa
+92a99829ff3f7d917dff22e221617c80860b8057a91ca0397ec4147f73d7
+7713b73da270437a982c2db0a0a45ea60d7108c3ee6c998c56999226149e
+dc27ff93a4562b508c2b2d36b7504f4ccfa9f27c57aba776456575e451d9
+510ba43a472fe0cf34cbca5b5d83b4976d9390b7fc6dabf21c227f4963c2
+24f01d8f5ce06ed8e31b293a57a762c62db3ae155710d0c792a78014ab1f
+b0d4ba14f48fc5c0150aab1cd18e90e4a1b826a36d25a13d61a73e353db2
+ab6c52f562b648f98112997686d7f9cc9b091e8780e3bfe7695bb967d0c5
+9924aea5d79734572c3568f27a4b53722882803cccb3eb6bf8e71374963a
+3a89239361796eb6432d4dc63601f05b78a250ce6ec031c412c56d5e243a
+7ed5cfb66b44c571d5ecc8b5be209ae1a00acfcb08d949bbc5c382e3de92
+eef300faa0b505282e9b58e82301f42dc79752c3673cdeac3996534c25a9
+56ac8bcaabcd5982f6cad6b059332ab3b7dfeb8e74c4a6fcf11f9f7595e8
+6be17bbfeb1d1f4e1552f684259ef3bf25443dc82c98a4e5670a9da1bc38
+1daa61f7e58e768fb26ac57cf76c1854ab05917d6e3f366d241a3118c31a
+b39e31597d4f8b4591a5725ec081d83ad3c9229db25a508a9fbc5030fecf
+4b86a246d210caf9969a2cf191db0d4ba5944d0dec317f71a58bc7654817
+e703e9af9eb4e6941db44b1344e631067ac9301a3b5639ca77329a8a733d
+e53350ebbaa58635ccb16892e56162a564e59ba132f921477e1bb7f5b84f
+6d9a131024895857a972d3dd125fa7ab1492486dbb3c219b989cdf51f557
+c15999460b08993c599587689f6af0650574123a6d97e293acf6f48b3f84
+2a159a71bebc068ff5a5c890ab433080e70a734d75f2b1a3c4c110f871cf
+8a1a31b8491a83841e02734057361ef04c844da7cb24ab011ccfdfc7e8c0
+5afc3cc8e268965810b6d6a441e2076da2f739651cae11715fc8409f735b
+c4c553c2d12cb4744a448d135031effd4b5b0611810744e162e8b81d512c
+63faf3d2c4c02803cfc42511419ed72b575a70ff89e1e8cdc387ff0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA60o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F11 0 /0 F /TTA60o00 mF
+/F11S10B F11 [267 0 0 -267 0 0 ] mFS
+F11S10B Ji
+4188 3109 M <0102030405060708>[163 89 148 89 162 119 103 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA61o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066a6b46d2cf1e31c8
+8c173203a6107d2397cabd68bbc408288f57dcdcf1ba25462a21c2a280fd
+4872197251257cb1b5a68147f0eab49c590d0fc4f101316f75d4d0196e5a
+ac34d7d2e9511628ac0fd24e6ff645e5c987e3cd80b41ff91b50316539f1
+945b229cc2b0fd7a67a73172bf84134051c7dbf945bf36c21b55175b1c6b
+b36f0672f5737fffba364f88ea1255b73fa8ee6092bff85991d33cdca1a4
+a4cc23e5faf71e692c5041decff1e6b04eae13e98ece29596770a98c895b
+225dec5dd89035c2f378a13bab71727eefbdc0cbca7c5ef8cb35ce7c1e21
+a20987e02b1872227ac2149890a99f33e4c14ffa2a0f7f6af0b4d8d559b7
+7d52407f6fb4707a7902fb4d0930e09b142a87df214434e7c49a95b20a64
+91cdd7994b2d38bd136500f36657f6ecc27d53eaec93089e292291d9296b
+891d30464a04dee7e4c852933e00e3309305809538c0c3b9a9edd7626aaf
+6ca17228f379260e938512ceda67808ce4982b30312c8c2473d4a1727cc2
+742d35ab6730e4a615192f13708fd9c9e9fb65aa18e78a1698d1390dd1b4
+8d828d743ccaaaba22181d326cae273cfea381ae1305943dcd8fccac4d04
+f7a53d9dc5f61d9c6b34f33c79abceb357e6540cbe4b49b0cfce43f93f59
+8f0efa3ab63f515cefec093c13ec8df9b98f4502475bd4859ae19d8a2a2e
+1ff887cfd300ad50dc620ba7996ab2d06a330c6004fedb3d71958efa0451
+176c4b1e3afcb48c6560f0e4fe8a302c7bbbd2fe83a4bb54a114a1883058
+48dc2965f310a9d6f4ee9ac19a486b987fdd9ff596013b708e29af08ebc0
+44dc8fa57633da7ec675fa00a692161401fa16244c96460f74549e8daebb
+940f454dfc96316f14ebd9fb9c1d86e487175c282f8c5b3008e378695789
+fee70e0ba828400cc3fd62f10bba3e50ae17105c7189ce026e907621fd87
+07a4cd89b4516b5af98a1addbef0ee4bfccd1f306835b2fbe716187f3570
+5ebfb0e16f98cd24a78c82434903f09e5b0e78c02a43d38bbe6f221dc88b
+adf8efdb08e0ebe4608d4f4392d4d9ecfda871039e0049f0881bbd5722d9
+3d3f784c628ee9910cf824854095a75255953ac6376e83dd085b6741d35f
+604b09473df889906ecfd22a9bc759cdc9d1ee7abfc75213b1d495e4663d
+4e722b58de4d50671c19cbc3a4dbd20ed5e0c6567ad69a0c5203a619ff58
+ee3ed1a9d77f10d64a36ba6f89a629f9ffa2a4f1fd2bf2affb4204d5437b
+540625d7daa43bb790183fbf524d914ac18817aeb295da7b40b97d3d4b89
+54977054e0ddb9e00c4679651b905db04b1bbcb4017e4a666154f3c2ac92
+5db40a171cec499af9da1858234e5e15c4c6590c5b2eb366c9d11b3ff86a
+937e896a0b8d42e1aef576893360709ff76bbb3baa4bee49dbf2f56b84e9
+d2ff6ab36add7128d2864d0958598d86c99eaa799662120463dcfe373e94
+c803657a95a5aa31d66e4631f1a09f9a47bd8b287975a71b42900bd8699b
+9730e1bf655c0f68dea05dad22d99852e444d801a2ff17de73e9ad49a996
+c6b23cce82b661b50776d1be87cf5e16c7c88302824f56dd9eb5ece935f4
+f9a43384878fa1d5634f727ac6a6dbadb51afedcede5e3832e91dda9b171
+399d4f7542589aa47f800feb7172c33a426b58499488facaa1a51ed5a8de
+3acf21da23664db141de8dc183042b73a96ed18089c0bb4a890614cd3a2f
+3c4911c131221865dec83302116d31ad9527433038ffc8d0f96f234ef5e8
+ac69c6d1f5b9aeb3f4a0bc248700ba99bf64aeb07bc7f3f368512c77aacb
+5ac234f9386079b6a20d9998967044c40a948a9eb53c6ba443c39797f1b4
+c0f6d1903d61beff8fbb0ff303f0217db50d3bf6b4b8fad466d1ed0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA61o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F12 0 /0 F /TTA61o00 mF
+/F12S12C F12 [300 0 0 -300 0 0 ] mFS
+F12S12C Ji
+4128 3447 M <0102030405060708>[183 100 167 100 183 132 117 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA62o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066a6b46d2cf1e31c8
+8d680a80f464f13349e5689a189f13dd0689e85869e2bbd27eb19374eb38
+071897af922bc3f8ff6b7c3fca4ab2bbe308e84badd13a5b927c626da36b
+1037fa38a19ada6ac72cbaa7ce1cb85eb111d32a1ef92b11aa069b0a273b
+48c617c3358281f67bd01a76b549470528570b0c4d05b950a91475fe2981
+7a0c2bb0b286c50881f2f950fa93bf9806ec786b46525ecce59f4443e75d
+5d7985890e7128177ef8e802f1813332aa8684a83067f590407c2dde2d71
+73e14b887b636aadc7fab122b657dabd4046c48129a3af1103f40a16259a
+eddaf0f051e1753a1f3e3689e35deb19a06b2f3b85dbcc93ba0d60c5ff6d
+68160e7e1c576a9ffa0ab3bfa64730821ccf4ea1fc95e15fc102c355d570
+338a9b5072b4ccbf1cf9392f81cc77cb641160315c4e0633ba976fd4745b
+687108d2dcbc28a4223c53f842f8f3732d98ccfe0db81dc11ae752887cbf
+9b3a755f12ce22a69d74d5627e1cdfe96f7b6170185a428fbecea6dde1d4
+319929e215abd940ad9817fbd2dafbfcf71a02213753bc2f771deb3397a4
+52bc2eccf72e56e569d6c9d14d3ddb28217c69a621fd8f214394d87cf834
+3f530aa72a28658956515e3a70acdda0f82ac1648b1522aa1c30473fb36f
+b54a6abc080c88bef7463200bc3b84fca38f4d5e1e3fb1f8a7793a202cc4
+44b5ac108f2f5d1fc9330975186f2c35636f0eb5e5c4e8d7e20ec2407ba2
+0ab60aac449ae735447a0bd83c9f649a025f215ca3d2c0a063233d231c80
+f2d81d46c475c8eac6103d9711ce1dd986645286fe0a7d6bdd0b854799c6
+2078e169bc4bdeaf54fe41e9feab27467ea91ce80a9ea2526c0305727a5c
+1f010c7bc04e3e1e2719c2c67f2beec0d90c6248f7062d3a86223dbf2f4e
+6dd858ad111e2fac402858eced9ea7c78d239b791f448448cbff2b9b8fd0
+d7d373837195d94f69ef6acb0b58825d45f9494231f949f9338ea5ac1fe5
+e78a485fe2d456bcfbfc77d6875ad95413cc0b05f2fd0b1d5d87bb45adff
+aa97135b0699ae511381c1092d5c9f658f33bff078fdea96425ffd5320c2
+675fc8b58b96f02b8a63c8b0031843430324f55d36c42d9e4a242afffbf3
+f5f5ef2d79584cd9961d62978d8f5b5ab9394b9ba4e9cef9befe2c720a3a
+15e7a4213221320284bfa64ef6eac7907d86a6c4b4a25747ef60d73f889a
+5fbeb0cfcefd06df792a9221ea8d7a63d331c8c120d95b148eff4395527a
+cd9279d0cfe32ecada854c38c85dae0bd54edc6631aee3a5c563a5553fe1
+487e1b6474dc60916f5c26baf2f306695972475809fadd8178ebe0b3e6b4
+98995f5e2f34779a6bcf317ff8e18af39b8ea02426259c38610fa7d4b994
+247e4d1a70374fbfeaed6fddee1b0814535125d0501ee6d5852181262ae9
+c50e8e99460ce2a96929e426dccf8cedfbebcb7845fdac62512145a65636
+4f48c63755a860ed7f0619f80ba6d057960d0ef012c5c2e8389a89e5d32e
+b8a80d3bf67ef8d84d2c2ceafaaae987ec4030146eb511ad6b2a729bc2ca
+f48cc2d0534b88bca04cd2d60814a46528d0e5e02e933552f1cecb6c5b58
+8fd53c5a53f3092ade44eeb11b399f6a3b90c52fae04861e23ef6d113547
+56f5ead2292e1b05a3fb7c85d6911a556f26a22c15a58c3fa5e46886bae4
+8d0a6baf057d60f763b1901866542e20425cc12e0203575c7f133ab80ffe
+5b222bb798ea64c93abdf1b85010d562e35b3f24064614df3942d90e6c83
+0ed5570bef45451e1d1c5fe32cb9efca3ac8e3a6abacc7c75c02db4ff81a
+51e792507e2d45b4685f270e703d63e15e0c7dabacc30e7ac546fcbb588f
+1043bf9214d0606f29b5e11013bde03b272216c8f7e0b98f8ae9da0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA62o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F13 0 /0 F /TTA62o00 mF
+/F13S14D F13 [333 0 0 -333 0 0 ] mFS
+F13S14D Ji
+4069 3823 M <0102030405060708>[203 111 185 111 204 147 129 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA63o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206158487fb3119fa92
+a8a86034818e39ec9fc196fd03660d0897479998880acfaf10dbf270706c
+28fa707ce4dad00c8e93cc045f9a10f475da3df377bf5ded23dfbab06e55
+cc7d6cf560ab7dcb7eefb7cf36eb09d88933abf76e7e0394c20619811a51
+443bbfa69c436e08988379dbefa860397a3f0d85b5036475ef5b3ba59810
+143f3e33c935c2c9125c1df9354d17924ca77a47a34ec1c15611c5ac9f6b
+56e9758d7af90235b8ed96875cb14e2323abefd86a36c74bc59eeac84fe0
+d013f3515cc05c7e5f694e9fbbd43f931d6afe14238301aaad0a3c19b198
+b1efec19f875db470cd5db8b58d1a9715b2e1082fcb22755ed511d03db7d
+026c3e0b9897db3d94a72b9cccc5a6460baa0834eb22c9cd4a783353c578
+013ecb0f00144828def066ba832978414b051ff879bd7aa2b1e60ed7b068
+7564600d3b11ee13d514044212f44c470186e217cebcd796acbfb8f18a5a
+b262054a3ae208111ea1daec5d7c42d978501a3a924f6acdcabc5c2483b6
+9a708086b1f1477f78736e10664014b5f7278c223ad56498da95a4be6335
+a2ec179f528e57e99e177cdc7ee01f27e41cd84d37adfac2dc7bdb9272a0
+7ad37ac91ea2c5b6801d3f62417e87cfad0f483e9bd45e55c4cb4911f711
+a55886fea6300530aef55669bf62569d023c1ddd2ba2d038296ba4b6234e
+6a7fd36a75b2a372f98a1ed02aacaf6506c2b8deb73aff137aa589043226
+cb1929a8d09ad7dfff5312d1c5a3c5a13b48af57c294857ccdfbe5fd00fe
+24562fa7040ce5c75ab6ec8362b0fc8de4e7d7e6faeb8b3fecd5928ee6b7
+95c15c7fde8a021278bd25aa236c5e7b91421aaa11710145547210fc9ea4
+5cad7bf0899e082aad912fc701a087a9bd85560095b9fa079316ae4ff508
+e33daca2e55f687982dc50603d7311a9cbe39ab38a73f5ec2b4fd3b46775
+951c0082b5f434756251fb779103b284771c9be4047024d30194d9c338ad
+2b1958e7137e74fd3cf1753a68f030d1e48a99a92131937a7f494fd3bdd0
+e707409d2eec84e68de07225866f2401a10cdbf19d28ce0e2254161604a4
+4e74cf7c6279d55d39a548121129b619067b8d68db383f32a065bb526c24
+b02ef9a9c354d4def81020323ea06c93d647e6fa2f221b047a7ecc8198e3
+cc5e16865013bac7a20500895114c5d97de0c9a3726f288a42254e2204fa
+14ba9d4fb8f1b4bb44841d3d70a6d754b193d701d66543798ab1d3e4dee4
+9e89b21b31f1c07a07ab948a70bde185c4101d3c9e361eb67c255f3bc5a9
+0c89f81def08d4180b0d5e8d0b212e545485fea50427de790af06413e931
+4233d87df73e012d343f71b3a4e0da09ad443e47b0bb230cb7cdeff909ca
+ce2f15b2e2e1807fde167179540fd7e916b69f0d277cf0f91af017925581
+d9a1d66c86d7834f2af841ce657288cbdfcb6c0d07abdf6a0699fb8f73fb
+f5d08ee287c3ce53312842e813ab4675b0d072e1d152f7758cec3abe9f68
+62252ceea015b7587db6c081fed9efae5da5380a3ecac1f0a5391245c28c
+9f6d1f20fa547aea71f89fcba2d979a0215776dd62d4790f202b36db791e
+ad6e7b6dce1612ca4ac3d02d4aaf9322d34ebd6c37e0bdeb11b9c82bdc97
+5ea90afe2d06ef815b2ed0581666f7e3bc9466a68d51e1bd00c8ae6bb94f
+d0fe97fdc276f28d5b9c0200492cc41d53f21336bb0e660e1b2758da5452
+bf6f0638b9e50224c3073622767433c92a9ad7a79b1abcacfab68a0e70cb
+5353fc54f6987b13d84d79b5d954f7b3603ff942fafc4460564d4582bbc1
+3ca21e59a5556335ecc99f3b78a254c52ed6a79ead46d6280e91a5641e67
+a85529b255e42dd69656fdef1ece30227b328d980fe6082bb624960000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA63o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F14 0 /0 F /TTA63o00 mF
+/F14S16F F14 [367 0 0 -367 0 0 ] mFS
+F14S16F Ji
+4010 4238 M <0102030405060708>[225 121 204 122 223 164 142 0]xS
+4010 4659 M <0102030405060708>[225 121 204 122 223 164 142 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA64o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb220616fc35b8e91f4411
+23fc68c58b5f46a1f1275e177c6aa9c2eed0243cce590e527cd2227f8444
+14cf47b571f571784ce9573c21d7d38a8b1f3b5c5b80564c328122627f3f
+ac24de4871f2b61b498c1035317868d10aec4be63ce71d6eb7894d350070
+e2d3bb54ff08c43ee722e479e9be36817aeb0f94485e836a5e505477047d
+94ef6bb481178e2636db057ffe2bd6ba3de8544935b3d2c20e99196d9bb1
+847ed930b62c48bee95c908968e4c681545cc28f60f97ed41399a3615689
+6de5fdb9d0a5f0abd2fdb820eaad1a8f08dad1b1f440e099959ed4d516db
+48ae31477b68fa2908927032ac27a55ac3cf78a5e7be83075d2065f47e20
+a3a47beb91299bf9bbae879b26794c0e5cb4e680ec7a6dd1498e36f1fbee
+8a4d52c01ae62ed702f0c1f83b39a7129db168e37b5dae7b92d5622ce8a8
+91120de77d44f809ad1e6cf23ac58bcc4b46524801cee0f6fc7c68d33c86
+0d7ff13d43bc160567ebe1da324107967ed860c79364f8e8ad1ad7f0b0bf
+36f35eb2d1ea1fada92cd8ca58106c9f57f5d9ec3562775df931dd704510
+02b9edb700fbe3f89ecc31417ec84400756e2a243bc34393908dcca3c0b5
+4dec679d743a79ce99a4c11236b9738f04e0cb5af2f57ca5fcc258a0a24d
+60805661bfc9dcad4e514d5089a67ed3f9f73e39b2c1e8e0f9a48d7ae38a
+cf0c1822d730ac58cc5ed4094b96b1d42bd7a4a1493f712a6d160a6d71df
+28e64d9e168b21f188b034c1163c75b0e237fcd7fde9216848d62075c3c0
+3e332de3d9078a9adafb3667a456abb812ff43738c70ab9954d70541a0ad
+823bef3acad4b39195cea348d88a6992440ae3a11e65bac8009eff46d52f
+ab715920e8be65cc950b41190fc3ec3eb9710ef499cdcb28b288771a148c
+2c68140fbe14229148989e5f0f57de39659865c5514eb54cf7960fb50c34
+5fe43eaf66c115e73c8c7c344c0bf8af82c6f3ec5bc2d4804a8c30bb135c
+783b2b4d782235e4734c4cda9fccb033396448b2bb417d58a06168044397
+92b816cab67386e1bee2d4a4fe0f1581ab509613c5658f55e769a7eb49e3
+a89a6d57c389cb0882d32528e2545f8a48eb3838b63974e74181d68d27fb
+91149cb2c362e7c1abaec89872358cd66895a6eda09a1fa84c234ab03c7e
+8bf1e84996115a76012491925771a863d27c46408ffadc375419dd7a90b8
+943b79131747572117d6d98eab875f4a70036f7012be1a9fabd106401489
+e16c198b1fa9fa9b5ed0b0445f00fdbd577ac1534112f51510f74bd87bc2
+73929005be30c102d63b7251697512806da51bdec65b624d8391f29dea66
+9374ff3b6eb2b580e2735de61a835243095fea770d56c0643c0fa15e47ec
+3a2ae9c8deecae7bde01e68ac2ec108fe23f3370c2823598a291cb7dcf13
+e8174b1c55f58b1721904f7f72fd3badd8bd0c65694608b7cc260c5c4801
+53e32fc0d340ab604ac10fa5ce26c0d03745524deb9fd8cc7f9a1bcd050c
+e0cb6a842dfed52761259fae8ca2e2ffa8e52fb637f2db6aeaec66c1017b
+64d6432884399931893f49fc96b719c7650db46ef7743e6ae5e062c39912
+5cc41866ba23c2ce5af2dd0896514145a2aca6d4ff8e71d169b064cacb3f
+2cab77b34b2e7b6efa103a0500bf02453e327ddc59edbc07a8feec4d25e9
+dc9d86f7c65bc872188da32ed8a0edaf431cc32abb5672fb61256d55b6a8
+9da111703d609d59f8bf4a34cfaf1cff1b711314b8cd50b3eb61e99b9fcc
+03e121448636749c1289a892ef822771f7637305eec6f2a799ee0f4ab30d
+f3599ff553d7697408c67abad9f8131e141e2d65623d89574472c5baaacb
+df67ea90065c766f01ef39449eff529461df1673cf8d8d818ac87a760000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA64o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F15 0 /0 F /TTA64o00 mF
+/F15S190 F15 [400 0 0 -400 0 0 ] mFS
+F15S190 Ji
+3951 5112 M <0102030405060708>[244 133 222 135 243 178 156 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA65o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206179c29b10360f66c
+a9dee7eaab7087c8834ade2a458dcbc6003210ab90663c579b16d5f2ce6c
+289056f18bbbaa7aa904d32ae457b267501aa32481206d0540c6bba57505
+8694477f31f801722d806719a2a318e17e8430363366539a22b2558b1534
+bba96abc799d72b761a18b2c5ca22c2a3c6303914df51cf07491bf3b7244
+369fcc5da2eab0caee099fbbb0e2f438e76541ae37f9f3d119c621e5a51c
+a572a7c5b40ecf16281499ddc4df140e69be0f21ab05feaa553a96fb69c8
+d9b701aa432358791f0efb0ab57c37135b2c1d1012b3a87c88a1e8a1a275
+3eed718bcc969bf3d5875adb9c8b2200564fdea69b4caeb28e464106e61f
+c5187d0970a0e7c36c269bce3bdbfbf22fd4f1bc331689d1530bb268af25
+c45973a5bec46df80df4f0508ec729d165203925c00b1c73901afdee68bd
+1847b34a10e20895dda626c43113a6e11c32bcd477c84badbe23b0ca40a9
+4f0a0701a2edf14b4c675f538f80b98275c1f2c13cafbf673b46324465b3
+544c4a0dd3800d84bbfef594166bddfe875cbaaa9516fe53048319233ad7
+d73686dae086514c82a1d552d1b8f3a6df1b791fd32a6a283bdd970fd71c
+850f34658e75c599798ab218c3156a8605bcf9d515ddc1b8d0005576767f
+a29d14f78c241c98bbfcb13a5cfab805430803fa2c55076ee34a5eb931a6
+a0662c544d59541670e9590e47ff41453b3c561c78d712d270fceafa35b9
+0713c96a1ef5fabcde661f0989d01a640511c47de583b8057d975c2a1730
+9a663389f271616151f02c0eb8e072251bf1146ef961ce587d4a486c6848
+549f331b2ba7c9088f24fa105c4f2389debbb3c7d4368b838809bd4198d4
+b617b420fa507c503ae5c217e416b927495842333a8e251fc075be16e338
+51d62287e9a272f4843f62241e508b952d45ea728574320b996861f06f83
+5e8028a69dc579fc660dcc6afa67f4f47f94455cd2b29d326b7cda83b9ce
+b204d080adce1134af535bfd59b989a29b9b84e3c73b5f1a87068b892236
+23efc8cb6f5677417d1d3cddd5d367fc20895ab7671d1e997b5f12668062
+c18059ecef3fe26c4b8a8103bcaf8767f1311bc2866b2fd0432208e63020
+f41007d7a9a43bf0a30eff53903299c2d88fd59163f9b7415653cbee5a60
+2c50c607edbf1bca3157aa3a013c4377c3b5088ff717e794ba8949e91a85
+e204ffd57976d7de79e70409e3a6cd0c180455719ed09ebc5888a175dc20
+735e3c69484fec32ad88014bdc0100e62455a6ce6be23b6e306948c9ec8d
+98ba3e89a4858f7c4537908e733840cb3897529efe2bdda4192cae694ea7
+80edfc2c1f75d01b1a9c911e839f0776b7556e85348979159c2c1c9f1051
+141da74db4bed5098c80ff84d5187ca88570bc6f512f9a204d093cd6bbfb
+438fe9d062a41575a6f8a5f7b44f9c82faac321ab9f4850c0803148cad84
+b339e314ffdb7c8dec381e0fdf3c3757d83102e26259909c380537f66182
+fbbf656daf939e7db6c69bfcf79fd281931f02ea1f33730f42d735b18496
+d6d9f08ebcfe70c55d966f671b28e9fd10e1b4151782eeeaf357f95a4319
+0d5b124f60c9a9c9af2d2a3f5c594f00628c46f13637d205428c4ce1dc88
+22e4d41e9fde4b177dd60e7be2fcf8d14d1f99a996ffdb71d712f22a91ef
+8060d241b397dccad9198e5134d69c2ebb566cd530fc7c29a7a70d2bcf7a
+d30c7215b65c686e676e1dd88311cb0d35d2e3c13e5a7bc1df44275fb7b0
+8a801c63f17e987643c7ed845713454afda90c825f0af5d8945429115a8f
+cc65d3c2372ee22d1eb7764484ab397862e8c448479d4fdc5ca1d18abf5e
+6b0b717dc116123298a80f59db58fa03af2027b2efbb59e115c30f0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA65o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F16 0 /0 F /TTA65o00 mF
+/F16S1B1 F16 [433 0 0 -433 0 0 ] mFS
+F16S1B1 Ji
+3892 5602 M <0102030405060708>[264 144 241 145 264 192 169 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA66o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206689a2c7f31fa5794
+54a6cc5be7a453c42c272f1015ef94322c3929a0ddefb938ab1522150251
+fdd9f6b70f2e773d4f8663aeccb0bfc787064307fa1dd2f8bc4dfd5c7205
+d9853547485a8d4f01ac00b1b09d2057d65671f1ecfa41c8223a5108e94e
+eed8977391d4cdf5cc5898097984dcead7d3ea18561ddcbf4d05252b668a
+16e0b09a7b46807271a79103ee35cd33f3f5562733fc8557b69e1eb31acf
+17667bc44a27417541c228ececeab7e30fbda792ffb1d12490b7a763dd92
+7feae2dd8a29c69e1c33dc198ff3d1cfced187c07e67b604ae0d38df8d9c
+f97994f52049867475193872d41dd75f54fd685f66a9ed9804118499b261
+00ec06d93e56caf1ea7fd932421a7b807451acdfe8b949268673a769babd
+2fe767a6b050b34ff782968242657ff47cb62cf2a1616c809340e4fe22eb
+ad2944863557a13c39e581d23eac63f64dfc9276c0341b148f86cc6d3116
+6bd106f158615eeefc789238bf3b2f9ecfdc343e3afe48ff47146aa2af53
+d3879ea5dd09f2a25db26346d5a113284a48541d9a940e9f8b9ad98596f0
+c788a3dcbf41c177bc55bba52512f887b2c5e8776efb804942e49ecfa60e
+10b3e0a6a136e6da02b00b7a95bf805508eb0275a9e243b68c49a8554717
+3a1f750f860d6b50681d877660e47696b6a9f70ee9642d77678d8513fcc5
+da51a824f7a7a163b3416ae572593eb6e32392e6c4699995a1da11cc29c5
+ef52cbe73f49a3159c031ac87bbb2336e3d2618537c01288ad3c11f8f837
+aea942a32f1a9388126758aed7558987937ba918bb20896e46f8b80493b7
+827603e8e11953a56e2d406baf573f366a6c325d9585a36232356c876d22
+38917e0806d2de7624cfb33d7c2a6da2aae20ad18a8d5738d747b5cea624
+0bd371cfd8e59232a1b8f953aafa3065d393ffc28479fcf15350375753e3
+d8d4169d64023ad9200881d358cad783a45a67ae18f81263f801df120e8c
+a9cd4636fd19024f4d7d50d84a4dbef10941e5b86650d89013c4aadf1206
+411b1c84e45f3baf8b5984fa9c5043dda578b736a14bcbdc7551a0fe7e62
+2e5055da5e7b6df296d868970d9589482e54edfdcd380850b2877f30d6dc
+3fb72877575c1851710095b46311a4c3dd769809e100ab6dba6e80f4313e
+6417460d7d99dbb9002e876ece579b6479c49d248050c5530883c07e5720
+b72e1543a51f7878463a760d7160da57b2c7cdda23684ba394f4fe456487
+8e26926386884961ff02a917786958ace479e4d34b42174558ba65e5feb2
+3708dc192d0ee9ffe2fc272aff62b3caf0276f66d18f838fdc15adea9faf
+86c6e87e48c9997dd940d6a3a46063406a40f2f44758df815aa75453a10d
+254f082d5abf98176fc8340a575a47b93d3bc46bbb2790d9fe6d9fd518a6
+fb3b4fe9331f2ba68762cc21c15e4a429217f86a26e802597785c3354878
+653c0c48ae31cd5eafca143ebe4a5ea475b5f10e658ed07cbc1266547d12
+d0c62598e3f3e802e53d0b99164ce825ac5165aa3e9fd4761c5451182e60
+1937322daaa63777230f33f9d45d638d32f5cf61868cbdbaf3b056cd9bf2
+b496a029387dbf63cd6cc636c2cbf3ce0c07e518c521f7b4fbd7b619f4d0
+7e9ffdeec465771a9ca8e9069f52eaa88cad66d47092ac1f5f52be036aed
+d2d6f36153e22fa251aaf8b10da257dd14cb46163723013df097ffd16c33
+ddb8d3a4dd2fc6545550e4081ae70de8cc65a83f220212744bfb58cd2cd7
+29b17f2b842e4138a307cfa37adaaf9178ee510e2fd3d3f43b7efb0ba3f7
+a59e6ebeb4f2a35e908016cdf0383304b2cbfd02769cfd5ac9d8eba752f2
+ee6b8cf7287ba98fd5b2cb0e61647483659cb6b97f1ac442dac87c0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA66o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F17 0 /0 F /TTA66o00 mF
+/F17S1D3 F17 [467 0 0 -467 0 0 ] mFS
+F17S1D3 Ji
+3832 6132 M <0102030405060708>[284 156 259 156 285 207 181 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTBC3E32E0o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb220669f64824a95d9550
+e6b732d24163e5f1f14c0d8e68bffa74a7e923785ab628ea1b858f9c8898
+aa3a6a215f95d69b979cf88a88e66315daccf6b3e567737c55e3cf437e98
+6959eca072eb5947c0a09809b4d3d5430005f3fa1b9f519f0635d2e185f7
+4e1eec5a19e358c5609375ecd636499ee362b08643e4c00019c76096365d
+ae34a30b033cf6378a4a47f08172f46c61310b971071ca9fcd6dcd1b9ad6
+63809fcecd4cd2183f3a5a9de5c683838022bd1362f59a5b864d29a4d185
+4ca19a30f903bb33d1ca039f71e2039cc453297c2bae1af6d32d72092a4c
+b00fc35b50397d28064e83425bcb8aa2802cb275252b0e70d9983b36eab5
+6caeb1305e4f95ac5edc55b2d2ec626088c80766ae22d5f2ed6bd822b754
+d1c1004291d98617b4ea4915642deb170ab38bcf01dbc7d461b8c4bbde17
+e6745cf0bc1d064418fbed78f744269daef38817c6f073c543dbdf219dd0
+1846e629428c6636dcc0d80038222a8ef4fe9a380b2f0e6e2c4bca8c39fe
+f4a6d3b66af29ba79996bdb5389abf14ec305653c6de8e1b55effb93dcf6
+6bcb0eec3c735bf981b03907a3ffcb25b51f3f6b7632ca38e91975702745
+98993eaef2ad15901aa3ef965171e4a386b664bd21f943b3482afd2c1412
+151ad3e78b340945c8c5faadab4d79d6b3e1017cb933af412dcbfb368b7f
+4790d99ab75ad1715248a31296f12d99ae05aceaa4d28ac45fb01ed9abdf
+c7eb1ecb1de617a14454f6ba1578cbefdadcd3684cc47b453c763c730436
+8f32d78e11012ea6d3d16ca5bf67951a742d405591ac3ee6d5164e890891
+e10c21777eb10661f8c88e5bfa6326d51a8ca574f3321b5cc05631bf331a
+ed2f169a77e8ddecba5e03eb7df19b634f20a0353685b98668fb79295051
+ce2ccd8487a1d0da7d9bb3dd3cb1e3df220fc81841cbd0b3719fbfa27809
+379e5f3e7900be85b9e2bee893085d9bd17b9cb7174367d80bc06d7cb841
+566f2ac1d0e5a1f01dc1cdf58195977393929340b5746f4bc1f3e3ee6f5f
+df3941a5deb99672255cabaac0ea3657a449c28267bc9dbd448fdfe12b52
+fe91ed89405246fe3b6d63c89536f8659fe660ae005adbf01c3c2729913d
+2117f8e2dec91751be554a057dd7998e15b9d02377d6a6d5c83b1091fb8b
+1c7c358f13b4dc00839db3fe4cb9163f5ffc725b1561a2d3e4faab96bd11
+bcc159c4be2dda581cd695dd41635fee2c8b1e5d8dd4b35a59bdcc368ab5
+9bb2ce9799ca98dffa60212f587b7f99b3788f3b052c7a83d31ede5e21cf
+ccedc821552ae0faee16444c26e489d37034f8ba4c811ea5728bc16dcf9a
+217958e8f745e87c917536ff3899b13d00bf631cc449eda3934a726bce8a
+154519d6192fe111443b7d039f3844f6a95bc56142d31970ed4a8e7936b0
+0ff7c795cc2bdb4b82616d7fe32c0a76ed3dc837b238905ebe9cf2d9bb7c
+62bf9ef3fd62d6adbd8928e5cfcc6e01ece9fdc2496b7eaed14d0dd56d31
+123b9ff1712c0e67d00c73ae48d61688a2bb8dcbf8a5a8523aea76f8f107
+554df15d3fc6db019c97efcd6c3cc837a222851ed21e92e0c658a556f7ee
+52268c8787600227471918fa7e32d787c76277b7eda00bfa4fcd5730b724
+20333168b0b79fa2ae46c639399cfae05eb45df153448d831698d38be55e
+1aab21503e8011f9889d8ed64e9d29ac7e298f1136d7cabda06b452c1257
+5d655523016b8302cf0e2d66b310f6ee0cb7e725752b4f2c346b89f98453
+b2abcad50dac1dea9c9d842fd37a409b73621d99599d9d6fc10d2441de0f
+808e63bed2a5d2c2f6b34098aa3facbf6d379b4d1575008ba866446ca1b6
+8aa5d4961e3c2f05b4beb6fc4695f7dea133aba05385434a26db160000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTBC3E32E0o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F18 0 /0 F /TTBC3E32E0o00 mF
+/F18S215 F18 [533 0 0 -533 0 0 ] mFS
+F18S215 Ji
+3713 6730 M <0102030405060708>[326 177 296 178 325 238 206 0]xS
+/F18S258 F18 [600 0 0 -600 0 0 ] mFS
+F18S258 Ji
+3595 7407 M <0102030405060708>[366 200 334 200 367 266 232 0]xS
+/F18S29B F18 [667 0 0 -667 0 0 ] mFS
+F18S29B Ji
+3477 8158 M <0102030405060708>[407 222 371 222 407 295 260 0]xS
+/F18S2DD F18 [733 0 0 -733 0 0 ] mFS
+F18S2DD Ji
+3358 8987 M <0102030405060708>[448 243 409 244 447 325 285 0]xS
+/F18S320 F18 [800 0 0 -800 0 0 ] mFS
+F18S320 Ji
+3239 9893 M <0102030405060708>[489 266 445 266 489 355 310 0]xS
+/F18S384 F18 [900 0 0 -900 0 0 ] mFS
+F18S384 Ji
+3062 10906 M <0102030405060708>[549 300 500 300 550 399 350 0]xS
+/F18S3E8 F18 [1000 0 0 -1000 0 0 ] mFS
+F18S3E8 Ji
+2884 12034 M <0102030405060708>[610 334 555 333 611 444 388 0]xS
+LH
+(%%[Page: 1]%%) =
+%%PageTrailer
+
+%%Trailer
+%%BoundingBox: 18 18 577 824
+%%DocumentNeededResources:
+%%DocumentSuppliedResources:
+%%+ procset Pscript_WinNT_ErrorHandler 5.0 0
+%%+ procset Pscript_FatalError 5.0 0
+%%+ procset Pscript_Win_Basic 5.0 0
+%%+ procset Pscript_Win_Utils_L2 5.0 0
+%%+ procset Pscript_Text 5.0 0
+Pscript_WinNT_Incr dup /terminate get exec
+ehsave restore
+%%Pages: 1
+(%%[LastPage]%%) =
+%%EOF
+ \ No newline at end of file
diff --git a/testgraphical/source/CallExternals.pm b/testgraphical/source/CallExternals.pm
new file mode 100644
index 000000000000..a0a3b1ae716a
--- /dev/null
+++ b/testgraphical/source/CallExternals.pm
@@ -0,0 +1,539 @@
+package CallExternals;
+
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+use English;
+use warnings;
+use strict;
+use loghelper;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.29 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&callphp &getPHPExecutable &ExecSQL &callperl &getPerlExecutable &calljava &setJavaExecutable &getJavaExecutable &setToolsPath &quote &quoteIfNeed &set_logfile &close_logfile );
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+# ------------------------------------------------------------------------------
+# small helper, which replaces the return code
+sub errorAdaption($)
+{
+ my $error = shift;
+ if ($error != 0)
+ {
+ $error = $error / 256;
+ }
+ if ($error > 127)
+ {
+ $error = $error - 256;
+ }
+ return $error;
+}
+# ------------------------------------------------------------------------------
+# helper to call external php with popen
+sub callphp($$$)
+{
+ local *IN_FILE;
+ my $phpexe = shift;
+ my $phpprogram = shift;
+ my $sParams = shift;
+ my $line;
+ my $error;
+ my @result;
+
+ # print "Will send: $phpexe $sParams\n";
+ # log_print("CALLPHP: $phpexe $phpprogram $sParams\n");
+# if (open(IN_FILE, "$phpexe $sParams 2>&1 |"))
+ if (open(IN_FILE, "$phpexe $phpprogram $sParams |"))
+ {
+ while ($line = <IN_FILE>)
+ {
+ chomp($line);
+ # $line .= " ";
+ push(@result, $line);
+ # print "callphp output: $line\n";
+ }
+ close(IN_FILE);
+ $error = errorAdaption($?);
+ }
+ else
+ {
+ print "callphp(): Can't popen '$phpexe' with parameter: '$sParams'\n";
+ $error = 1;
+ }
+ return $error, @result;
+}
+
+# ------------------------------------------------------------------------------
+sub getPHPExecutable()
+{
+ my $phpexe;
+ if ($OSNAME eq "solaris")
+ {
+ $phpexe = "php5";
+ }
+ elsif ($OSNAME eq "linux")
+ {
+ if ( -e "/usr/bin/php5") # Suse :-(
+ {
+ $phpexe = "php5";
+ }
+ elsif ( -e "/usr/bin/php") # Gentoo
+ {
+ $phpexe = "php";
+ }
+ else
+ {
+ print "getPHPExecutable(): no php exec found.\n";
+ }
+ }
+ elsif ( $OSNAME eq "MSWin32" )
+ {
+ $phpexe = "C:/programme/php/php.exe";
+ # add second try (xampp)
+ if (! -e $phpexe)
+ {
+ $phpexe = "C:/xampp/php/php.exe";
+ }
+ }
+ elsif ( $OSNAME eq "cygwin" )
+ {
+ $phpexe = "/cygdrive/c/programme/php/php";
+ }
+ else
+ {
+ print "getPHPExecutable(): unknown environment. ($OSNAME)\n";
+ }
+ if (! $phpexe)
+ {
+ print "getPHPExecutable(): ERROR: php executable not found.\n";
+ exit(1);
+ }
+ return $phpexe;
+}
+# ------------------------------------------------------------------------------
+# helper to call external java with popen
+sub calljava($$$)
+{
+ local *IN_FILE;
+ my $javaexe = shift;
+ my $sParams = shift;
+ my $sDebug = shift;
+ my $line;
+ my $error = 1;
+
+ if (! $javaexe)
+ {
+ log_print("ERROR: javaexe not set.\n");
+ return;
+ }
+ if (! $sDebug)
+ {
+ $sDebug = "";
+ }
+ $javaexe = quoteIfNeed($javaexe);
+ log_print ("CALLJAVA: $javaexe $sDebug $sParams\n");
+ if (open(IN_FILE, "$javaexe $sDebug $sParams 2>&1 |"))
+ {
+ while ($line = <IN_FILE>)
+ {
+ chomp($line);
+ log_print ("- $line\n");
+ }
+ close(IN_FILE);
+ $error = errorAdaption($?);
+ }
+ else
+ {
+ log_print ("calljava(): Can't popen '$javaexe' with parameter '$sParams'\n");
+ $error = 1;
+ }
+ return $error;
+}
+
+# ------------------------------------------------------------------------------
+sub getPerlExecutable()
+{
+ my $perlexe;
+ if ( $ENV{PERL} )
+ {
+ $perlexe = $ENV{PERL};
+ }
+ elsif ( $ENV{PERLEXE} )
+ {
+ $perlexe = $ENV{PERLEXE};
+ }
+ else
+ {
+ if ($OSNAME eq "MSWin32")
+ {
+ $perlexe="C:/xampp/perl/bin/perl.exe";
+ if (! -e $perlexe)
+ {
+ $perlexe="r:/btw/perl/bin/perl";
+ }
+ if (! -e $perlexe)
+ {
+ $perlexe="C:/Programme/Perl/bin/perl.exe";
+ }
+ }
+ elsif ($OSNAME eq "cygwin")
+ {
+ $perlexe = "perl";
+ }
+ elsif ($OSNAME eq "solaris")
+ {
+ $perlexe="/so/env/bt_solaris_intel/bin/perl";
+ }
+ elsif ($OSNAME eq "linux")
+ {
+ $perlexe="/so/env/bt_linux_libc2.32/DEV300/bin/perl";
+ }
+ else
+ {
+ log_print "WARNING: Use only the fallback of perl executable.\n";
+ $perlexe = "perl"; # FALLBACK
+ }
+ }
+ if ( ! -e $perlexe)
+ {
+ log_print "getPerlExecutable(): There exist no perl executable.\n";
+ exit(1);
+ }
+ return $perlexe;
+}
+# ------------------------------------------------------------------------------
+# helper to call external perl with popen
+sub callperl($$$)
+{
+ local *IN_FILE;
+ my $perlexe = shift;
+ my $perlprogram = shift;
+ my $sParams = shift;
+ my $line;
+ my $error;
+
+ log_print("CALLPERL: $perlexe $perlprogram $sParams\n");
+# if (open(IN_FILE, "$perlexe $sParams 2>&1 |"))
+ if (open(IN_FILE, "$perlexe $perlprogram $sParams |"))
+ {
+ while ($line = <IN_FILE>)
+ {
+ chomp($line);
+ log_print ("- $line\n");
+ }
+ close(IN_FILE);
+ $error = errorAdaption($?);
+ }
+ else
+ {
+ log_print ("Can't popen '$perlexe' with parameter: '$sParams'\n");
+ $error = 1;
+ }
+ return $error;
+}
+# ------------------------------------------------------------------------------
+our $sJavaExecutable;
+sub setJavaExecutable($)
+{
+ $sJavaExecutable = shift;
+}
+
+# sub getJava14()
+# {
+# my $sJava14;
+# if ($OSNAME eq "MSWin32")
+# {
+# if ($sJavaExecutable)
+# {
+# $sJava14 = $sJavaExecutable;
+# }
+# else
+# {
+# # HARDCODE!
+# $sJava14 = "C:\\Programme\\Java\\j2re1.4.2_10\\bin\\java.exe";
+# }
+# }
+# else
+# {
+# if ($sJavaExecutable)
+# {
+# $sJava14 = $sJavaExecutable;
+# }
+# else
+# {
+# # HARDCODE!
+# $sJava14 = "/opt/java14/bin/java";
+# }
+# }
+# if ( ! -e $sJava14 )
+# {
+# log_print ("Java14 not found. Is searched in '$sJava14'\n");
+# # exit(1);
+# return "";
+# }
+# return $sJava14;
+# }
+# ------------------------------------------------------------------------------
+sub getJava15()
+{
+ my $sJava15;
+ if ($sJavaExecutable)
+ {
+ $sJava15 = $sJavaExecutable;
+ }
+ else
+ {
+ if ($OSNAME eq "MSWin32")
+ {
+ # HARDCODE!
+ $sJava15 = "C:\\Programme\\Java\\jre1.5.0_22\\bin\\java.exe";
+ if ( ! -e $sJava15)
+ {
+ $sJava15 = "C:\\Program Files\\Java\\jre6\\bin\\java.exe";
+ }
+ if ( ! -e $sJava15)
+ {
+ $sJava15 = "C:\\Java\\jdk1.6\\bin\\java.exe";
+ }
+ }
+ elsif ($OSNAME eq "cygwin")
+ {
+ $sJava15 = "java";
+ }
+ else
+ {
+ # HARDCODE!
+ if ($OSNAME eq "solaris")
+ {
+ $sJava15 = "/usr/bin/java";
+ }
+ else
+ {
+ $sJava15 = "/usr/bin/java";
+ if ( ! -e $sJava15 )
+ {
+ $sJava15 = "/opt/java15/bin/java";
+ }
+ }
+ }
+ if ( ! -e $sJava15 )
+ {
+ log_print ("Java15 not found. Is searched in '$sJava15'\n");
+ # exit(1);
+ return "";
+ }
+ }
+ return $sJava15;
+}
+# ------------------------------------------------------------------------------
+sub getJava16()
+{
+ my $sJava16;
+ if ($sJavaExecutable)
+ {
+ $sJava16 = $sJavaExecutable;
+ }
+ else
+ {
+ if ($OSNAME eq "MSWin32")
+ {
+ # HARDCODE!
+ $sJava16 = "C:\\Programme\\Java\\jre1.6.0_16\\bin\\java.exe";
+ if ( ! -e $sJava16)
+ {
+ $sJava16 = "C:\\Program Files\\Java\\jre6\\bin\\java.exe";
+ }
+ if ( ! -e $sJava16)
+ {
+ $sJava16 = "C:\\Java\\jdk1.6\\bin\\java.exe";
+ }
+ # }
+ }
+ elsif ($OSNAME eq "cygwin")
+ {
+ # $sJava16 = "java";
+ $sJava16 = "C:/Program Files/Java/jdk1.6.0_16/bin/java.exe";
+ }
+ else
+ {
+ # HARDCODE!
+ if ($OSNAME eq "solaris")
+ {
+ $sJava16 = "/usr/bin/java";
+ }
+ else
+ {
+ $sJava16 = "/usr/bin/java";
+ if ( ! -e $sJava16 )
+ {
+ $sJava16 = "/opt/java16/bin/java";
+ }
+ }
+ }
+ if ( ! -e $sJava16 )
+ {
+ log_print ("Java16 not found. Is searched in '$sJava16'\n");
+ # exit(1);
+ return "";
+ }
+ }
+ return $sJava16;
+}
+
+# ------------------------------------------------------------------------------
+sub getJavaExecutable()
+{
+ return getJava16();
+}
+
+# ------------------------------------------------------------------------------
+# this function is a helper for parameters
+# if quotes the whole string with 'STR' or "STR" and replace quotes in it's content for the right.
+sub singleQuote($)
+{
+ my $sStr = shift;
+ if ( $OSNAME eq "MSWin32")
+ {
+ # we are MSWin32 (quote \" stronger)
+ # $sStr =~ s/\'/\"/g;
+ $sStr =~ s/\'/\\\"/g;
+ return "\"" . $sStr . "\"";
+ }
+ else
+ {
+ if (index($sStr, "'") >= 0)
+ {
+ # replace all single quotes ("'") by "\""
+ $sStr =~ s/\'/\"/g;
+ }
+ }
+ return "'" . $sStr . "'";
+}
+
+sub quote($)
+{
+ my $sName = shift;
+ return "\"" . $sName . "\"";
+}
+
+sub quoteIfNeed($)
+{
+ my $sName = shift;
+ if (-1 != index($sName, " "))
+ {
+ return quote($sName);
+ }
+ return $sName;
+}
+
+
+# ------------------------------------------------------------------------------
+our $sToolsPath;
+sub setToolsPath($)
+{
+ my $sNewPath = shift;
+ $sToolsPath = $sNewPath;
+}
+
+sub ExecSQL($)
+{
+ my $sSQL = shift;
+
+ my $error;
+ my @aResult;
+ my $sSQLDirect;
+ if ($sToolsPath)
+ {
+ $sSQLDirect = $sToolsPath;
+ $sSQLDirect .= "/";
+ }
+ $sSQLDirect .= "sql_direct.php";
+
+ # select(undef, undef, undef, 0.060);
+ # log_print("ExecSQL: $sSQL\n");
+ # sleep (1);
+ ($error, @aResult) = callphp(getPHPExecutable(), $sSQLDirect, singleQuote($sSQL));
+ if ($error)
+ {
+ log_print ("ExecSQL: An Error occured.\n");
+ log_print ("PHP: " . getPHPExecutable() . "\n");
+ log_print ("SQL Statement: " . singleQuote($sSQL) . "\n");
+ # exit(1);
+ }
+ # select(undef, undef, undef, 0.125);
+ # sleep (1);
+ return @aResult;
+}
+
+# ------------------------------------------------------------------------------
+# helper to call external php with popen
+# sub callexe($$$)
+# {
+# local *IN_FILE;
+# my $exe = shift;
+# my $program = shift;
+# my $sParams = shift;
+# my $line;
+# my $error;
+# my @result;
+#
+# $exe = quoteIfNeed($exe);
+# $program = quoteIfNeed($program);
+#
+# # print "Will send: $exe $sParams\n";
+# # log_print("CALLEXE: $exe $program $sParams\n");
+# if (open(IN_FILE, "$exe $program $sParams |"))
+# {
+# while ($line = <IN_FILE>)
+# {
+# chomp($line);
+# # $line .= " ";
+# push(@result, $line);
+# # print "callphp output: $line\n";
+# }
+# close(IN_FILE);
+# $error = errorAdaption($?);
+# }
+# else
+# {
+# print "Can't popen '$exe' with parameter: '$sParams'\n";
+# $error = 1;
+# }
+# return $error, @result;
+# }
+
+1;
diff --git a/testgraphical/source/ConvwatchHelper.pm b/testgraphical/source/ConvwatchHelper.pm
new file mode 100644
index 000000000000..8f157641b1f4
--- /dev/null
+++ b/testgraphical/source/ConvwatchHelper.pm
@@ -0,0 +1,574 @@
+package ConvwatchHelper;
+
+use English;
+use warnings;
+use strict;
+use Cwd;
+use Cwd 'chdir';
+
+use CallExternals;
+use stringhelper;
+use filehelper;
+use oshelper;
+use loghelper;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.39 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&getQADEVToolsPath &setProjectRoot &getProjectRoot &checkForStop &getSofficeExe &setINPATH);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+# ------------------------------------------------------------------------------
+our $tempprefix;
+
+# sub getTempDir()
+# {
+# my $sTempDir;
+# if (! $tempprefix)
+# {
+# if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+# {
+# # $tempdir = "C:/gfxcmp/temp";
+# $tempprefix = "//so-gfxcmp-lin/gfxcmp-data/wntmsci/temp";
+# }
+# elsif ($OSNAME eq "linux")
+# {
+# $tempprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxlngi/temp";
+# }
+# elsif ($OSNAME eq "solaris")
+# {
+# # $tempdir = "/space/gfxcmp/temp";
+# $tempprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxsoli/temp";
+# }
+# else
+# {
+# print "Error: This environment isn't supported yet.\n";
+# exit(1);
+# }
+# }
+# $sTempDir = $tempprefix;
+# return $sTempDir;
+# }
+# ------------------------------------------------------------------------------
+# in filehelper
+# our $programprefix;
+#
+# sub getProgramPrefix($)
+# {
+# my $sDBDistinct = shift;
+#
+# my $sProgramPrefix;
+# if (! $programprefix)
+# {
+# if ($OSNAME eq "MSWin32")
+# {
+# # $programprefix = "C:/gfxcmp/programs";
+# $programprefix = "C:/gp";
+# }
+# elsif ($OSNAME eq "linux")
+# {
+# $programprefix = "/space/gfxcmp/programs";
+# }
+# elsif ($OSNAME eq "solaris")
+# {
+# $programprefix = "/space/gfxcmp/programs";
+# }
+# else
+# {
+# print "Error: This environment isn't supported yet.\n";
+# exit(1);
+# }
+# }
+# $sProgramPrefix = appendPath($programprefix, substr($sDBDistinct, 0, 19));
+# return $sProgramPrefix;
+# }
+# ------------------------------------------------------------------------------
+sub getQADEVToolsPath()
+{
+ my $sNewPath = appendPath(getToolsPrefix(), "qadev");
+ $sNewPath = appendPath($sNewPath, "scripts");
+ $sNewPath = appendPath($sNewPath, "gfxcmp_ui");
+ return $sNewPath;
+}
+
+# in filehelper
+# our $toolsprefix;
+#
+# sub getToolsPrefix()
+# {
+# my $sToolsPrefix;
+# if (! $toolsprefix)
+# {
+# if ($OSNAME eq "MSWin32")
+# {
+# $toolsprefix = "C:/gfxcmp/tools";
+# }
+# elsif ($OSNAME eq "linux")
+# {
+# $toolsprefix = "/space/gfxcmp/tools";
+# }
+# elsif ($OSNAME eq "solaris")
+# {
+# $toolsprefix = "/space/gfxcmp/tools";
+# }
+# else
+# {
+# print "Error: This environment isn't supported yet.\n";
+# exit(1);
+# }
+# }
+# $sToolsPrefix = $toolsprefix;
+# return $sToolsPrefix;
+# }
+# ------------------------------------------------------------------------------
+our $sProjectRoot;
+sub setProjectRoot($)
+{
+ $sProjectRoot = shift;
+ log_print "\$sProjectRoot := $sProjectRoot\n";
+}
+sub getProjectRoot()
+{
+ if ($sProjectRoot)
+ {
+ return $sProjectRoot;
+ }
+ die "setProjectRoot(PATH) not set.\n";
+}
+
+our $sINPATH;
+sub setINPATH($)
+{
+ $sINPATH = shift;
+}
+sub getINPATH()
+{
+ if ($sINPATH)
+ {
+ return $sINPATH;
+ }
+ die "setINPATH(PATH) not set.\n";
+}
+our $dataprefix;
+
+# sub getDataPrefix()
+# {
+# my $sDataPrefix;
+# if (! $dataprefix)
+# {
+# if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+# {
+# # $dataprefix = "C:/gfxcmp/data";
+# # $dataprefix = "//so-gfxcmp-lin/gfxcmp-data/wntmsci";
+# $dataprefix = getProjectRoot();
+# }
+# elsif ($OSNAME eq "linux")
+# {
+# # $dataprefix = "/space/gfxcmp/data";
+# # $dataprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxlngi";
+# $dataprefix = getProjectRoot();
+# }
+# elsif ($OSNAME eq "solaris")
+# {
+# # $dataprefix = "/space/gfxcmp/data";
+# # $dataprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxsoli";
+# $dataprefix = getProjectRoot();
+# }
+# else
+# {
+# print "Error: This environment isn't supported yet.\n";
+# exit(1);
+# }
+# $dataprefix = appendPath(getProjectRoot(), getINPATH());
+# $dataprefix = appendPath($dataprefix, "data");
+# }
+# $sDataPrefix = $dataprefix;
+# return $sDataPrefix;
+# }
+
+# ------------------------------------------------------------------------------
+
+# sub _shortsleep($)
+# {
+# # sleep 1;
+# select(undef, undef, undef, 0.333);
+# }
+#
+# sub _waitInSeconds($)
+# {
+# my $nLength = shift;
+# my $i;
+# my $j;
+#
+# for ($j=0;$j<$nLength;$j++)
+# {
+# for ($i=0;$i<$j;$i++)
+# {
+# print ".";
+# }
+# for ($i=$j;$i<$nLength;$i++)
+# {
+# print " ";
+# }
+# _shortsleep( 1 );
+# print "\r";
+# }
+#
+# for ($j=0;$j<=$nLength;$j++)
+# {
+# for ($i=0;$i<$j;$i++)
+# {
+# print " ";
+# }
+# for ($i=$j;$i<$nLength;$i++)
+# {
+# print ".";
+# }
+# _shortsleep( 1 );
+# print "\r";
+# }
+# }
+#
+# sub wait30seconds()
+# {
+# _waitInSeconds(20);
+# _waitInSeconds(20);
+# }
+
+sub checkForStop($)
+{
+ my $sStopFilename = shift;
+ my $sStopFilePath;
+ if ($OSNAME eq "MSWin32")
+ {
+ $sStopFilePath = "C:/temp/";
+ }
+ else
+ {
+ $sStopFilePath = "/tmp/";
+ }
+ my $sStopFile = $sStopFilePath . $sStopFilename;
+ if ( -e "$sStopFile" )
+ {
+ print "Stop of Convwatch tool forced!\n";
+ unlink($sStopFile);
+ exit(2);
+ }
+}
+
+# ----------------------------------------------------------------------------------------
+sub readdirectory($$$);
+
+sub readdirectory($$$)
+{
+ my $startdir = shift;
+ my $sUserParameter = shift;
+ my $hook = shift;
+
+ my $myfile;
+
+ local *DIR;
+ chdir $startdir;
+ cwd();
+
+ my $nCountFiles = 0;
+ if (opendir (DIR, $startdir)) # Directory oeffnen
+ {
+ while ($myfile = readdir(DIR))
+ { # ein filename holen
+ #if (! -l $myfile) # not a link
+ #{
+ if (-d $myfile ) # is a directory
+ {
+ if ( -l $myfile)
+ {
+ next;
+ }
+ # if ( $myfile eq "help" ||
+ # $myfile eq "presets" ||
+ # $myfile eq "registry" ||
+ # $myfile eq "uno_packages" ||
+ # $myfile eq "lib" ||
+ # $myfile eq "user_tree" )
+ # {
+ # next;
+ # }
+
+ if ($myfile ne "." && $myfile ne "..")
+ {
+ my $sNewStartDir = appendPath($startdir, $myfile); # neuen Directorystring erstellen
+ # if ($sNewStartDir =~ "^\/proc" ||
+ # $sNewStartDir =~ "^\/dev" ||
+ # $sNewStartDir =~ "^\/udev" ||
+ # $sNewStartDir =~ "lost+found" )
+ # {
+ # next;
+ # }
+ # my $sNewSUserParameter = $sUserParameter . $myfile ."/";
+ # do a recursive call
+ # $nCountFiles++;
+ my $nFileCount = readdirectory($sNewStartDir, $sUserParameter, $hook);
+ # workOnDir($sNewDir, $nFileCount);
+ $nCountFiles += $nFileCount;
+
+ chdir ($startdir); # zurueckwechseln.
+ cwd();
+ }
+ }
+ else
+ {
+ # File must exist, be a regular file and must not be the $onlyOnFile
+ if (-f $myfile)
+ {
+ # print STDERR " $startdir" . "$myfile\n";
+ $nCountFiles++;
+ # workOnFile($startdir, $myfile, $destdir);
+ $hook->($startdir, $myfile, $sUserParameter);
+ }
+ }
+ #}
+ #else
+ #{
+ # print STDERR "linked file: $dir/$myfile\n";
+ #}
+ }
+ closedir(DIR);
+ }
+ else
+ {
+ print STDERR "could not open $startdir\n";
+ }
+ return $nCountFiles;
+}
+
+our $lcl_sSofficeBinPath;
+our $lcl_sSofficeBinName;
+
+sub searchSofficeBin($$$)
+{
+ my $currentDir = shift;
+ my $currentFile = shift;
+ my $sUserParameter = shift;
+
+ if ($currentFile eq $sUserParameter)
+ {
+ my $sSourceFilename;
+ $sSourceFilename = appendPath($currentDir, $currentFile);
+
+ if ( -e "$sSourceFilename" )
+ {
+ $lcl_sSofficeBinPath = $currentDir;
+ $lcl_sSofficeBinName = $currentFile;
+ }
+ }
+}
+
+# our $lcl_sUnoPkgPath;
+#
+# sub searchUnoPkgBin($$$)
+# {
+# my $currentDir = shift;
+# my $currentFile = shift;
+# my $sUserParameter = shift;
+#
+# if ($currentFile eq $sUserParameter)
+# {
+# my $sSourceFilename;
+# $sSourceFilename = appendPath($currentDir, $currentFile);
+# if ( -e "$sSourceFilename" )
+# {
+# $lcl_sUnoPkgPath = $currentDir;
+# }
+# }
+# }
+
+# our $lcl_sJARPath;
+
+# sub searchJARFile($$$)
+# {
+# my $currentDir = shift;
+# my $currentFile = shift;
+# my $sUserParameter = shift;
+#
+# if ($currentFile eq $sUserParameter)
+# {
+# my $sSourceFilename;
+# $sSourceFilename = appendPath($currentDir, $currentFile);
+# if ( -e "$sSourceFilename" )
+# {
+# $lcl_sJARPath = $currentDir;
+# }
+# }
+# }
+
+# return the PATH, where the file was found
+# sub searchForJAR($$)
+# {
+# my $sPathToInstallOffice = shift;
+# my $sJARFileName = shift;
+#
+# my $sCurrentPath = cwd();
+#
+# $lcl_sJARPath = "";
+# readdirectory(${sPathToInstallOffice}, ${sJARFileName}, \&searchJARFile);
+#
+# chdir $sCurrentPath;
+# cwd();
+#
+# return $lcl_sJARPath;
+# }
+
+# sub getUnoPkg($)
+# {
+# my $sPathToInstallOffice = shift;
+#
+# my $sUnoPkgName = "unopkg.bin";
+# if (isWindowsEnvironment())
+# {
+# $sUnoPkgName = "unopkg.exe";
+# }
+#
+# my $sCurrentPath = cwd();
+#
+# $lcl_sUnoPkgPath = "";
+# readdirectory(${sPathToInstallOffice}, ${sUnoPkgName}, \&searchUnoPkgBin);
+#
+# chdir $sCurrentPath;
+# cwd();
+#
+# return ($lcl_sUnoPkgPath, $sUnoPkgName);
+# }
+
+sub getSofficeExe($)
+{
+ my $sPathToOffice = shift;
+
+ my $sSofficeExeName = "soffice";
+ if (isWindowsEnvironment())
+ {
+ $sSofficeExeName = "soffice.exe";
+ }
+
+ my $sCurrentPath = cwd();
+
+ $lcl_sSofficeBinPath = "";
+ $lcl_sSofficeBinName = "";
+ readdirectory(${sPathToOffice}, ${sSofficeExeName}, \&searchSofficeBin);
+
+ chdir $sCurrentPath;
+ cwd();
+
+ return ($lcl_sSofficeBinPath, $lcl_sSofficeBinName);
+}
+
+# sub checkOfficeAlreadyInstalled($)
+# {
+# my $sOfficePath = shift;
+#
+# my $sCurrentPath = cwd();
+#
+# $lcl_sSofficeBinPath = "";
+# my $sOldOfficePath = appendPath($sOfficePath, "program");
+# if ( -d "$sOldOfficePath" )
+# {
+# $sOldOfficePath = appendPath($sOldOfficePath, "soffice.bin");
+# if ( -e $sOldOfficePath )
+# {
+# return 1;
+# }
+# }
+# else
+# {
+# if (isWindowsEnvironment())
+# {
+# my $sThreeLayerOffice = appendPath($sOfficePath, "Sun");
+# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "StarOffice 9");
+# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "program");
+# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "soffice.bin");
+#
+# if ( -e "$sThreeLayerOffice" )
+# {
+# return 1;
+# }
+# }
+# else
+# {
+# my $sThreeLayerOffice = appendPath($sOfficePath, "staroffice9");
+# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "program");
+# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "soffice.bin");
+# if ( -e "$sThreeLayerOffice" )
+# {
+# return 1;
+# }
+# }
+# }
+#
+# # soffice.bin not found in fast path
+# readdirectory($sOfficePath, "soffice.bin", \&searchSofficeBin);
+# chdir $sCurrentPath;
+# cwd();
+#
+# if ( $lcl_sSofficeBinPath ne "" )
+# {
+# return 1;
+# }
+# return 0;
+# # this is the old check
+# # my $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "program");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin");
+# # if ( -e $sOfficePathCheck )
+# # {
+# # return 1;
+# # }
+# #
+# # # check path system of tree layer office
+# # if ( isWindowsEnvironment() )
+# # {
+# # $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "Sun");
+# # if ( ! -e $sOfficePathCheck)
+# # {
+# # # could be an OpenOffice.org
+# # return 0;
+# # }
+# # else
+# # {
+# #
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "StarOffice 9");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "program");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin");
+# # if ( -e $sOfficePathCheck )
+# # {
+# # return 1;
+# # }
+# # print "Error: There exist no Office, maybe an unsupported version?\n";
+# # }
+# # }
+# # elsif ( isUnixEnvironment() )
+# # {
+# # $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "staroffice9");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "staroffice9");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "program");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin");
+# # if ( -e $sOfficePathCheck )
+# # {
+# # return 1;
+# # }
+# # print "Error: There exist no Office, maybe an unsupported version?\n";
+# # }
+# # else
+# # {
+# # print "Error: There exist no Office, maybe an unsupported version?\n";
+# # }
+# # return 0;
+# }
+
+1;
diff --git a/testgraphical/source/compare.pl b/testgraphical/source/compare.pl
new file mode 100644
index 000000000000..4aef877dc2b7
--- /dev/null
+++ b/testgraphical/source/compare.pl
@@ -0,0 +1,408 @@
+eval 'exec perl -wS $0 ${1+\"$@\"}'
+ if 0;
+
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+BEGIN
+{
+ # Adding the path of this script file to the include path in the hope
+ # that all used modules can be found in it.
+ $0 =~ /^(.*)[\/\\]/;
+ push @INC, $1;
+ # print "PATH: " . $1 . "\n";
+}
+
+# my $e;
+# foreach $e (keys %ENV)
+# {
+# print "$e := $ENV{$e}" . "\n";
+# }
+
+use strict;
+use graphical_compare;
+use ConvwatchHelper;
+use filehelper;
+use timehelper;
+use loghelper;
+
+use Cwd;
+use File::Basename;
+use Getopt::Long;
+use English; # $OSNAME, ...
+use File::Path;
+use Cwd 'chdir';
+
+our $help; # Help option flag
+our $version; # Version option flag
+# our $test;
+
+# our $MAJOR;
+# our $MINOR;
+# our $cwsname;
+our $pool;
+our $document;
+our $creatortype;
+our $prepareonly = 0;
+our $force;
+our $verbose = 0;
+our $show = 0;
+our $connectionstring;
+
+# Prototypes
+sub print_usage(*);
+sub prepare();
+sub CompareFiles($$);
+
+# flush STDOUT
+# my $old_handle = select (STDOUT); # "select" STDOUT and save # previously selected handle
+# $| = 1; # perform flush after each write to STDOUT
+# select ($old_handle); # restore previously selected handle
+
+$OUTPUT_AUTOFLUSH=1; # works only if use English is used.
+
+our $version_info = 'compare.pl';
+
+GetOptions(
+# "MAJOR=s" => \$MAJOR,
+# "MINOR=s" => \$MINOR,
+# "cwsname=s" => \$cwsname,
+ "pool=s" => \$pool,
+ "document=s" => \$document,
+ "creatortype=s" => \$creatortype,
+ "prepareonly=s" => \$prepareonly,
+ "connectionstring=s" => \$connectionstring,
+
+ "force" => \$force,
+ "verbose" => \$verbose,
+ "show" => \$show,
+
+# "test" => \$test,
+ "help" => \$help,
+ "version" => \$version
+ );
+
+if ($help)
+{
+ print_usage(*STDOUT);
+ exit(0);
+}
+# Check for version option
+if ($version)
+{
+ print STDERR "$version_info\n";
+ exit(0);
+}
+
+if ($prepareonly)
+{
+ $force=1;
+}
+
+prepare();
+if ($connectionstring)
+{
+ setConnectionString($connectionstring);
+}
+
+my $sDocumentPool = appendPath(getProjectRoot(), "document-pool");
+# print "ProjectRoot: " . getProjectRoot() . "\n";
+if ($ENV{DOCUMENTPOOL})
+{
+ if ( -d $ENV{DOCUMENTPOOL})
+ {
+ print "overwrite default Documentpool: '$sDocumentPool'\n";
+ print " with \$ENV{DOCUMENTPOOL}: $ENV{DOCUMENTPOOL}\n";
+ $sDocumentPool = $ENV{DOCUMENTPOOL};
+ }
+ else
+ {
+ print "Given \$DOCUMENTPOOL doesn't exist.\n";
+ }
+}
+
+my $err = 0;
+my $nCompareTime = getTime();
+
+# if we want to check one file, give -pool and -document
+# if we want to check the whole pool, give -pool
+# if we want to check all, call without parameters
+if ($pool)
+{
+ if ($document)
+ {
+ $err = SingleDocumentCompare( $sDocumentPool,
+ $pool,
+ $document,
+ $creatortype,
+ $prepareonly,
+ $show
+ );
+ }
+ else
+ {
+ $err = CompareFiles($sDocumentPool, $pool);
+ }
+}
+else
+{
+ local *DIR;
+ if (opendir (DIR, $sDocumentPool)) # Directory oeffnen
+ {
+ my $myfile;
+ while ($myfile = readdir(DIR))
+ { # ein filename holen
+ if ($myfile eq "." ||
+ $myfile eq "..")
+ {
+ next;
+ }
+ my $sDocumentPath = appendPath($sDocumentPool, $myfile);
+ if ( -d $sDocumentPath )
+ {
+ $err += CompareFiles($sDocumentPool, $myfile);
+ }
+ elsif ( -f $sDocumentPath )
+ {
+ print "Warning: the file '$myfile' will not compared.\n";
+ }
+ }
+ closedir(DIR);
+ }
+ # my $sPool = "eis-chart";
+ # $err += CompareFiles($sDocumentPool, "eis-chart");
+ # $err += CompareFiles($sDocumentPool, "eis-impress");
+ # $err += CompareFiles($sDocumentPool, "eis-writer");
+ # $err += CompareFiles($sDocumentPool, "eis-calc");
+
+}
+
+printTime(endTime($nCompareTime));
+exit ($err);
+
+# ------------------------------------------------------------------------------
+
+sub CompareFiles($$)
+{
+ my $sDocumentPath = shift;
+ my $sPool = shift;
+ my %aFailedHash;
+ my $startdir = appendPath($sDocumentPath, $sPool);
+
+ local *DIR;
+ if (opendir (DIR, $startdir)) # Directory oeffnen
+ {
+ my $myfile;
+ while ($myfile = readdir(DIR))
+ { # ein filename holen
+ if ($myfile eq "knownissues.xcl")
+ {
+ next;
+ }
+ my $sAbsoluteFile = appendPath($startdir, $myfile);
+ if (-f $sAbsoluteFile)
+ {
+ my $nIssue;
+ my $sIssueText;
+ ($nIssue, $sIssueText) = checkForKnownIssue($startdir, $myfile);
+ if ($nIssue == 0)
+ {
+ $err = SingleDocumentCompare(
+ # "/net/so-gfxcmp-documents.germany.sun.com/export/gfxcmp/document-pool", # $documentpoolpath,
+ $sDocumentPool,
+ $sPool, # $documentpool,
+ $myfile, # $documentname);
+ $creatortype, # $destinationcreatortype,
+ $prepareonly,
+ $show
+ );
+ $aFailedHash{$myfile} = $err;
+ }
+ else
+ {
+ print "$myfile [KNOWN ISSUE: #$sIssueText#]\n";
+ }
+ }
+ }
+ closedir(DIR);
+ }
+
+ print "***** State for graphical compare of pool: '$sPool' ******\n";
+ my $nErrorCount = 0;
+ my $file;
+ foreach $file (keys %aFailedHash)
+ {
+ if ($aFailedHash{$file} != 0)
+ {
+ print "Failed: $file\n";
+ $nErrorCount++;
+ }
+ }
+ print "Whole unit: ";
+ if ($nErrorCount > 0)
+ {
+ print "PASSED.FAILED\n";
+ }
+ else
+ {
+ print "PASSED.OK\n";
+ }
+ print "************************************************************\n";
+ return $nErrorCount;
+}
+# ------------------------------------------------------------------------------
+# return issue number if file exists in knownissues.xcl file
+sub checkForKnownIssue($$)
+{
+ my $startdir = shift;
+ my $myfile = shift;
+
+ if ($force)
+ {
+ return 0,"";
+ }
+
+ my $sKnownIssueFile = appendPath($startdir, "knownissues.xcl");
+ my $sIssueText = "unknown";
+ local *ISSUES;
+ my $nIssue = 0;
+ my $sCurrentSection;
+
+ if (open(ISSUES, $sKnownIssueFile))
+ {
+ my $line;
+ while ($line = <ISSUES>)
+ {
+ chomp($line);
+ if ($line =~ /\[(.*)\]/ )
+ {
+ $sCurrentSection = $1;
+ next;
+ }
+ if ($sCurrentSection eq $creatortype)
+ {
+ if ($line =~ /\#\#\# (.*) \#\#\#/ )
+ {
+ $sIssueText = $1;
+ }
+ if ($line =~ /^${myfile}$/ )
+ {
+ $nIssue = 1;
+ last;
+ }
+ }
+ }
+ close(ISSUES);
+ }
+ return $nIssue, $sIssueText;
+}
+# ------------------------------------------------------------------------------
+sub prepare()
+{
+ # directory structure:
+ # documents will be found in
+ # ../document-pool/eis-tests
+
+ # references will be found in
+ # ../references/unxlngi/eis-tests
+ # ../references/wntmsci/eis-tests
+
+ # output goes to
+ # ../unxlngi6.pro/misc
+
+ if ($verbose)
+ {
+ setVerbose();
+ }
+
+ # TEST
+ if (!$ENV{INPATH})
+ {
+ if ($OSNAME eq "linux")
+ {
+ # just for debug
+ setINPATH("unxlngi6.pro");
+ }
+ }
+ else
+ {
+ setINPATH($ENV{INPATH});
+ }
+
+ if (! $creatortype)
+ {
+ $creatortype= "ps";
+ }
+
+ my $cwd = getcwd();
+ print "Current Directory: $cwd\n" if ($verbose);
+ my $sProjectBase;
+ if ($ENV{PRJ})
+ {
+ # print "cwd:=$cwd\n";
+ # print "PRJ:=$ENV{PRJ}\n";
+ $sProjectBase = appendPath($cwd, $ENV{PRJ});
+ }
+ else
+ {
+ $sProjectBase = dirname($cwd);
+ }
+ if ($OSNAME eq "cygwin")
+ {
+ $sProjectBase = `cygpath -w $sProjectBase`;
+ chomp($sProjectBase);
+ $sProjectBase = unixpath($sProjectBase);
+ # print "cygwin patch \$sProjectBase := $sProjectBase\n";
+ }
+ # print "Project base path: $sProjectBase\n";
+ setProjectRoot($sProjectBase);
+
+
+ # TEST TEST TEST
+ # exit (0);
+}
+# ------------------------------------------------------------------------------
+sub print_usage(*)
+{
+ local *HANDLE = $_[0];
+ my $tool_name = basename($0);
+
+ print(HANDLE <<END_OF_USAGE);
+
+Usage: $tool_name [OPTIONS]
+
+ -pool Give pool name out of document-pool directory.
+ But all documents list in knownissues.xcl will not check.
+ -document Give a single document to test, the known issue list will ignored.
+ -creatortype=s s:ps create postscript files via print to file.
+ s:pdf create PDF file via export to pdf.
+ -h, --help Print this help, then exit
+ -v, --version Print version number, then exit
+
+END_OF_USAGE
+;
+}
diff --git a/testgraphical/source/cwstestresult.pl b/testgraphical/source/cwstestresult.pl
new file mode 100644
index 000000000000..63c68c827dbd
--- /dev/null
+++ b/testgraphical/source/cwstestresult.pl
@@ -0,0 +1,208 @@
+:
+eval 'exec perl -wS $0 ${1+"$@"}'
+ if 0;
+
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+#
+# cwstestresult.pl - publish results of CWS tests to EIS
+#
+
+use strict;
+use Getopt::Long;
+use Cwd;
+
+#### module lookup
+my @lib_dirs;
+BEGIN {
+ if ( !defined($ENV{SOLARENV}) ) {
+ die "No environment found (environment variable SOLARENV is undefined)";
+ }
+ push(@lib_dirs, "$ENV{SOLARENV}/bin/modules");
+ push(@lib_dirs, "$ENV{COMMON_ENV_TOOLS}/modules") if defined($ENV{COMMON_ENV_TOOLS});
+}
+use lib (@lib_dirs);
+
+use Cws;
+
+#### global #####
+( my $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/;
+
+my $is_debug = 1; # enable debug
+my $opt_master; # option: master workspace
+my $opt_child; # option: child workspace
+my $opt_milestone; # option: milestone
+my $opt_testrunName; # option: testrunName
+my $opt_testrunPlatform; # option: testrunPlatfrom
+my $opt_resultPage; # option: resultPage
+
+
+#### main #####
+
+my $arg_status= parse_options();
+testresult($arg_status);
+exit(0);
+
+#### subroutines ####
+
+sub testresult
+{
+ my $status = shift;
+ # get master and child workspace
+ my $masterws = $opt_master ? uc($opt_master) : $ENV{WORK_STAMP};
+ my $milestone = $opt_milestone ? $opt_milestone : $ENV{UPDMINOR};
+ my $childws = $opt_milestone ? undef : ( $opt_child ? $opt_child : $ENV{CWS_WORK_STAMP} );
+
+ if ( !defined($masterws) ) {
+ print_error("Can't determine master workspace environment.\n"
+ . "Please initialize environment with setsolar ...", 1);
+ }
+
+ if ( !defined($childws) && !defined($milestone) ) {
+ print_error("Can't determine child workspace environment or milestone.\n"
+ . "Please initialize environment with setsolar ...", 1);
+ }
+ if ( !defined($opt_resultPage) ) {
+ $opt_resultPage="";
+ }
+ my $cws = Cws->new();
+ if ( defined($childws) ) {
+ $cws->child($childws);
+ }
+ $cws->master($masterws);
+ my $eis = $cws->eis();
+
+ no strict;
+ my $result='';
+
+ if ( defined($childws) ) {
+ $opt_resultPage=SOAP::Data->type(string => $opt_resultPage);
+ my $id = $cws->eis_id();
+ if ( is_valid_cws($cws) ) {
+ $result=$eis->submitTestResult($id,$opt_testrunName,$opt_testrunPlatform, $opt_resultPage, $status);
+ } else {
+ print STDERR "cws is not valid";
+ }
+ } else {
+ $opt_resultPage=SOAP::Data->type(string => $opt_resultPage);
+ $result=$eis->submitTestResultMWS($masterws,$milestone,$opt_testrunName,$opt_testrunPlatform, $opt_resultPage, $status);
+ }
+
+ exit(0)
+}
+
+
+sub is_valid_cws
+{
+ my $cws = shift;
+
+ my $masterws = $cws->master();
+ my $childws = $cws->child();
+ # check if we got a valid child workspace
+ my $id = $cws->eis_id();
+ if ( !$id ) {
+ print_error("Child workspace '$childws' for master workspace '$masterws' not found in EIS database.", 2);
+ }
+ return 1;
+}
+
+sub parse_options
+{
+ # parse options and do some sanity checks
+ Getopt::Long::Configure("no_ignore_case");
+ my $help = 0;
+ my $success = GetOptions('h' => \$help,
+ 'M=s' => \$opt_master,
+ 'm=s' => \$opt_milestone,
+ 'c=s' => \$opt_child,
+ 'n=s' => \$opt_testrunName,
+ 'p=s' => \$opt_testrunPlatform ,
+ 'r=s' => \$opt_resultPage );
+ if ( $help || !$success || $#ARGV < 0 || (!defined($opt_testrunName)) || ( !defined($opt_testrunPlatform)) ) {
+ usage();
+ exit(1);
+ }
+
+ print "$opt_master\n";
+ print "$opt_milestone\n";
+ print "$opt_child\n";
+ print "$opt_testrunName\n";
+ print "$opt_testrunPlatform\n";
+ print "$opt_resultPage\n";
+
+ if ( defined($opt_milestone) && defined($opt_child) ) {
+ print_error("-m and -c are mutually exclusive options",1);
+ }
+
+ return $ARGV[0];
+}
+
+# sub print_message
+# {
+# my $message = shift;
+#
+# print STDERR "$script_name: ";
+# print STDERR "$message\n";
+# return;
+# }
+
+sub print_error
+{
+ my $message = shift;
+ my $error_code = shift;
+
+ print STDERR "$script_name: ";
+ print STDERR "ERROR: $message\n";
+
+ if ( $error_code ) {
+ print STDERR "\nFAILURE: $script_name aborted.\n";
+ exit($error_code);
+ }
+ return;
+}
+
+sub usage
+{
+ print STDERR "Usage: cwstestresult[-h] [-M masterws] [-m milestone|-c childws] <-n testrunName> <-p testrunPlatform> <-r resultPage> statusName\n";
+ print STDERR "\n";
+ print STDERR "Publish result of CWS- or milestone-test to EIS\n";
+ print STDERR "\n";
+ print STDERR "Options:\n";
+ print STDERR "\t-h\t\t\thelp\n";
+ print STDERR "\t-M master\t\toverride MWS specified in environment\n";
+ print STDERR "\t-m milestone\t\toverride milestone specified in environment\n";
+ print STDERR "\t-c child\t\toverride CWS specified in environment\n";
+ print STDERR "\t-n testrunName\t\tspecifiy name of the test\n";
+ print STDERR "\t-p testrunPlatform\tspecify platform where the test ran on\n";
+ print STDERR "\t-r resultPage\t\tspecify name of attachment or hyperlink\n";
+ print STDERR "\t\t\t\tfor resultPage\n";
+
+
+ print STDERR "\nExample:\n";
+ print STDERR "\tcwstestresult -c mycws -n Performance -p Windows -r PerfomanceTestWindows.html ok\n";
+}
diff --git a/testgraphical/source/cwstestresulthelper.pm b/testgraphical/source/cwstestresulthelper.pm
new file mode 100644
index 000000000000..37a5315445af
--- /dev/null
+++ b/testgraphical/source/cwstestresulthelper.pm
@@ -0,0 +1,268 @@
+package cwstestresulthelper;
+
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+use English;
+use warnings;
+use strict;
+use Cwd;
+use Cwd 'chdir';
+
+use stringhelper;
+use loghelper;
+use oshelper;
+use filehelper;
+use CallExternals;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&cwstestresult);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+sub cwstestresult($$$$$$)
+{
+ my $sStatus = shift;
+ my $sDBdistinct = shift;
+ my $sourceversion = shift;
+ my $destinationversion = shift;
+
+ my $sSOLARENV; # = getSolenvPath();
+ my $nSOLARENV_fake = 0;
+ my $sCOMMON_ENV_TOOLS;
+ my $nCOMMON_ENV_TOOLS_fake = 0;
+
+ my $MAJOR;
+ my $MINOR;
+ # we need an extra state in DB
+ # if this state is given here, we need to add information in cws back.
+ if ( ! $sSOLARENV)
+ {
+ my @MAJORMINOR=split('_', $sourceversion);
+ if ($#MAJORMINOR < 1)
+ {
+ print "Failure with sourceversion '$sourceversion' not splitable.\n";
+ return;
+ }
+ $MAJOR=$MAJORMINOR[0]; # DEV300, OOH310, ...
+ $MINOR=$MAJORMINOR[1]; # m45, ...
+ if (getEnvironment() eq "wntmsci")
+ {
+ $sSOLARENV="o:/$MAJOR/ooo.$MINOR/solenv";
+ if (! -e $sSOLARENV)
+ {
+ # fallback to old before ause103 (treeconfig)
+ $sSOLARENV="o:/$MAJOR/src.$MINOR/solenv";
+ }
+ }
+ elsif (getEnvironment() eq "unxlngi" ||
+ getEnvironment() eq "unxsoli")
+ {
+ $sSOLARENV="/so/ws/$MAJOR/ooo.$MINOR/solenv";
+ # automount
+ system("ls -al $sSOLARENV >/dev/null");
+ sleep(1);
+ if (! -e $sSOLARENV)
+ {
+ # fallback to old before ause103 (treeconfig)
+ $sSOLARENV="/so/ws/$MAJOR/src.$MINOR/solenv";
+ }
+ }
+ else
+ {
+ log_print("cwstestresult(): This environment is not supported.");
+ return;
+ }
+ }
+ if ( !defined($ENV{SOLARENV}) || length($ENV{SOLARENV}) == 0 )
+ {
+ $ENV{SOLARENV} = $sSOLARENV;
+ log_print(" SOLARENV is: $ENV{SOLARENV} faked\n");
+ $nSOLARENV_fake = 1;
+ }
+ if ( ! $sCOMMON_ENV_TOOLS)
+ {
+ if (isWindowsEnvironment())
+ {
+ $sCOMMON_ENV_TOOLS="r:/etools";
+ }
+ elsif (isUnixEnvironment() )
+ {
+ $sCOMMON_ENV_TOOLS="/so/env/etools";
+ # automount
+ system("ls -al $sCOMMON_ENV_TOOLS >/dev/null");
+ sleep(1);
+ }
+ else
+ {
+ log_print("cwstestresult(): This environment is not supported. (variable COMMON_ENV_TOOLS not set.)");
+ return;
+ }
+ }
+ if ( !defined($ENV{COMMON_ENV_TOOLS}) || length($ENV{COMMON_ENV_TOOLS}) == 0 )
+ {
+ $ENV{COMMON_ENV_TOOLS} = $sCOMMON_ENV_TOOLS;
+ log_print( "COMMON_ENV_TOOLS is: $ENV{COMMON_ENV_TOOLS} faked\n");
+ $nCOMMON_ENV_TOOLS_fake = 1;
+ }
+
+ # if ( !defined($ENV{WORK_STAMP}) )
+ # {
+ # $ENV{WORK_STAMP} = $MAJOR;
+ # log_print( " WORK_STAMP is: $ENV{WORK_STAMP} faked\n");
+ # }
+ # if ( !defined($ENV{UPDMINOR}) )
+ # {
+ # $ENV{UPDMINOR} = $MINOR;
+ # log_print( " UPDMINOR is: $ENV{UPDMINOR} faked\n");
+ # }
+
+ my $nWORK_STAMP_fake = 0;
+ my $nUPDMINOR_fake = 0;
+
+ if ( !defined($ENV{WORK_STAMP}) || length($ENV{WORK_STAMP}) == 0 )
+ {
+ $ENV{WORK_STAMP} = $MAJOR;
+ log_print(" WORK_STAMP is: $ENV{WORK_STAMP} faked\n");
+ $nWORK_STAMP_fake = 1;
+ }
+ if ( !defined($ENV{UPDMINOR}) || length($ENV{WORK_STAMP}) == 0 )
+ {
+ $ENV{UPDMINOR} = $MINOR;
+ log_print(" UPDMINOR is: $ENV{UPDMINOR} faked\n");
+ $nUPDMINOR_fake = 1;
+ }
+
+ # my $sStatus = "ok";
+ # if ($nFailure == 0)
+ # {
+ # $sStatus = $sInfo;
+ # }
+ # elsif ($nFailure == 1)
+ # {
+ # $sStatus = "failed";
+ # }
+ # elsif ($nFailure == 2)
+ # {
+ # $sStatus = "incomplete";
+ # }
+
+ # system("cwstestresult -c mycws -n Performance -p Windows ok");
+ my $sPerlProgram = appendPath($sSOLARENV, "bin/cwstestresult.pl");
+ # if ( -e "cwstestresult.pl" )
+ # {
+ # # use a local version instead
+ # $sPerlProgram = "cwstestresult.pl";
+ # }
+ # else
+ # {
+ # my $currentdir =cwd();
+ # log_print( "We are in $currentdir\n");
+ # }
+
+ my $sPerlParam;
+ # $sPerlParam = " -m $MAJOR"; # master CWS
+ $sPerlParam .= " -c $destinationversion"; # name of CWS
+ $sPerlParam .= " -n ConvWatch"; # ConvWatch need to be capitalised for cwstestresult
+ my $sCWSEnv;
+ if (isWindowsEnvironment())
+ {
+ $sCWSEnv = "Windows";
+ }
+ elsif (getEnvironment() eq "unxlngi")
+ {
+ $sCWSEnv = "Linux";
+ }
+ elsif (getEnvironment() eq "unxsoli")
+ {
+ $sCWSEnv = "SolarisX86";
+ }
+ else
+ {
+ log_print("cwstestresult(): This environment is not supported. (getEnvironment() returns wrong value?)");
+ return;
+ }
+ $sPerlParam .= " -p " . $sCWSEnv;
+ $sPerlParam .= " -r http://so-gfxcmp-lin.germany.sun.com/gfxcmp_ui/status_new.php?distinct=$sDBdistinct";
+
+ $sPerlParam .= " ";
+ $sPerlParam .= $sStatus;
+
+
+ # my $sSetcwsAndPerl = "setcws $destinationversion; " . getPerlExecutable();
+
+ my $err = callperl(getPerlExecutable(), $sPerlProgram, $sPerlParam);
+ if ($err != 0)
+ {
+ log_print( "Can't call cwstestresult.pl\n");
+ }
+ if ($nSOLARENV_fake == 1)
+ {
+ $ENV{SOLARENV} = "";
+ undef( $ENV{SOLARENV} );
+ $nSOLARENV_fake = 0;
+ # if ( defined($ENV{SOLARENV}) )
+ # {
+ # print "SOLARENV always defined.\n";
+ # }
+ }
+ if ($nCOMMON_ENV_TOOLS_fake == 1)
+ {
+ $ENV{COMMON_ENV_TOOLS} = "";
+ undef( $ENV{COMMON_ENV_TOOLS} );
+ $nCOMMON_ENV_TOOLS_fake = 0;
+ }
+
+ if ( $nWORK_STAMP_fake == 1 )
+ {
+ # undef($ENV{WORK_STAMP});
+ $ENV{WORK_STAMP} = "";
+ undef($ENV{WORK_STAMP});
+ $nWORK_STAMP_fake = 0;
+ }
+ if ( $nUPDMINOR_fake == 1 )
+ {
+ $ENV{UPDMINOR} = "";
+ undef($ENV{UPDMINOR});
+ $nUPDMINOR_fake = 0;
+ }
+
+
+}
+
+
+1;
diff --git a/testgraphical/source/dbhelper.pm b/testgraphical/source/dbhelper.pm
new file mode 100644
index 000000000000..0f5c0d5bb5ea
--- /dev/null
+++ b/testgraphical/source/dbhelper.pm
@@ -0,0 +1,209 @@
+#
+# # ------------------------------------------------------------------------------
+#
+# sub DB_INSERT_INTO_TABLE_STATUS()
+# {
+# # my $sDocID = shift;
+# # my $sDBDistinct = shift;
+#
+# my $sHostname = hostname;
+#
+# my $sSQL = "INSERT INTO status (docid, dbdistinct2, hostname)";
+# $sSQL .= " VALUES ($docid, '$dbdistinct', '$sHostname')";
+# ExecSQL($sSQL);
+# }
+# sub DB_UPDATE_TABLE_STATUS_SET_INFO($)
+# {
+# # my $sDocID = shift;
+# # my $sDBDistinct = shift;
+# my $sInfo = shift;
+#
+# # my $sHostname = hostname;
+#
+# my $sInsertSQL = "UPDATE status SET info='$sInfo' WHERE docid=$docid AND dbdistinct2='$dbdistinct'";
+# ExecSQL($sInsertSQL);
+# }
+#
+# sub DB_UPDATE_TABLE_DOCUMENTS_SET_STATE_INFO($$)
+# {
+# # my $sDocID = shift;
+# my $sStatus = shift;
+# my $sError = shift;
+#
+# my $sSQL = "UPDATE documents";
+# $sSQL .= " SET state='" . $sStatus . "'";
+# $sSQL .= ",info='" . $sError . "'";
+# $sSQL .= " WHERE docid=$docid";
+# ExecSQL($sSQL);
+# }
+# sub DB_UPDATE_TABLE_STATUS_SET_STATE($)
+# {
+# # my $sDocID = shift;
+# my $sStatus = shift;
+#
+# my $sSQL = "UPDATE status";
+# $sSQL .= " SET state='" . $sStatus . "'";
+# $sSQL .= " WHERE docid=$docid";
+# ExecSQL($sSQL);
+# }
+#
+# # sub DB_UPDATE_TABLE_STATUS_SET_STATE_FAILED()
+# # {
+# # DB_UPDATE_TABLE_STATUS_SET_STATE("FAILED-FAILED");
+# # }
+# # ------------------------------------------------------------------------------
+# # sub getDBConnectionString()
+# # {
+# # # return "server:jakobus,db:jobs_convwatch,user:admin,passwd:admin";
+# # return "server:unoapi,db:jobs_convwatch,user:convwatch,passwd:convwatch";
+# # }
+# # ------------------------------------------------------------------------------
+# sub getSourceInfo($)
+# {
+# my $sDBStr = shift;
+#
+# my $sSourceVersion;
+# if ( $sDBStr =~ / sourceversion='(.*?)',/ )
+# {
+# $sSourceVersion = $1;
+# log_print( "sSourceVersion: $sSourceVersion\n");
+# }
+# if (! $sSourceVersion)
+# {
+# log_print( "Error: no value for sourceversion found.\n");
+# return;
+# }
+# my $sSourceName;
+# if ( $sDBStr =~ / sourcename='(.*?)',/ )
+# {
+# $sSourceName = $1;
+# log_print( "sSourceName: $sSourceName\n");
+# }
+# my $sSourceCreatorType;
+# if ( $sDBStr =~ / sourcecreatortype='(.*?)',/ )
+# {
+# $sSourceCreatorType = $1;
+# log_print( "sSourceCreatorType: $sSourceCreatorType\n");
+# }
+# return $sSourceVersion, $sSourceName, $sSourceCreatorType;
+# }
+# # ------------------------------------------------------------------------------
+# sub getDestinationInfo($)
+# {
+# my $sDBStr = shift;
+#
+# my $sDestinationVersion;
+# if ( $sDBStr =~ / destinationversion='(.*?)',/ )
+# {
+# $sDestinationVersion = $1;
+# log_print( "sDestinationVersion: $sDestinationVersion\n");
+# }
+# if (! $sDestinationVersion)
+# {
+# log_print( "Error: no value for destinationversion found.\n");
+# return;
+# }
+# my $sDestinationName;
+# if ( $sDBStr =~ / destinationname='(.*?)',/ )
+# {
+# $sDestinationName = $1;
+# log_print( "sDestinationName: $sDestinationName\n");
+# }
+# my $sDestinationCreatorType;
+# if ( $sDBStr =~ / destinationcreatortype='(.*?)',/ )
+# {
+# $sDestinationCreatorType = $1;
+# log_print( "sDestinationCreatorType: $sDestinationCreatorType\n");
+# }
+# return $sDestinationVersion, $sDestinationName, $sDestinationCreatorType;
+# }
+# # ------------------------------------------------------------------------------
+# # sub getMailAddress($)
+# # {
+# # my $sDBStr = shift;
+# # my $sMailAddress = "";
+# # if ( $sDBStr =~ / mailfeedback='(.*?)',/ )
+# # {
+# # $sMailAddress = $1;
+# # log_print( "sMailAddress: $sMailAddress\n");
+# # }
+# # return $sMailAddress;
+# # }
+#
+# # sub getDocumentInfo($)
+# # {
+# # my $sDBStr = shift;
+# #
+# # my $sDocumentPoolPath;
+# # if ( $sDBStr =~ / documentpoolpath='(.*?)',/ )
+# # {
+# # $sDocumentPoolPath = $1;
+# # log_print( "sDocumentPoolPath: $sDocumentPoolPath\n");
+# # }
+# # if (! $sDocumentPoolPath)
+# # {
+# # log_print( "Error: no value for documentpoolpath found.\n");
+# # return;
+# # }
+# # my $sDocumentPool;
+# # if ( $sDBStr =~ / documentpool='(.*?)',/ )
+# # {
+# # $sDocumentPool = $1;
+# # log_print( "sDocumentPool: $sDocumentPool\n");
+# # }
+# # if (! $sDocumentPool)
+# # {
+# # log_print( "Error: no value for documentpool found.\n");
+# # return;
+# # }
+# # my $sDocumentName;
+# # if ( $sDBStr =~ / name='(.*?)',/ )
+# # {
+# # $sDocumentName = $1;
+# # log_print( "sDocumentName: $sDocumentName\n");
+# # }
+# # return $sDocumentPoolPath, $sDocumentPool, $sDocumentName;
+# # }
+#
+# sub getDistinct($)
+# {
+# my $sDBStr = shift;
+# my $sDBDistinct;
+# if ( $sDBStr =~ / dbdistinct2='(\S*?)',/ )
+# {
+# $sDBDistinct = $1;
+# log_print( "dbdistinct2: $sDBDistinct\n");
+# }
+# return $sDBDistinct;
+# }
+#
+# sub getIDInfo($)
+# {
+# my $sDBStr = shift;
+# # my $dbdistinct;
+#
+# my $sDBDistinct = getDistinct($sDBStr);
+# # if ( $sDBStr =~ / dbdistinct2='(\S*?)',/ )
+# # {
+# # $sDBDistinct = $1;
+# # log_print( "dbdistinct2: $sDBDistinct\n");
+# # }
+# if (! $sDBDistinct)
+# {
+# log_print( "Error: no dbdistinct given.\n");
+# return;
+# }
+# my $sDocID;
+# if ( $sDBStr =~ / docid=(\S*?),/ )
+# {
+# $sDocID = $1;
+# log_print( "docid: $sDocID\n");
+# }
+# if (! $sDocID)
+# {
+# log_print( "Error: no docid given.\n");
+# return;
+# }
+# return $sDBDistinct, $sDocID;
+# }
+#
diff --git a/testgraphical/source/filehelper.pm b/testgraphical/source/filehelper.pm
new file mode 100644
index 000000000000..ed1be35cf124
--- /dev/null
+++ b/testgraphical/source/filehelper.pm
@@ -0,0 +1,358 @@
+package filehelper;
+
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+use strict;
+use warnings;
+use strict;
+use English; # $OSNAME, ...
+use stringhelper;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&dospath &unixpath &appendPath &appendClass &setPrefix &getToolsPrefix &rmkdir &getJavaPathSeparator &getJavaFileDirSeparator &getFromPathes &convertCygwinPath);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+
+# ------------------------------------------------------------------------------
+# helper, to change all file separators
+sub dospath($)
+{
+ my $sPath = shift;
+ if ($OSNAME eq "MSWin32")
+ {
+ # make out of '/' a '\'
+ $sPath =~ s/\//\\/g;
+ }
+ else
+ {
+ }
+ return $sPath;
+}
+
+sub unixpath($)
+{
+ my $sPath = shift;
+ if ($OSNAME ne "MSWin32")
+ {
+ # make out of '\' a '/'
+ $sPath =~ s/\\/\//g;
+ }
+ else
+ {
+ }
+ return $sPath;
+}
+
+# ------------------------------------------------------------------------------
+# sub getGlobalInstSet()
+# {
+# my $sJumbo;
+# if ($OSNAME eq "MSWin32")
+# {
+# # $sJumbo = "\\\\so-gfxcmp-lin\\jumbo_ship\\install";
+# $sJumbo = "\\\\jumbo.germany.sun.com\\ship\\install";
+# }
+# elsif ($OSNAME eq "cygwin")
+# {
+# $sJumbo = "//jumbo.germany.sun.com/ship/install";
+# }
+# else
+# {
+# $sJumbo = "/net/jumbo.germany.sun.com/ship/install";
+# }
+# return $sJumbo;
+# }
+
+# ------------------------------------------------------------------------------
+# sub getSolarisLockFile()
+# {
+# my $sSolarisLockFile = "/tmp/.ai.pkg.zone.lock-afdb66cf-1dd1-11b2-a049-000d560ddc3e";
+# return $sSolarisLockFile;
+# }
+#
+# sub checkForSolarisLock()
+# {
+# if ($OSNAME eq "solaris")
+# {
+# # wait until the internal installer lock is gone
+# while ( -e getSolarisLockFile() )
+# {
+# while ( -e getSolarisLockFile() )
+# {
+# log_print( "Warning: Wait active until installer lock is gone. \n");
+# sleep 1;
+# }
+# sleep 5;
+# }
+# log_print( "[ok], lock is gone.\n");
+# }
+# }
+#
+# sub deleteSolarisLock()
+# {
+# if ($OSNAME eq "solaris")
+# {
+# sleep 1;
+# unlink getSolarisLockFile();
+#
+# sleep 1;
+# if ( -e getSolarisLockFile() )
+# {
+# # try delete the file as super user?
+# `sudo rm -f getSolarisLockFile()`;
+# sleep 1;
+# }
+# }
+# }
+
+# ------------------------------------------------------------------------------
+sub appendPath($$)
+{
+ my $sPath = shift;
+ my $sAddPath = shift;
+ if ($sPath && $sAddPath)
+ {
+ if (! endswith($sPath, "/") &&
+ ! endswith($sPath, "\\"))
+ {
+ # getJavaFileDirSeparator();
+ $sPath .= "/";
+ }
+ $sPath .= $sAddPath;
+ }
+ return $sPath;
+}
+
+sub appendClass($$)
+{
+ my $sPath = shift;
+ my $sAddPath = shift;
+
+ my $sSeparator = getJavaPathSeparator();
+ if ($sPath && $sAddPath)
+ {
+ if (! endswith($sPath, $sSeparator))
+ {
+ # getJavaFileDirSeparator();
+ $sPath .= $sSeparator;
+ }
+ $sPath .= $sAddPath;
+ }
+ return $sPath;
+}
+
+# ------------------------------------------------------------------------------
+
+our $sPrefix;
+sub setPrefix($)
+{
+ $sPrefix = shift;
+}
+
+sub getPrefix()
+{
+ return $sPrefix;
+}
+
+# ------------------------------------------------------------------------------
+our $programprefix;
+
+# sub getProgramPrefix($)
+# {
+# my $sDBDistinct = shift;
+#
+# my $sProgramPrefix;
+# if (! $programprefix)
+# {
+# if ($OSNAME eq "MSWin32")
+# {
+# # $programprefix = "C:/gfxcmp/programs";
+# $programprefix = "C:";
+# if (getPrefix() eq "performance")
+# {
+# $programprefix = "D:";
+# }
+# $programprefix = appendPath($programprefix, "gp");
+# }
+# elsif ($OSNAME eq "linux")
+# {
+# $programprefix = "/space/" . getPrefix() . "/programs";
+# }
+# elsif ($OSNAME eq "solaris")
+# {
+# $programprefix = "/space/" . getPrefix() . "/programs";
+# }
+# else
+# {
+# print "Error: This environment isn't supported yet.\n";
+# exit(1);
+# }
+# }
+# $sProgramPrefix = appendPath($programprefix, substr($sDBDistinct, 0, 19));
+# return $sProgramPrefix;
+# }
+# ------------------------------------------------------------------------------
+our $toolsprefix;
+
+sub getToolsPrefix()
+{
+ my $sToolsPrefix;
+ if (! $toolsprefix)
+ {
+ if ($OSNAME eq "MSWin32")
+ {
+ $toolsprefix = "C:";
+ if (getPrefix() eq "performance")
+ {
+ $toolsprefix = "D:";
+ }
+ }
+ elsif ($OSNAME eq "linux")
+ {
+ $toolsprefix = "/space";
+ }
+ elsif ($OSNAME eq "solaris")
+ {
+ $toolsprefix = "/space";
+ }
+ else
+ {
+ print "Error: This environment isn't supported yet.\n";
+ exit(1);
+ }
+ $toolsprefix = appendPath($toolsprefix, getPrefix());
+ $toolsprefix = appendPath($toolsprefix, "tools");
+ }
+ $sToolsPrefix = $toolsprefix;
+ return $sToolsPrefix;
+}
+
+# also Windows safe
+sub rmkdir($)
+{
+ my($tpath) = shift;
+ my $dir;
+ my $accum = "";
+
+ my @dirs = split(/\//, $tpath);
+ if ( $#dirs eq 0 )
+ {
+ @dirs = split("\\\\", $tpath);
+ }
+
+ foreach $dir (@dirs)
+ {
+ $accum = "$accum$dir/";
+ if($dir ne "")
+ {
+ if(! -d "$accum")
+ {
+ mkdir ($accum);
+ chmod (0777,$accum);
+ }
+ }
+ }
+}
+
+# ------------------------------------------------------------------------------
+sub getJavaPathSeparator()
+{
+ my $ps = ":";
+ if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ $ps = ";";
+ }
+ return $ps;
+}
+# ------------------------------------------------------------------------------
+sub getJavaFileDirSeparator()
+{
+ my $sfs = "/";
+ if ($OSNAME eq "MSWin32")
+ {
+ $sfs = "\\";
+ }
+ return $sfs;
+}
+# ------------------------------------------------------------------------------
+sub getFromPathes($$)
+{
+ my $sPathesIni = shift;
+ my $searchvalue = shift;
+ my $sResult;
+ if ( -e $sPathesIni)
+ {
+ local *PATHES;
+ if (open(PATHES, "$sPathesIni"))
+ {
+ my $line;
+ while ($line = <PATHES>)
+ {
+ chomp($line);
+ if ($line =~ /^$searchvalue=(.*)$/)
+ {
+ $sResult = $1;
+ }
+ }
+ close(PATHES);
+ }
+ }
+ return $sResult;
+}
+
+sub convertCygwinPath($)
+{
+ my $sPath = shift;
+
+ if ($OSNAME eq "cygwin")
+ {
+ # print "Cygwin Path Patch.\n" if ($verbose);
+ if ($sPath =~ /\/cygdrive\/(.)/)
+ {
+ my $Letter = $1;
+ $sPath =~ s/\/cygdrive\/${Letter}/${Letter}\:/;
+ # print "Cygwin Path Patch: '$sPath'\n" if ($verbose);
+ }
+ }
+ return $sPath;
+}
+
+
+
+1;
diff --git a/testgraphical/source/fill_documents_loop.pl b/testgraphical/source/fill_documents_loop.pl
new file mode 100644
index 000000000000..c1b8174fefe5
--- /dev/null
+++ b/testgraphical/source/fill_documents_loop.pl
@@ -0,0 +1,423 @@
+eval 'exec perl -wS $0 ${1+\"$@\"}'
+ if 0;
+
+# This program has to start for the new convwatch,
+# once on Windows environment and once on Linux environment
+# Solaris is handled by the linux also.
+#
+# This program polls the database (documentcompare) every 60s for new jobs
+# it runs over the given directory from documentpoolpath and pool, and create for every file
+# a new database entry in documents.
+#
+
+BEGIN
+{
+ # Adding the path of this script file to the include path in the hope
+ # that all used modules can be found in it.
+ $0 =~ /^(.*)[\/\\]/;
+ push @INC, $1;
+}
+
+use ConvwatchHelper;
+use CallExternals;
+use stringhelper;
+use filehelper;
+use oshelper;
+use timehelper;
+use cwstestresulthelper;
+
+use strict;
+use Cwd;
+use File::Basename;
+use English; # $OSNAME, ...
+use Getopt::Long;
+use File::Path;
+use Cwd 'chdir';
+
+my $cwd = getcwd();
+
+our $help; # Help option flag
+our $version; # Version option flag
+our $test;
+
+our $version_info = 'convwatch.pl $Revision: 1.24 $ ';
+
+our $SOLARENV;
+our $COMMON_ENV_TOOLS;
+
+
+our $documentpoolname;
+our $documentpoolpath;
+our $dbdistinct;
+our $sParentDistinct;
+our $sCurrentDocumentPool;
+
+our $fs;
+our @aEntries;
+
+# Prototypes
+# sub getJavaFileDirSeparator();
+sub readdirectory($$$);
+sub putDocumentInDB($$$);
+
+# flush STDOUT
+my $old_handle = select (STDOUT); # "select" STDOUT and save # previously selected handle
+$| = 1; # perform flush after each write to STDOUT
+select ($old_handle); # restore previously selected handle
+
+setPrefix("gfxcmp");
+
+if (!GetOptions(
+ "test" => \$test,
+ "help" => \$help,
+ "version" => \$version
+ ))
+{
+ print_usage(*STDERR);
+ exit(1);
+}
+if ($help)
+{
+ print_usage(*STDOUT);
+ exit(0);
+}
+# Check for version option
+if ($version)
+{
+ print STDERR "$version_info\n";
+ exit(0);
+}
+
+# ------------------------------------------------------------------------------
+# within mysql it is better to use only '/'
+$fs = "/"; # getJavaFileDirSeparator();
+# ------------------------------------------------------------------------------
+sub readdirectory($$$)
+{
+ my $startdir = shift;
+ my $sValues = shift;
+ my $hook = shift;
+
+ my $myfile;
+
+ local *DIR;
+ chdir $startdir;
+ cwd();
+ if (! endswith($startdir, $fs))
+ {
+ $startdir .= $fs;
+ }
+
+ my $nCountFiles = 0;
+ if (opendir (DIR, $startdir)) # Directory oeffnen
+ {
+ while ($myfile = readdir(DIR))
+ { # ein filename holen
+ #if (! -l $myfile) # not a link
+ #{
+ if (-d $myfile ) # is a directory
+ {
+ if ( -l $myfile)
+ {
+ next;
+ }
+ if ($myfile ne "." && $myfile ne "..")
+ {
+ my $sNewStartDir = $startdir . $myfile ."/"; # neuen Directorystring erstellen
+ if ($sNewStartDir =~ "^\/proc" ||
+ $sNewStartDir =~ "^\/dev" ||
+ $sNewStartDir =~ "^\/udev" ||
+ $sNewStartDir =~ "lost+found" )
+ {
+ next;
+ }
+ # my $sNewDestDir = $destdir . $myfile ."/";
+ # do a recursive call
+ # $nCountFiles++;
+ my $nFileCount = readdirectory($sNewStartDir, $sValues, $hook);
+ # workOnDir($sNewDir, $nFileCount);
+ $nCountFiles += $nFileCount;
+
+ chdir ($startdir); # zurueckwechseln.
+ cwd();
+ }
+ }
+ else
+ {
+ # File must exist, be a regular file and must not be the $onlyOnFile
+ if (-f $myfile)
+ {
+ # print " $startdir" . "$myfile\n";
+ $nCountFiles++;
+ # workOnFile($startdir, $myfile, $destdir);
+ $hook->($startdir, $myfile, $sValues);
+ }
+ }
+ #}
+ #else
+ #{
+ # print "linked file: $dir/$myfile\n";
+ #}
+ }
+ closedir(DIR);
+ }
+ else
+ {
+ print "could not open $startdir\n";
+ }
+ return $nCountFiles;
+}
+# ------------------------------------------------------------------------------
+sub putDocumentInDB($$$)
+{
+ my $currentDir = shift;
+ my $currentFile = shift;
+ my $sValues = shift;
+
+ my $sSourceFilename = $currentDir . $currentFile;
+ # we cut down all the previous names like documentpoolpath and the documentpoolname
+ $sSourceFilename = substr($sSourceFilename, length($sCurrentDocumentPool . $fs));
+
+ my $sSQL = "INSERT INTO documents (dbdistinct2, name, pagecount, priority, parentdistinct) VALUES";
+ $sSQL .= "('" . $dbdistinct . "', '" . $sSourceFilename . "', 0, 1, '". $sParentDistinct . "')";
+ # print $sSQL . "\n";
+
+ push(@aEntries, $sSQL);
+ # ExecSQL($sSQL);
+}
+
+# ------------------------------------------------------------------------------
+sub createDBEntriesForEveryDocument($)
+{
+ my $sStr = shift;
+ if ($sStr =~ /^MySQL-Error/ )
+ {
+ # we don't do anything if an error occured
+ return;
+ }
+
+ # interpret the follows string
+ # documentpoolpath='//so-gfxcmp-documents/doc-pool', documentpool='demo_lla', dbdistinct=62,
+
+ # my $sDocumentPoolDir;
+ if ( $sStr =~ /documentpoolpath='(.*?)',/ )
+ {
+ $documentpoolpath = $1;
+ }
+ if (! $documentpoolpath)
+ {
+ print "Error: no value for documentpoolpath found.\n";
+ return;
+ }
+
+ # my $sDocumentPool;
+ if ( $sStr =~ /documentpool='(.*?)',/ )
+ {
+ $documentpoolname = $1;
+ }
+ if (! $documentpoolname)
+ {
+ print "Error: no value for documentpool found.\n";
+ return;
+ }
+ # my $dbdistinct;
+ if ( $sStr =~ /dbdistinct2='(\S*?)',/ )
+ {
+ $dbdistinct = $1;
+ }
+ if (! $dbdistinct)
+ {
+ print "Error: no dbdistinct given.\n";
+ return;
+ }
+
+ if (! -d $documentpoolpath )
+ {
+ my $sEnv = getEnvironment();
+ if ( isUnixEnvironment() )
+ {
+ $documentpoolpath = "/net/so-gfxcmp-documents" . $documentpoolpath;
+ }
+ if ( -d $documentpoolpath )
+ {
+ print "Warning: given documentpoolpath seems to be local, fix to '$documentpoolpath'\n";
+ my $sSQL = "UPDATE documentcompare SET documentpoolpath='$documentpoolpath' WHERE dbdistinct2='$dbdistinct'";
+ print "$sSQL\n";
+ ExecSQL($sSQL);
+ }
+ else
+ {
+ print "Error: documentpoolpath '$documentpoolpath' not found. Don't insert anything.\n";
+ my $sSQL = "UPDATE documentcompare SET state='failed',info='documentpoolpath not found.' WHERE dbdistinct2='$dbdistinct'";
+ print "$sSQL\n";
+ ExecSQL($sSQL);
+ return;
+ }
+ }
+ # create the documentpool directory, to run through
+ $sCurrentDocumentPool = $documentpoolpath;
+ if (! endswith($sCurrentDocumentPool, $fs))
+ {
+ $sCurrentDocumentPool .= $fs;
+ }
+ $sCurrentDocumentPool .= $documentpoolname;
+
+ if ( -d $sCurrentDocumentPool )
+ {
+ if ( $sStr =~ /parentdistinct='(.*?)',/ )
+ {
+ $sParentDistinct = $1;
+ }
+ else
+ {
+ $sParentDistinct = "";
+ }
+
+ # remove any doubles, if any
+ my $sSQL = "DELETE FROM documents WHERE dbdistinct2='$dbdistinct'";
+ print "$sSQL\n";
+ ExecSQL($sSQL);
+
+ # run over the whole given document pool and store every found document name in the database
+ readdirectory($sCurrentDocumentPool, "", \&putDocumentInDB);
+
+ chdir $cwd;
+ cwd();
+
+ foreach $sSQL (@aEntries)
+ {
+ # print "# $sSQL\n";
+ print "$sSQL\n";
+ ExecSQL($sSQL);
+ }
+
+ my $sSQL = "UPDATE documentcompare SET state='inprogress' WHERE dbdistinct2='$dbdistinct'";
+ print "$sSQL\n";
+ ExecSQL($sSQL);
+ print "----------------------------------------------------------------------\n";
+ $sParentDistinct = "";
+ @aEntries = ();
+ }
+ else
+ {
+ print "Error: Given document pool '$sCurrentDocumentPool' doesn't exists.\n";
+ my $sSQL = "UPDATE documentcompare SET state='cancelled' WHERE dbdistinct2='$dbdistinct'";
+ ExecSQL($sSQL);
+ return;
+ }
+ # Send Mail, due to startconvwatch now
+ sendMail($sStr, $documentpoolname, $dbdistinct);
+}
+
+# ------------------------------------------------------------------------------
+sub sendMail($$$)
+{
+ my $sStr = shift;
+ my $documentpool = shift;
+ my $dbdistinct = shift;
+ my $sourceversion;
+ if ( $sStr =~ /sourceversion='(.*?)',/ )
+ {
+ $sourceversion = $1;
+ }
+ if (! $sourceversion)
+ {
+ print "Warning: no value for sourceversion found.\n";
+ return;
+ }
+ my $destinationversion;
+ if ( $sStr =~ /destinationversion='(.*?)',/ )
+ {
+ $destinationversion = $1;
+ }
+ if (! $destinationversion)
+ {
+ print "Warning: no value for destinationversion found.\n";
+ return;
+ }
+ my $mailaddress;
+ if ( $sStr =~ /mailfeedback='(.*?)',/ )
+ {
+ $mailaddress = $1;
+ }
+ if (! $mailaddress)
+ {
+ print "Warning: no value for mailfeedback found.\n";
+ return;
+ }
+
+ # state is 'inprogress', so send a mail
+ # my $sMailAddress = getMailAddress($sDoneStr);
+ my $sParams = "$sourceversion";
+ $sParams .= " $destinationversion";
+ $sParams .= " $documentpool";
+ $sParams .= " $dbdistinct";
+ $sParams .= " $mailaddress";
+ $sParams .= " starts"; # run through state of convwatch
+
+ my $sMailProgram = appendPath(getQADEVToolsPath(), "mailsend.php");
+
+ my $err;
+ my @lines;
+ my $sLine;
+ ($err, @lines) = callphp(getPHPExecutable(), $sMailProgram, $sParams);
+ foreach $sLine (@lines)
+ {
+ log_print( "Mail: $sLine\n");
+ }
+
+ if ($documentpool eq "EIS-tests")
+ {
+ cwstestresult("running", $dbdistinct, $sourceversion, $destinationversion, $SOLARENV, $COMMON_ENV_TOOLS);
+ }
+}
+# ------------------------------------------------------------------------------
+# ------------------------------------------------------------------------------
+
+my $sEnvironmentCondition;
+if (isWindowsEnvironment())
+{
+ $sEnvironmentCondition = "environment='" . getEnvironment() . "'";
+}
+elsif (isUnixEnvironment())
+{
+ # $sEnvironmentCondition = " ( environment='unxlngi' OR environment='unxsoli' ) ";
+ $sEnvironmentCondition = " environment='" . getEnvironment() . "'";
+}
+else
+{
+ print "Error: wrong environment.\n";
+ exit(1);
+}
+my $sWhereClause = "WHERE ";
+if ($sEnvironmentCondition)
+{
+ $sWhereClause .= $sEnvironmentCondition . " AND ";
+}
+$sWhereClause .= " state='new'";
+
+setToolsPath(getQADEVToolsPath());
+
+# ---------------------------------- main loop ----------------------------------
+while (1)
+{
+ my @aResult;
+ my $sSQL = "SELECT documentpoolpath,documentpool,dbdistinct2,sourceversion,destinationversion,mailfeedback,parentdistinct FROM documentcompare $sWhereClause";
+ @aResult = ExecSQL($sSQL);
+
+ my $aValue;
+ foreach $aValue (@aResult)
+ {
+ # print "# $nValue\n";
+ createDBEntriesForEveryDocument($aValue);
+ }
+ if ($test)
+ {
+ last;
+ }
+
+ # wait 30sec.
+ # wait30seconds();
+ waitAMinute();
+ checkForStop("stop_fill_documents_loop");
+}
diff --git a/testgraphical/source/graphical_compare.pm b/testgraphical/source/graphical_compare.pm
new file mode 100644
index 000000000000..5cde8d64ea01
--- /dev/null
+++ b/testgraphical/source/graphical_compare.pm
@@ -0,0 +1,586 @@
+package graphical_compare;
+
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+use CallExternals;
+use stringhelper;
+use timehelper;
+use filehelper;
+use loghelper;
+use oshelper;
+use cwstestresulthelper;
+use solarenvhelper;
+use ConvwatchHelper;
+
+use strict;
+use Cwd;
+# use File::Basename;
+use Getopt::Long;
+use English; # $OSNAME, ...
+use File::Path;
+use Cwd 'chdir';
+use Sys::Hostname;
+use Time::localtime;
+
+# my $cwd = getcwd();
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&SingleDocumentCompare &setPrefix &setConnectionString);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+
+our $nTimeOut = 300 * 1000;
+our $viewable = 1;
+our $port;
+our $resolution;
+our $overwritereference;
+our $fixreference;
+our $sConncectionString;
+
+sub setConnectionString($)
+{
+ $sConncectionString=shift;
+}
+
+sub getOOoRunnerClasspath()
+{
+ my $sSourceRoot;
+ my $sUPDExtensions = "";
+ if (defined ($ENV{SOL_TMP}) && defined ($ENV{SOLARVERSION}))
+ {
+ $sSourceRoot = $ENV{SOLARVERSION};
+ }
+ elsif (defined $ENV{SOURCE_ROOT})
+ {
+ $sSourceRoot = $ENV{SOURCE_ROOT};
+ $sSourceRoot = appendPath($sSourceRoot, $ENV{WORK_STAMP});
+ }
+ else
+ {
+ $sSourceRoot = $ENV{SOLARVERSION};
+ $sUPDExtensions = ".$ENV{UPDMINOR}";
+ }
+ $sSourceRoot = appendPath($sSourceRoot, $ENV{INPATH});
+ my $sSourceRootBin = appendPath($sSourceRoot, "bin" . $sUPDExtensions);
+ my $sSourceRootLib = appendPath($sSourceRoot, "lib" . $sUPDExtensions);
+
+ if (! -d $sSourceRoot )
+ {
+ log_print( "SourceRoot not found, search it in '$sSourceRoot'\n");
+ return "";
+ }
+
+ my $sOOoRunnerPath = $sSourceRootBin;
+ my $sUnoilPath = $sSourceRootBin;
+ my $sRidlPath = $sSourceRootBin;
+ my $sJurtPath = $sSourceRootBin;
+ my $sJuhPath = $sSourceRootBin;
+ my $sJavaUnoPath = $sSourceRootBin;
+
+ my $sOOoRunnerClasspath =
+ appendPath( $sRidlPath, "ridl.jar") . getJavaPathSeparator() .
+ appendPath( $sUnoilPath, "unoil.jar") . getJavaPathSeparator() .
+ appendPath( $sJurtPath, "jurt.jar") . getJavaPathSeparator() .
+ appendPath( $sJuhPath, "juh.jar") . getJavaPathSeparator() .
+ appendPath( $sJavaUnoPath, "java_uno.jar") . getJavaPathSeparator() .
+ appendPath( $sOOoRunnerPath, "OOoRunnerLight.jar");
+ if (isWindowsEnvironment())
+ {
+ $sOOoRunnerClasspath .= getJavaPathSeparator() . $sSourceRootBin;
+ }
+ else
+ {
+ $sOOoRunnerClasspath .= getJavaPathSeparator() . $sSourceRootLib;
+ }
+ return $sOOoRunnerClasspath;
+}
+
+# ------------------------------------------------------------------------------
+sub getTempPath()
+{
+ my $sTempPath;
+ if (isWindowsEnvironment())
+ {
+ $sTempPath = "C:/temp";
+ }
+ elsif (isUnixEnvironment())
+ {
+ $sTempPath = "/tmp";
+ }
+ else
+ {
+ die "getTempPath() Failed, due to unsupported environment.\n";
+ }
+ return $sTempPath;
+}
+# ------------------------------------------------------------------------------
+
+sub getProjectOutput()
+{
+ my $sOutput = appendPath(getProjectRoot(), $ENV{INPATH});
+ $sOutput = appendPath($sOutput, "misc");
+ return $sOutput;
+}
+
+# ------------------------------------------------------------------------------
+sub getProjectOutputReference()
+{
+ my $sOutput = appendPath(getProjectRoot(), $ENV{INPATH});
+ $sOutput = appendPath($sOutput, "reference");
+ return $sOutput;
+}
+
+
+sub searchForReference($)
+{
+ my $sFile = shift;
+ if ( -e $sFile )
+ {
+ return 0;
+ }
+ if ( -e $sFile . ".ps")
+ {
+ return 0;
+ }
+ if ( -e $sFile . ".pdf")
+ {
+ return 0;
+ }
+ return 1;
+}
+# ------------------------------------------------------------------------------
+
+# my $sOfficeName = $officeprefixname . $officename;
+sub SingleDocumentCompare($$$$$$)
+{
+ # get all about the document to compare
+ my $sDocumentPoolPath = shift;
+ my $sDocumentPool = shift;
+ my $sDocumentName = shift;
+ my $sDebug = "";
+
+ # get all about the destination office
+ my $sCreatorType = shift;
+ if (! $sCreatorType)
+ {
+ # log_print( "parameter -creatortype not given. Use 'OOo'\n");
+ $sCreatorType = "ps";
+ }
+ my $prepareonly = shift;
+ my $show = shift;
+
+ # my $nSimpleCompareTime = getTime();
+
+ my $nConvwatchFailed = 0;
+ set_logfile( appendPath(getProjectOutput(), $sDocumentName . ".txt" ));
+
+ print("$sDocumentName");
+ log_print("\n");
+ log_print("Graphical compare on document: '$sDocumentName'\n");
+ # ------------------------------------------------------------------------------
+ # create postscript or pdf from first installed office
+ # ------------------------------------------------------------------------------
+
+ my $sOOoRunnerClasspath = quoteIfNeed(getOOoRunnerClasspath());
+ if ($OSNAME eq "cygwin")
+ {
+ if (!startswith($sOOoRunnerClasspath, "\""))
+ {
+ $sOOoRunnerClasspath = quote($sOOoRunnerClasspath);
+ }
+ }
+ if (length($sOOoRunnerClasspath) == 0)
+ {
+ $nConvwatchFailed == 1;
+ }
+ # ------------------------------------------------------------------------------
+ # create postscript or pdf from second installed office
+ # ------------------------------------------------------------------------------
+
+ my $sPathesIni = appendPath(getProjectOutput(), "pathes.ini");
+ my $gspath = getFromPathes($sPathesIni, "gs.path");
+ my $gsexe = getFromPathes($sPathesIni, "gs.exe");
+ my $impath = getFromPathes($sPathesIni, "imagemagick.path");
+ my $javaexe = getFromPathes($sPathesIni, "java.exe");
+ setJavaExecutable($javaexe);
+
+ log_print("----- CREATE POSTSCRIPT OR PDF WITH RUNNING OFFICE -----\n");
+ # my $nPrepareSecondPostscriptTime = getTime();
+ if ($nConvwatchFailed == 0)
+ {
+ my $sInputPath = $sDocumentPoolPath;
+ $sInputPath = appendPath($sInputPath, $sDocumentPool);
+ $sInputPath = appendPath($sInputPath, $sDocumentName);
+
+ if (! -f $sInputPath )
+ {
+ $nConvwatchFailed = 1;
+ log_print("ERROR: File '$sInputPath' doesn't exists.\n");
+ }
+ else
+ {
+ my $sOutputPath = getProjectOutput();
+ my $sPropertyFile = appendPath(getProjectOutput() , $sDocumentName . ".build.props");
+
+ local *PROPERTYFILE;
+ if (open(PROPERTYFILE, ">$sPropertyFile"))
+ {
+ print PROPERTYFILE "# This file is automatically created by graphical_compare.pl\n";
+ print PROPERTYFILE "DOC_COMPARATOR_PRINT_MAX_PAGE=9999\n";
+ print PROPERTYFILE "DOC_COMPARATOR_GFX_OUTPUT_DPI_RESOLUTION=180\n";
+ print PROPERTYFILE "DOC_COMPARATOR_REFERENCE_CREATOR_TYPE=$sCreatorType\n";
+ print PROPERTYFILE "TEMPPATH=" . getTempPath() . "\n";
+ if ($sConncectionString)
+ {
+ print PROPERTYFILE "ConnectionString=$sConncectionString\n";
+ }
+ else
+ {
+ print PROPERTYFILE "ConnectionString=pipe,name=" . getUsername() . "\n";
+ }
+ print PROPERTYFILE "OFFICE_VIEWABLE=true\n";
+ print PROPERTYFILE "CREATE_DEFAULT_REFERENCE=true\n";
+ print PROPERTYFILE "DOC_COMPARATOR_INPUT_PATH=$sInputPath\n";
+ print PROPERTYFILE "DOC_COMPARATOR_OUTPUT_PATH=$sOutputPath\n";
+ if (isWindowsEnvironment())
+ {
+ print PROPERTYFILE "DOC_COMPARATOR_PRINTER_NAME=CrossOffice Generic Printer\n";
+ }
+ print PROPERTYFILE "NoOffice=true\n";
+
+ close(PROPERTYFILE);
+ }
+ else
+ {
+ print "Can't open '$sPropertyFile' for write.\n";
+ }
+ if ( -e "$sPropertyFile")
+ {
+ # start OOoRunner
+ # sleep 10;
+ # $sOOoRunnerClasspathFromDestinationName = quoteIfNeed(getOOoRunnerClasspath());
+ my $sParams;
+ if ( $ENV{PERL} )
+ {
+ $sParams = "-Dperl.exe=" . convertCygwinPath($ENV{PERL});
+ }
+
+ $sParams .= " -cp " . $sOOoRunnerClasspath .
+ " org.openoffice.Runner" .
+ " -TimeOut $nTimeOut" .
+ " -tb java_complex" .
+ " -ini $sPropertyFile" .
+ " -o graphical.PostscriptCreator";
+ # $sParams .= " -cs pipe,name=$USER";
+
+ # $sDebug = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9001,suspend=y";
+ my $err = calljava(getJavaExecutable(), $sParams, $sDebug);
+ $sDebug = "";
+ log_print( "\n\n");
+ if ($err != 0)
+ {
+ my $sFailure = "Failed after try to create Postscript/pdf document for " . $sDocumentName;
+ log_print("ERROR: $sFailure\n");
+ $nConvwatchFailed = 1;
+ }
+ }
+ else
+ {
+ my $sFailure = "There is no propertyfile: $sPropertyFile";
+ log_print( "ERROR: $sFailure\n");
+ $nConvwatchFailed=1;
+ }
+ }
+
+ # set prepareonly and it is possible to only create ps or pdf files
+ if ($prepareonly)
+ {
+ print(" [only create ");
+ if ($sCreatorType eq "ps" || $sCreatorType eq "pdf")
+ {
+ print(" $sCreatorType");
+ }
+ else
+ {
+ print(" (${sCreatorType}?)");
+ }
+ if ($nConvwatchFailed == 0)
+ {
+ print(" ok");
+ }
+ else
+ {
+ print(" failed")
+ }
+ print("]\n");
+ return $nConvwatchFailed;
+ }
+
+
+ # ------------------------------------------------------------------------------
+ # create jpeg from postscript or pdf from second installed office
+ # ------------------------------------------------------------------------------
+
+ if ($nConvwatchFailed == 0)
+ {
+ log_print("----- CREATE JPEG FROM POSTSCRIPT OR PDF FROM RUNNING OFFICE -----\n");
+ # start OOoRunner
+ my $sInputPath = getProjectOutput();
+ $sInputPath = appendPath($sInputPath, $sDocumentName);
+
+ my $sOutputPath = getProjectOutput();
+
+ my $sParams = "-cp " . $sOOoRunnerClasspath .
+ " org.openoffice.Runner" .
+ " -TimeOut $nTimeOut" .
+ " -tb java_complex" .
+ " -DOC_COMPARATOR_INPUT_PATH " . quoteIfNeed($sInputPath) .
+ " -DOC_COMPARATOR_OUTPUT_PATH " . quoteIfNeed($sOutputPath) .
+ " -DOC_COMPARATOR_REFERENCE_CREATOR_TYPE $sCreatorType" .
+ " -NoOffice" .
+ " -NoSmallPictures" .
+ " -o graphical.JPEGCreator";
+ if ($gspath)
+ {
+ $sParams .= " -gs.path " . quoteIfNeed($gspath);
+ }
+ if ($gsexe)
+ {
+ $sParams .= " -gs.exe $gsexe";
+ }
+
+ # $sDebug = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9001,suspend=y";
+ my $err = calljava(getJavaExecutable(), $sParams, $sDebug);
+ $sDebug = "";
+ # log_print( "\n\n");
+ if ($err != 0)
+ {
+ my $sFailure = "Failed after try to create JPEG from Postscript/pdf document for " . $sDocumentName;
+ log_print("ERROR: $sFailure\n");
+ $nConvwatchFailed = 1;
+ }
+ }
+ }
+
+ # ------------------------------------------------------------------------------
+ # create jpeg from postscript or pdf from references
+ # ------------------------------------------------------------------------------
+
+ if ($nConvwatchFailed == 0)
+ {
+ log_print("----- CREATE JPEG FROM POSTSCRIPT OR PDF FROM REFERENCE -----\n");
+
+ # start OOoRunner
+ my $sInputPath = appendPath(getProjectRoot(), "references");
+ $sInputPath = appendPath($sInputPath, getEnvironment());
+ $sInputPath = appendPath($sInputPath, $sDocumentPool);
+ $sInputPath = appendPath($sInputPath, $sDocumentName);
+
+ my $err = searchForReference($sInputPath);
+ if ($err != 0)
+ {
+ log_print("ERROR: Can't find Postscript or PDF reference for '$sInputPath'\n");
+ $nConvwatchFailed = 1;
+ }
+ else
+ {
+ my $sOutputPath = getProjectOutputReference();
+ rmkdir $sOutputPath;
+
+ my $sIndexFile = appendPath($sOutputPath, "index.ini");
+ # we need the index.ini for better run through
+ local *INDEXINI;
+ if ( ! -e $sIndexFile)
+ {
+ if (open(INDEXINI, ">$sIndexFile"))
+ {
+ # print INDEXINI "[$sDocumentName]\n";
+ close(INDEXINI);
+ }
+ }
+ my $sParams = "-cp " . $sOOoRunnerClasspath .
+ " org.openoffice.Runner" .
+ " -TimeOut $nTimeOut" .
+ " -tb java_complex" .
+ " -DOC_COMPARATOR_INPUT_PATH " . quoteIfNeed($sInputPath) .
+ " -DOC_COMPARATOR_OUTPUT_PATH " . quoteIfNeed($sOutputPath) .
+ " -DOC_COMPARATOR_REFERENCE_CREATOR_TYPE $sCreatorType" .
+ " -NoOffice" .
+ " -NoSmallPictures" .
+ " -o graphical.JPEGCreator";
+ if ($gspath)
+ {
+ $sParams .= " -gs.path " . quoteIfNeed($gspath);
+ }
+ if ($gsexe)
+ {
+ $sParams .= " -gs.exe $gsexe";
+ }
+
+ # $sDebug = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9001,suspend=y";
+ my $err = calljava(getJavaExecutable(), $sParams, $sDebug);
+ $sDebug = "";
+ # log_print( "\n\n");
+ if ($err != 0)
+ {
+ my $sFailure = "Failed after try to create JPEG from Postscript/pdf document for references.";
+ log_print("ERROR: $sFailure\n");
+ $nConvwatchFailed = 1;
+ }
+ }
+ }
+ # ------------------------------------------------------------------------------
+ # compare JPEGs
+ # ------------------------------------------------------------------------------
+
+ if ($nConvwatchFailed == 0)
+ {
+ log_print("----- COMPARE JPEGS -----\n");
+ my $sInputPath = appendPath(getProjectOutputReference(), $sDocumentName);
+
+ my $sOutputPath = getProjectOutput();
+
+ my $sParams = "-Xmx512m" .
+ " -cp " . $sOOoRunnerClasspath .
+ " org.openoffice.Runner" .
+ " -TimeOut $nTimeOut" .
+ " -tb java_complex" .
+ " -DOC_COMPARATOR_INPUT_PATH " . quoteIfNeed($sInputPath) .
+ " -DOC_COMPARATOR_OUTPUT_PATH " . quoteIfNeed($sOutputPath) .
+ " -NoOffice" .
+ " -NoSmallPictures" .
+ " -o graphical.JPEGComparator";
+ if ($impath)
+ {
+ $sParams .= " -imagemagick.path " . quoteIfNeed($impath);
+ }
+
+ # start OOoRunner
+ # $sDebug = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9001,suspend=y";
+ my $err = calljava(getJavaExecutable(), $sParams, $sDebug);
+ $sDebug = "";
+ log_print( "\n\n");
+ if ($err != 0)
+ {
+ my $sFailure = "Failed after compare JPEGs $sDocumentName\n";
+ log_print("ERROR: $sFailure\n");
+ $nConvwatchFailed = 1;
+
+ if ($show)
+ {
+ # try to execute new java tool to show graphical compare
+ my $sJavaProgram = appendPath(getProjectRoot(), $ENV{INPATH});
+ $sJavaProgram = appendPath($sJavaProgram, "class");
+ $sJavaProgram = appendPath($sJavaProgram, "ConvwatchGUIProject.jar");
+ if ( -e "$sJavaProgram")
+ {
+ my $sInputPath = appendPath(getProjectOutput(), $sDocumentName . ".ps.ini");
+ if (! -e $sInputPath)
+ {
+ $sInputPath = appendPath(getProjectOutput(), $sDocumentName . ".pdf.ini");
+ if (! -e $sInputPath)
+ {
+ $sInputPath = 0;
+ }
+ }
+ if ($sInputPath)
+ {
+ my $sParams = "-Xms128m -Xmx512m -jar $sJavaProgram $sInputPath";
+ # $sParams .= " -cs pipe,name=$USER";
+ # my $sJavaExe = "C:/Program Files/Java/jdk1.6.0_16/bin/java.exe"; # getJavaExecutable()
+ my $sJavaExe = getJavaExecutable();
+ # $sDebug = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9001,suspend=y";
+ my $err = calljava($sJavaExe, $sParams, $sDebug);
+ # $sDebug = "";
+ # log_print( "\n\n");
+ # if ($err != 0)
+ # {
+ # my $sFailure = "Failed after try to create Postscript/pdf document for " . $sDocumentName;
+ # log_print("ERROR: $sFailure\n");
+ # $nConvwatchFailed = 1;
+ # }
+ }
+ }
+ else
+ {
+ print "WARNING: The show program '$sJavaProgram' doesn't exists.\n";
+ }
+ }
+ }
+ }
+
+ log_print( "\n\n");
+ close_logfile();
+
+ if ($nConvwatchFailed == 0)
+ {
+ print(" [ok]\n");
+ }
+ else
+ {
+ print(" [FAILED]\n");
+ print("\nPrint output of test: $sDocumentName\n");
+ my $sLogFile = appendPath(getProjectOutput(), $sDocumentName . ".txt");
+ showFile($sLogFile);
+ }
+ # printTime(endTime($nSimpleCompareTime));
+
+ return $nConvwatchFailed;
+}
+
+# ------------------------------------------------------------------------------
+# cat $file
+sub showFile($)
+{
+ my $logfile = shift;
+ local *LOGFILE;
+ if (open(LOGFILE, "$logfile"))
+ {
+ my $line;
+ while ($line = <LOGFILE>)
+ {
+ chomp($line);
+ print $line ."\n";
+ }
+ close(LOGFILE);
+ }
+}
+
+
+1;
diff --git a/testgraphical/source/loghelper.pm b/testgraphical/source/loghelper.pm
new file mode 100644
index 000000000000..6dad31c7761a
--- /dev/null
+++ b/testgraphical/source/loghelper.pm
@@ -0,0 +1,94 @@
+package loghelper;
+
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+use strict;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&set_logfile &close_logfile &log_print &setVerbose);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+# ------------------------------- Log into a file -------------------------------
+local *LOGFILE;
+our $nGlobalLog = 0;
+our $nGlobalVerbose = 0;
+
+sub setVerbose()
+{
+ $nGlobalVerbose = 1;
+}
+
+sub set_logfile($)
+{
+ my $sLogFile = shift;
+
+ if (open(LOGFILE, ">$sLogFile"))
+ {
+ $nGlobalLog = 1;
+ }
+}
+sub close_logfile()
+{
+ close(LOGFILE);
+ $nGlobalLog = 0;
+}
+
+sub log_print($)
+{
+ my $sLine = shift;
+ if ($nGlobalLog)
+ {
+ print LOGFILE $sLine;
+ }
+ if ($nGlobalVerbose == 1)
+ {
+ print $sLine;
+ }
+ else
+ {
+ # In this special case for NetBeans, which show if a debugger can access.
+ # The Line should print anyway.
+ if ($sLine =~ /Listening for transport/)
+ {
+ print $sLine;
+ }
+ }
+}
+
+1;
diff --git a/testgraphical/source/makefile.mk b/testgraphical/source/makefile.mk
new file mode 100644
index 000000000000..619fd7786f93
--- /dev/null
+++ b/testgraphical/source/makefile.mk
@@ -0,0 +1,112 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..
+
+PRJNAME=gfxcmp
+TARGET=notargetyet
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+# call with PDF=1 to use office pdf exporter instead of the XPrinter API
+.IF "$(PDF)"!=""
+ CREATORTYPE="-creatortype" pdf
+.ELSE
+ CREATORTYE="-creatortype" ps
+.ENDIF
+
+.IF "$(SHOW)"!=""
+ P_SHOW=-show
+.ENDIF
+
+
+# call with PREPARE=1 to only create new reference files
+# copy these files by hand into the corresponding directories
+.IF "$(PREPARE)"!=""
+ PREPAREONLY="-prepareonly" 1
+.ELSE
+ PREPAREONLY=
+.ENDIF
+
+.IF "$(DOCUMENTPOOL)"==""
+ DOCUMENTPOOL=$PRJ$/document-pool
+.ENDIF
+
+# PERLDEBUG=-d:ptkdb
+ALLTAR: selftest
+# pwd
+# $(PERL) $(PERLDEBUG) compare.pl -MAJOR $(WORK_STAMP) -MINOR $(UPDMINOR) -cwsname "$(CWS_WORK_STAMP)"
+# $(PERL) $(PERLDEBUG) compare.pl -pool singletest
+
+# $(PRJ)$/util$/makefile.pmk contains ALLTAR stuff
+
+# selftest is the default run through at the moment and use pdf export to create output.
+# dmake
+selftest:
+ $(PERL) $(PERLDEBUG) compare.pl -creatortype pdf $(PREPAREONLY) -pool singletest -document eis-test.odt $(P_SHOW)
+
+# selftest_ps is like the default run through but use always postscript print out
+# dmake selftest_ps
+selftest_ps:
+ $(PERL) $(PERLDEBUG) compare.pl -creatortype ps $(PREPAREONLY) -pool singletest -document eis-test.odt $(P_SHOW)
+
+#
+#
+# The follows are demonstration targets, DO NOT DELETE
+#
+#
+
+# dmake demo SHOW=1
+demo:
+ $(PERL) $(PERLDEBUG) compare.pl $(CREATORTYPE) $(PREPAREONLY) -pool $@ $(P_SHOW)
+
+# failtest is a demonstration of a failure, with SHOW=1 it should open a java windows which shows 3 pictures,
+# the current document, the reference document and the difference between both.
+# dmake failtest SHOW=1
+# dmake failtest PREPARE=1
+# This test will most the time fail, it is just a demonstration.
+failtest:
+ $(PERL) $(PERLDEBUG) compare.pl $(CREATORTYPE) $(PREPAREONLY) -force -pool demo -document CurrentTime.ods $(P_SHOW)
+
+# manual runs through all documents found in document-pool
+# dmake manual
+# dmake manual PDF=1 SHOW=1
+# dmake manual PREPARE=1 PDF=1
+# should help to create a lot of references at one time.
+manual:
+ $(PERL) $(PERLDEBUG) compare.pl $(CREATORTYPE) $(PREPAREONLY) -force $(P_SHOW)
+
+# msoffice:
+# $(PERL) $(PERLDEBUG) compare.pl -creatortype msoffice $(PREPAREONLY) -pool msoffice -document calc_cellformat_import_biff8.xls $(P_SHOW)
+
+clean:
diff --git a/testgraphical/source/oshelper.pm b/testgraphical/source/oshelper.pm
new file mode 100644
index 000000000000..3f2ed1c44e38
--- /dev/null
+++ b/testgraphical/source/oshelper.pm
@@ -0,0 +1,110 @@
+package oshelper;
+
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+use English;
+use warnings;
+use strict;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&getEnvironment &isWindowsEnvironment &isUnixEnvironment &getUsername);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+
+# ------------------------------------------------------------------------------
+sub getEnvironment()
+{
+ my $sEnvironment;
+ if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ $sEnvironment = "wntmsci";
+ }
+ elsif ( $OSNAME eq "linux")
+ {
+ $sEnvironment = "unxlngi";
+ }
+ elsif ( $OSNAME eq "solaris")
+ {
+ $sEnvironment = "unxsoli";
+ }
+ else
+ {
+ print "Unknown Environment please check OSNAME: '$OSNAME'\n";
+ $sEnvironment = "unknown";
+ }
+ return $sEnvironment;
+}
+
+# ------------------------------------------------------------------------------
+
+sub isWindowsEnvironment()
+{
+ if ($OSNAME eq "MSWin32" ||
+ $OSNAME eq "cygwin")
+ {
+ return 1;
+ }
+ return 0;
+}
+
+sub isUnixEnvironment()
+{
+ if ($OSNAME eq "linux" ||
+ $OSNAME eq "solaris")
+ {
+ return 1;
+ }
+ return 0;
+}
+
+sub getUsername()
+{
+ my $sUser = $ENV{USER};
+ if (!$sUser)
+ {
+ $sUser = $ENV{USERNAME};
+ }
+ if (!$sUser)
+ {
+ die "Username not set.\n";
+ }
+ return $sUser;
+}
+
+1;
diff --git a/cppu/test/purpenvhelper/purpenvhelper.test.pl b/testgraphical/source/solarenvhelper.pm
index aa5605f71416..f8ec17ece12b 100755..100644
--- a/cppu/test/purpenvhelper/purpenvhelper.test.pl
+++ b/testgraphical/source/solarenvhelper.pm
@@ -1,6 +1,4 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
+package solarenvhelper;
#*************************************************************************
#
@@ -29,39 +27,37 @@ eval 'exec perl -wS $0 ${1+"$@"}'
#
#*************************************************************************
-my $rc = 0;
-my $comment = "";
-
-
-@tests=(
- "env.tester.bin uno:TestEnv"
-);
-
-foreach $test (@tests) {
- $output = "";
-
- $cmd = $test;
- open TESTER, $cmd . "|";
- while (<TESTER>) {
- chomp;
-
- $output = $output . "\t" . $_ . "\n";
- }
- close TESTER ;
-
- if ($? != 0) {
- $comment = $comment . "TEST FAILED: " . $cmd . "\n";
- $comment = $comment . $output;
- }
- $rc = $rc + $?;
+use strict;
+use warnings;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&setSolenvPath &getSolenvPath);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
}
-
-print $comment;
-
-if ($rc == 0) {
- print "*********** SUCCESS\n";
+our $sSolenvPath;
+sub setSolenvPath($)
+{
+ $sSolenvPath = shift;
}
-else {
- print "*********** FAILURE\n";
+sub getSolenvPath()
+{
+ if ($sSolenvPath)
+ {
+ return $sSolenvPath;
+ }
+ print "INTERNAL ERROR: You must set the solenv path to the performancetest, by call setSolenvPath()\n";
+ exit 1;
}
+
+1;
diff --git a/cppu/test/purpose_envs/purpose_envs.test.pl b/testgraphical/source/stringhelper.pm
index 28abe2b72398..e7d19256bf1b 100755..100644
--- a/cppu/test/purpose_envs/purpose_envs.test.pl
+++ b/testgraphical/source/stringhelper.pm
@@ -1,6 +1,4 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
+package stringhelper;
#*************************************************************************
#
@@ -29,39 +27,43 @@ eval 'exec perl -wS $0 ${1+"$@"}'
#
#*************************************************************************
-my $rc = 0;
-my $comment = "";
+use strict;
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-@tests=(
-"env.tester.bin uno"
-);
-
-foreach $test (@tests) {
- $output = "";
-
- $cmd = $test;
- open TESTER, $cmd . "|";
- while (<TESTER>) {
- chomp;
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&endswith &startswith);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
- $output = $output . "\t" . $_ . "\n";
+# string helper like java endsWith
+sub endswith($$)
+{
+ my $string = shift;
+ my $search = shift;
+ if ( $string =~ /${search}$/ )
+ {
+ return 1;
}
- close TESTER ;
-
- if ($? != 0) {
- $comment = $comment . "TEST FAILED: " . $cmd . "\n";
- $comment = $comment . $output;
+ return 0;
+}
+sub startswith($$)
+{
+ my $string = shift;
+ my $search = shift;
+ if ( $string =~ /^${search}/ )
+ {
+ return 1;
}
- $rc = $rc + $?;
+ return 0;
}
-
-print $comment;
-
-if ($rc == 0) {
- print "*********** SUCCESS\n";
-}
-else {
- print "*********** FAILURE\n";
-}
+1;
diff --git a/testgraphical/source/timehelper.pm b/testgraphical/source/timehelper.pm
new file mode 100644
index 000000000000..38bd56fc4b20
--- /dev/null
+++ b/testgraphical/source/timehelper.pm
@@ -0,0 +1,99 @@
+package timehelper;
+
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+use POSIX qw(strftime);
+use POSIX qw(time difftime);
+# use POSIX qw(localtime);
+use strict;
+# use Time::localtime;
+use loghelper;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&getTime &endTime &printTime &waitAMinute );
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+
+# ------------------------------------------------------------------------------
+# our $starttime;
+sub getTime()
+{
+ my $nValue;
+ # $nValue = localtime->sec();
+ # $nValue += 60 * localtime->min();
+ # $nValue += 3600 * localtime->hour();
+ $nValue = time();
+ return $nValue;
+}
+# sub startTime()
+# {
+# $starttime = getTime();
+# }
+sub endTime($)
+{
+ my $starttime = shift;
+
+ my $endtime = getTime();
+ my $nTime = difftime($endtime, $starttime);
+ # my $nTime = $endtime - $starttime;
+ # if ($nTime < 0)
+ # {
+ # $nTime += 24 * 3600; # add 24 hours
+ # }
+ return $nTime;
+}
+sub printTime($)
+{
+ my $nTime = shift;
+ print( "Time: " . $nTime . " seconds.\n\n");
+}
+
+
+# sub waitAMinute()
+# {
+# # _waitInSeconds(20);
+# # _waitInSeconds(20);
+# my $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime;
+# print $now_string . "\n";
+# # print getCurrentDateString() . "\n";
+# sleep(60);
+# }
+#
+
+1;
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/build.xml b/testgraphical/ui/java/ConvwatchGUIProject/build.xml
new file mode 100644
index 000000000000..e4d82212f35d
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/build.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<!-- By default, only the Clean and Build commands use this build script. -->
+<!-- Commands such as Run, Debug, and Test only use this build script if -->
+<!-- the Compile on Save feature is turned off for the project. -->
+<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
+<!-- in the project's Project Properties dialog box.-->
+<project name="ConvwatchGUIProject" default="default" basedir=".">
+ <description>Builds, tests, and runs the project ConvwatchGUIProject.</description>
+ <import file="nbproject/build-impl.xml"/>
+ <!--
+
+ There exist several targets which are by default empty and which can be
+ used for execution of your tasks. These targets are usually executed
+ before and after some main targets. They are:
+
+ -pre-init: called before initialization of project properties
+ -post-init: called after initialization of project properties
+ -pre-compile: called before javac compilation
+ -post-compile: called after javac compilation
+ -pre-compile-single: called before javac compilation of single file
+ -post-compile-single: called after javac compilation of single file
+ -pre-compile-test: called before javac compilation of JUnit tests
+ -post-compile-test: called after javac compilation of JUnit tests
+ -pre-compile-test-single: called before javac compilation of single JUnit test
+ -post-compile-test-single: called after javac compilation of single JUunit test
+ -pre-jar: called before JAR building
+ -post-jar: called after JAR building
+ -post-clean: called after cleaning build products
+
+ (Targets beginning with '-' are not intended to be called on their own.)
+
+ Example of inserting an obfuscator after compilation could look like this:
+
+ <target name="-post-compile">
+ <obfuscate>
+ <fileset dir="${build.classes.dir}"/>
+ </obfuscate>
+ </target>
+
+ For list of available properties check the imported
+ nbproject/build-impl.xml file.
+
+
+ Another way to customize the build is by overriding existing main targets.
+ The targets of interest are:
+
+ -init-macrodef-javac: defines macro for javac compilation
+ -init-macrodef-junit: defines macro for junit execution
+ -init-macrodef-debug: defines macro for class debugging
+ -init-macrodef-java: defines macro for class execution
+ -do-jar-with-manifest: JAR building (if you are using a manifest)
+ -do-jar-without-manifest: JAR building (if you are not using a manifest)
+ run: execution of project
+ -javadoc-build: Javadoc generation
+ test-report: JUnit report generation
+
+ An example of overriding the target for project execution could look like this:
+
+ <target name="run" depends="ConvwatchGUIProject-impl.jar">
+ <exec dir="bin" executable="launcher.exe">
+ <arg file="${dist.jar}"/>
+ </exec>
+ </target>
+
+ Notice that the overridden target depends on the jar target and not only on
+ the compile target as the regular run target does. Again, for a list of available
+ properties which you can use, check the target you are overriding in the
+ nbproject/build-impl.xml file.
+
+ -->
+</project>
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/dist/ConvwatchGUIProject.jar b/testgraphical/ui/java/ConvwatchGUIProject/dist/ConvwatchGUIProject.jar
new file mode 100644
index 000000000000..3b0ac20afa74
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/dist/ConvwatchGUIProject.jar
Binary files differ
diff --git a/cppu/test/Map/makefile.mk b/testgraphical/ui/java/ConvwatchGUIProject/makefile.mk
index 6344efc48243..5cb16f1d4c31 100644
--- a/cppu/test/Map/makefile.mk
+++ b/testgraphical/ui/java/ConvwatchGUIProject/makefile.mk
@@ -25,31 +25,47 @@
#
#*************************************************************************
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := Map.test
+PRJ=../../..
+PRJNAME=gfxcmp_ui_java_convwatchgui
+TARGET=notargetyet
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
-
+# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
+# --- ANT build environment ---------------------------------------
+
+.INCLUDE : antsettings.mk
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
-.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
-ObjectFactory_LIB := -lObjectFactory.$(COMID)
+.IF "$(SHOW)" == ""
+nothing .PHONY:
.ELSE
-ObjectFactory_LIB := $(LIBPRE) iObjectFactory.$(COMID).lib
-.ENDIF
+ALLTAR: dist/ConvwatchGUIProject.jar
-APP1TARGET := $(TARGET)
-APP1OBJS := $(OBJ)$/Map.test.obj
-APP1STDLIBS := $(ObjectFactory_LIB) $(CPPULIB) $(SALLIB)
+dist/ConvwatchGUIProject.jar: src/ConvwatchGUI.java src/IniFile.java
+# .if $(JDK_VERSION) < 160
+# echo "You need at least java 6"
+# error
+# .endif
+#
+.IF "$(GUI)"=="WNT"
+ $(ANT)
+.ELSE
+ ant
+.END
+.END
+
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+clean:
+ $(ANT) clean
-.INCLUDE : target.mk
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/manifest.mf b/testgraphical/ui/java/ConvwatchGUIProject/manifest.mf
new file mode 100644
index 000000000000..328e8e5bc3b7
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/manifest.mf
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+X-COMMENT: Main-Class will be added automatically by build
+
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/build-impl.xml b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/build-impl.xml
new file mode 100644
index 000000000000..e493afec4fc3
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/build-impl.xml
@@ -0,0 +1,805 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT ***
+*** EDIT ../build.xml INSTEAD ***
+
+For the purpose of easier reading the script
+is divided into following sections:
+
+ - initialization
+ - compilation
+ - jar
+ - execution
+ - debugging
+ - javadoc
+ - junit compilation
+ - junit execution
+ - junit debugging
+ - applet
+ - cleanup
+
+ -->
+<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="ConvwatchGUIProject-impl">
+ <fail message="Please build using Ant 1.7.1 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.7.1"/>
+ </not>
+ </condition>
+ </fail>
+ <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
+ <!--
+ ======================
+ INITIALIZATION SECTION
+ ======================
+ -->
+ <target name="-pre-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init" name="-init-private">
+ <property file="nbproject/private/config.properties"/>
+ <property file="nbproject/private/configs/${config}.properties"/>
+ <property file="nbproject/private/private.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private" name="-init-user">
+ <property file="${user.properties.file}"/>
+ <!-- The two properties below are usually overridden -->
+ <!-- by the active platform. Just a fallback. -->
+ <property name="default.javac.source" value="1.4"/>
+ <property name="default.javac.target" value="1.4"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user" name="-init-project">
+ <property file="nbproject/configs/${config}.properties"/>
+ <property file="nbproject/project.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+ <available file="${manifest.file}" property="manifest.available"/>
+ <condition property="main.class.available">
+ <and>
+ <isset property="main.class"/>
+ <not>
+ <equals arg1="${main.class}" arg2="" trim="true"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="manifest.available+main.class">
+ <and>
+ <isset property="manifest.available"/>
+ <isset property="main.class.available"/>
+ </and>
+ </condition>
+ <condition property="do.mkdist">
+ <and>
+ <isset property="libs.CopyLibs.classpath"/>
+ <not>
+ <istrue value="${mkdist.disabled}"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="manifest.available+main.class+mkdist.available">
+ <and>
+ <istrue value="${manifest.available+main.class}"/>
+ <isset property="do.mkdist"/>
+ </and>
+ </condition>
+ <condition property="manifest.available+mkdist.available">
+ <and>
+ <istrue value="${manifest.available}"/>
+ <isset property="do.mkdist"/>
+ </and>
+ </condition>
+ <condition property="manifest.available-mkdist.available">
+ <or>
+ <istrue value="${manifest.available}"/>
+ <isset property="do.mkdist"/>
+ </or>
+ </condition>
+ <condition property="manifest.available+main.class-mkdist.available">
+ <or>
+ <istrue value="${manifest.available+main.class}"/>
+ <isset property="do.mkdist"/>
+ </or>
+ </condition>
+ <condition property="have.tests">
+ <or>
+ <available file="${test.src.dir}"/>
+ </or>
+ </condition>
+ <condition property="have.sources">
+ <or>
+ <available file="${src.dir}"/>
+ </or>
+ </condition>
+ <condition property="netbeans.home+have.tests">
+ <and>
+ <isset property="netbeans.home"/>
+ <isset property="have.tests"/>
+ </and>
+ </condition>
+ <condition property="no.javadoc.preview">
+ <and>
+ <isset property="javadoc.preview"/>
+ <isfalse value="${javadoc.preview}"/>
+ </and>
+ </condition>
+ <property name="run.jvmargs" value=""/>
+ <property name="javac.compilerargs" value=""/>
+ <property name="work.dir" value="${basedir}"/>
+ <condition property="no.deps">
+ <and>
+ <istrue value="${no.dependencies}"/>
+ </and>
+ </condition>
+ <property name="javac.debug" value="true"/>
+ <property name="javadoc.preview" value="true"/>
+ <property name="application.args" value=""/>
+ <property name="source.encoding" value="${file.encoding}"/>
+ <property name="runtime.encoding" value="${source.encoding}"/>
+ <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
+ <and>
+ <isset property="javadoc.encoding"/>
+ <not>
+ <equals arg1="${javadoc.encoding}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <property name="javadoc.encoding.used" value="${source.encoding}"/>
+ <property name="includes" value="**"/>
+ <property name="excludes" value=""/>
+ <property name="do.depend" value="false"/>
+ <condition property="do.depend.true">
+ <istrue value="${do.depend}"/>
+ </condition>
+ <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
+ <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
+ <length length="0" string="${endorsed.classpath}" when="greater"/>
+ </condition>
+ <property name="javac.fork" value="false"/>
+ </target>
+ <target name="-post-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
+ <fail unless="src.dir">Must set src.dir</fail>
+ <fail unless="test.src.dir">Must set test.src.dir</fail>
+ <fail unless="build.dir">Must set build.dir</fail>
+ <fail unless="dist.dir">Must set dist.dir</fail>
+ <fail unless="build.classes.dir">Must set build.classes.dir</fail>
+ <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+ <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
+ <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
+ <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
+ <fail unless="dist.jar">Must set dist.jar</fail>
+ </target>
+ <target name="-init-macrodef-property">
+ <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="${@{value}}"/>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-javac">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="${javac.debug}" name="debug"/>
+ <attribute default="${empty.dir}" name="sourcepath"/>
+ <attribute default="${empty.dir}" name="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+ <src>
+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </src>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <customize/>
+ </javac>
+ </sequential>
+ </macrodef>
+ <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <sequential>
+ <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </depend>
+ </sequential>
+ </macrodef>
+ <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <sequential>
+ <fail unless="javac.includes">Must set javac.includes</fail>
+ <pathconvert pathsep="," property="javac.includes.binary">
+ <path>
+ <filelist dir="@{destdir}" files="${javac.includes}"/>
+ </path>
+ <globmapper from="*.java" to="*.class"/>
+ </pathconvert>
+ <delete>
+ <files includes="${javac.includes.binary}"/>
+ </delete>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-junit">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <sequential>
+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
+ <batchtest todir="${build.test.results.dir}">
+ <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ </batchtest>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
+ <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${main.class}" name="name"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <attribute default="" name="stopclassname"/>
+ <sequential>
+ <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </nbjpdastart>
+ </sequential>
+ </macrodef>
+ <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${build.classes.dir}" name="dir"/>
+ <sequential>
+ <nbjpdareload>
+ <fileset dir="@{dir}" includes="${fix.classes}">
+ <include name="${fix.includes}*.class"/>
+ </fileset>
+ </nbjpdareload>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-debug-args">
+ <property name="version-output" value="java version &quot;${ant.java.version}"/>
+ <condition property="have-jdk-older-than-1.4">
+ <or>
+ <contains string="${version-output}" substring="java version &quot;1.0"/>
+ <contains string="${version-output}" substring="java version &quot;1.1"/>
+ <contains string="${version-output}" substring="java version &quot;1.2"/>
+ <contains string="${version-output}" substring="java version &quot;1.3"/>
+ </or>
+ </condition>
+ <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
+ <istrue value="${have-jdk-older-than-1.4}"/>
+ </condition>
+ <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
+ <os family="windows"/>
+ </condition>
+ <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
+ <isset property="debug.transport"/>
+ </condition>
+ </target>
+ <target depends="-init-debug-args" name="-init-macrodef-debug">
+ <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" fork="true">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${debug-args-line}"/>
+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-java">
+ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${run.classpath}" name="classpath"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" fork="true">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-presetdef-jar">
+ <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <jar compress="${jar.compress}" jarfile="${dist.jar}">
+ <j2seproject1:fileset dir="${build.classes.dir}"/>
+ </jar>
+ </presetdef>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
+ <!--
+ ===================
+ COMPILATION SECTION
+ ===================
+ -->
+ <target name="-deps-jar-init" unless="built-jar.properties">
+ <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
+ <delete file="${built-jar.properties}" quiet="true"/>
+ </target>
+ <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
+ <echo level="warn" message="Cycle detected: ConvwatchGUIProject was already built"/>
+ </target>
+ <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
+ <mkdir dir="${build.dir}"/>
+ <touch file="${built-jar.properties}" verbose="false"/>
+ <property file="${built-jar.properties}" prefix="already.built.jar."/>
+ <antcall target="-warn-already-built-jar"/>
+ <propertyfile file="${built-jar.properties}">
+ <entry key="${basedir}" value=""/>
+ </propertyfile>
+ </target>
+ <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
+ <target depends="init" name="-check-automatic-build">
+ <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
+ </target>
+ <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
+ <antcall target="clean"/>
+ </target>
+ <target depends="init,deps-jar" name="-pre-pre-compile">
+ <mkdir dir="${build.classes.dir}"/>
+ </target>
+ <target name="-pre-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="do.depend.true" name="-compile-depend">
+ <pathconvert property="build.generated.subdirs">
+ <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </pathconvert>
+ <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
+ <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
+ <copy todir="${build.classes.dir}">
+ <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
+ <target name="-pre-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2seproject3:force-recompile/>
+ <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
+ </target>
+ <target name="-post-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
+ <!--
+ ====================
+ JAR BUILDING SECTION
+ ====================
+ -->
+ <target depends="init" name="-pre-pre-jar">
+ <dirname file="${dist.jar}" property="dist.jar.dir"/>
+ <mkdir dir="${dist.jar.dir}"/>
+ </target>
+ <target name="-pre-jar">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
+ <j2seproject1:jar/>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
+ <j2seproject1:jar manifest="${manifest.file}"/>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
+ <j2seproject1:jar manifest="${manifest.file}">
+ <j2seproject1:manifest>
+ <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
+ </j2seproject1:manifest>
+ </j2seproject1:jar>
+ <echo>To run this application from the command line without Ant, try:</echo>
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <property location="${dist.jar}" name="dist.jar.resolved"/>
+ <pathconvert property="run.classpath.with.dist.jar">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+ </pathconvert>
+ <echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+ <fileset dir="${build.classes.dir}"/>
+ <manifest>
+ <attribute name="Main-Class" value="${main.class}"/>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ </manifest>
+ </copylibs>
+ <echo>To run this application from the command line without Ant, try:</echo>
+ <property location="${dist.jar}" name="dist.jar.resolved"/>
+ <echo>java -jar "${dist.jar.resolved}"</echo>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+mkdist.available" name="-do-jar-with-libraries-without-mainclass" unless="main.class.available">
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+ <fileset dir="${build.classes.dir}"/>
+ <manifest>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ </manifest>
+ </copylibs>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.mkdist" name="-do-jar-with-libraries-without-manifest" unless="manifest.available">
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <copylibs compress="${jar.compress}" jarfile="${dist.jar}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+ <fileset dir="${build.classes.dir}"/>
+ <manifest>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ </manifest>
+ </copylibs>
+ </target>
+ <target name="-post-jar">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-do-jar-with-libraries-without-mainclass,-do-jar-with-libraries-without-manifest,-post-jar" description="Build JAR." name="jar"/>
+ <!--
+ =================
+ EXECUTION SECTION
+ =================
+ -->
+ <target depends="init,compile" description="Run a main class." name="run">
+ <j2seproject1:java>
+ <customize>
+ <arg line="${application.args}"/>
+ </customize>
+ </j2seproject1:java>
+ </target>
+ <target name="-do-not-recompile">
+ <property name="javac.includes.binary" value=""/>
+ </target>
+ <target depends="init,compile-single" name="run-single">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2seproject1:java classname="${run.class}"/>
+ </target>
+ <target depends="init,compile-test-single" name="run-test-with-main">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
+ </target>
+ <!--
+ =================
+ DEBUGGING SECTION
+ =================
+ -->
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger">
+ <j2seproject1:nbjpdastart name="${debug.class}"/>
+ </target>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
+ </target>
+ <target depends="init,compile" name="-debug-start-debuggee">
+ <j2seproject3:debug>
+ <customize>
+ <arg line="${application.args}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
+ <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
+ </target>
+ <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2seproject3:debug classname="${debug.class}"/>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
+ <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
+ </target>
+ <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
+ <target depends="init" name="-pre-debug-fix">
+ <fail unless="fix.includes">Must set fix.includes</fail>
+ <property name="javac.includes" value="${fix.includes}.java"/>
+ </target>
+ <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
+ <j2seproject1:nbjpdareload/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
+ <!--
+ ===============
+ JAVADOC SECTION
+ ===============
+ -->
+ <target depends="init" name="-javadoc-build">
+ <mkdir dir="${dist.javadoc.dir}"/>
+ <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+ <classpath>
+ <path path="${javac.classpath}"/>
+ </classpath>
+ <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="**/*.java"/>
+ </fileset>
+ </javadoc>
+ </target>
+ <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
+ <nbbrowse file="${dist.javadoc.dir}/index.html"/>
+ </target>
+ <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
+ <!--
+ =========================
+ JUNIT COMPILATION SECTION
+ =========================
+ -->
+ <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
+ <mkdir dir="${build.test.classes.dir}"/>
+ </target>
+ <target name="-pre-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="do.depend.true" name="-compile-test-depend">
+ <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
+ <j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
+ <copy todir="${build.test.classes.dir}">
+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
+ <target name="-pre-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
+ <j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
+ <copy todir="${build.test.classes.dir}">
+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
+ <!--
+ =======================
+ JUNIT EXECUTION SECTION
+ =======================
+ -->
+ <target depends="init" if="have.tests" name="-pre-test-run">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
+ <j2seproject3:junit testincludes="**/*Test.java"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init" if="have.tests" name="test-report"/>
+ <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
+ <target depends="init" if="have.tests" name="-pre-test-run-single">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
+ <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+ <j2seproject3:junit excludes="" includes="${test.includes}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
+ <!--
+ =======================
+ JUNIT DEBUGGING SECTION
+ =======================
+ -->
+ <target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+ <property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
+ <delete file="${test.report.file}"/>
+ <mkdir dir="${build.test.results.dir}"/>
+ <j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
+ <customize>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <arg value="${test.class}"/>
+ <arg value="showoutput=true"/>
+ <arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
+ <arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
+ </target>
+ <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
+ <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
+ <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
+ <!--
+ =========================
+ APPLET EXECUTION SECTION
+ =========================
+ -->
+ <target depends="init,compile-single" name="run-applet">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <j2seproject1:java classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </j2seproject1:java>
+ </target>
+ <!--
+ =========================
+ APPLET DEBUGGING SECTION
+ =========================
+ -->
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <j2seproject3:debug classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
+ <!--
+ ===============
+ CLEANUP SECTION
+ ===============
+ -->
+ <target name="-deps-clean-init" unless="built-clean.properties">
+ <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
+ <delete file="${built-clean.properties}" quiet="true"/>
+ </target>
+ <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
+ <echo level="warn" message="Cycle detected: ConvwatchGUIProject was already built"/>
+ </target>
+ <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
+ <mkdir dir="${build.dir}"/>
+ <touch file="${built-clean.properties}" verbose="false"/>
+ <property file="${built-clean.properties}" prefix="already.built.clean."/>
+ <antcall target="-warn-already-built-clean"/>
+ <propertyfile file="${built-clean.properties}">
+ <entry key="${basedir}" value=""/>
+ </propertyfile>
+ </target>
+ <target depends="init" name="-do-clean">
+ <delete dir="${build.dir}"/>
+ <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
+ </target>
+ <target name="-post-clean">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
+ <target name="-check-call-dep">
+ <property file="${call.built.properties}" prefix="already.built."/>
+ <condition property="should.call.dep">
+ <not>
+ <isset property="already.built.${call.subproject}"/>
+ </not>
+ </condition>
+ </target>
+ <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
+ <ant antfile="${call.script}" inheritall="false" target="${call.target}">
+ <propertyset>
+ <propertyref prefix="transfer."/>
+ <mapper from="transfer.*" to="*" type="glob"/>
+ </propertyset>
+ </ant>
+ </target>
+</project>
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/genfiles.properties b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/genfiles.properties
new file mode 100644
index 000000000000..1b4512b96265
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/genfiles.properties
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=d17eccb2
+build.xml.script.CRC32=a183e208
+build.xml.stylesheet.CRC32=958a1d3e@1.32.1.45
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=d17eccb2
+nbproject/build-impl.xml.script.CRC32=ea0e5dc9
+nbproject/build-impl.xml.stylesheet.CRC32=576378a2@1.32.1.45
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/config.properties b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/config.properties
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/config.properties
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.properties b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.properties
new file mode 100644
index 000000000000..18af3f70309a
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.properties
@@ -0,0 +1,7 @@
+application.args=D:\\sources\\gfxcmp02\\DEV300\\ooo\\testgraphical\\wntmsci12.pro\\misc\\CurrentTime.ods.ps.ini
+compile.on.save=true
+do.depend=false
+do.jar=true
+javac.debug=true
+javadoc.preview=true
+user.properties.file=C:\\Documents and Settings\\ll93751\\.netbeans\\6.8\\build.properties
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.xml b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.xml
new file mode 100644
index 000000000000..c1f155a782bd
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
+ <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
+</project-private>
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.properties b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.properties
new file mode 100644
index 000000000000..3ec3fae330ae
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.properties
@@ -0,0 +1,71 @@
+application.desc=This Program shows three pictures in one line.
+application.title=ConvwatchGUIProject
+application.vendor=Oracle and/or its affiliates
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+ ${run.classpath}
+debug.test.classpath=\
+ ${run.test.classpath}
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/ConvwatchGUIProject.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+endorsed.classpath=
+excludes=
+includes=**
+jar.compress=false
+javac.classpath=
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.source=1.5
+javac.target=1.5
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}:\
+ ${libs.junit.classpath}:\
+ ${libs.junit_4.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+jnlp.codebase.type=local
+jnlp.descriptor=application
+jnlp.enabled=false
+jnlp.offline-allowed=false
+jnlp.signed=false
+main.class=ConvwatchGUI
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+platform.active=default_platform
+run.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+# Space-separated list of JVM arguments used when running the project
+# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
+# or test-sys-prop.name=value to set system properties for unit tests):
+run.jvmargs=
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+source.encoding=UTF-8
+src.dir=src
+test.src.dir=test
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.xml b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.xml
new file mode 100644
index 000000000000..0bc513904c86
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+ <type>org.netbeans.modules.java.j2seproject</type>
+ <configuration>
+ <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
+ <name>ConvwatchGUIProject</name>
+ <source-roots>
+ <root id="src.dir"/>
+ </source-roots>
+ <test-roots>
+ <root id="test.src.dir"/>
+ </test-roots>
+ </data>
+ </configuration>
+</project>
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.form b/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.form
new file mode 100644
index 000000000000..ad0552d1efd5
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.form
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="3"/>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ </SyntheticProperties>
+ <Events>
+ <EventHandler event="componentResized" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="formComponentResized"/>
+ <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="formPropertyChange"/>
+ </Events>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ </AuxValues>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="1" attributes="0">
+ <Component id="jPanel5" alignment="0" max="32767" attributes="0"/>
+ <Component id="jPanel4" alignment="0" max="32767" attributes="0"/>
+ <Group type="102" alignment="1" attributes="0">
+ <Component id="jPanelOriginal" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jPanelReference" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jPanelDifference" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jPanel5" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="1" attributes="0">
+ <Component id="jPanelReference" alignment="1" max="32767" attributes="1"/>
+ <Component id="jPanelOriginal" alignment="1" max="32767" attributes="1"/>
+ <Component id="jPanelDifference" alignment="0" max="32767" attributes="1"/>
+ </Group>
+ <EmptySpace min="-2" max="-2" attributes="0"/>
+ <Component id="jPanel4" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanelOriginal">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Picture"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jLabelOriginalImage" pref="299" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Component id="jLabelOriginalImage" pref="514" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabelOriginalImage">
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanelReference">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Reference Picture"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jLabelReferenceImage" pref="299" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Component id="jLabelReferenceImage" pref="514" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabelReferenceImage">
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanelDifference">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Difference"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jLabelDifferenceImage" pref="298" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Component id="jLabelDifferenceImage" pref="514" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabelDifferenceImage">
+ <Properties>
+ <Property name="name" type="java.lang.String" value="DifferenceImage" noResource="true"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel4">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Action"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jButton2" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jButton3" min="-2" max="-2" attributes="0"/>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Component id="jLabelCurrentPage" min="-2" pref="107" max="-2" attributes="0"/>
+ <EmptySpace pref="614" max="32767" attributes="0"/>
+ <Component id="jButton1" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="32767" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jButton1" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="jButton2" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="jButton3" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabelCurrentPage" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="jButton1">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Close"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="jButton2">
+ <Properties>
+ <Property name="label" type="java.lang.String" value="prev page"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton2ActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="jButton3">
+ <Properties>
+ <Property name="label" type="java.lang.String" value="next page"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton3ActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabelCurrentPage">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Current page: 1"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel5">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Information"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="1" attributes="0">
+ <Component id="jLabel1" alignment="0" pref="972" max="32767" attributes="0"/>
+ <Component id="jLabelDocumentName" alignment="0" pref="972" max="32767" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Component id="jLabel1" pref="50" max="32767" attributes="0"/>
+ <EmptySpace min="-2" max="-2" attributes="0"/>
+ <Component id="jLabelDocumentName" min="-2" pref="19" max="-2" attributes="0"/>
+ <EmptySpace min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel1">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="&lt;html&gt;Here you see a graphical compare by pictures created with a current running office, a stored reference picture and the difference between those both pictures created by ImageMagicks &apos;composite&apos;.&#xa;&lt;/html&gt;" noResource="true"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabelDocumentName">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="jLabel2"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.java b/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.java
new file mode 100644
index 000000000000..625e7b80c6e0
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.java
@@ -0,0 +1,535 @@
+
+import java.awt.Dimension;
+import java.awt.Image;
+import java.io.File;
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+import javax.swing.SwingWorker;
+
+/*
+**************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**************************************************************************
+ */
+
+/*
+ * Simple windows, which should show differences if there are some
+ */
+
+public class ConvwatchGUI extends javax.swing.JFrame
+{
+ private ImageIcon[] m_aImageIcon;
+ private String m_sInifile;
+ private int m_nMaxPages;
+ private int m_nCurrentPage;
+
+ /** Creates new form ConvwatchGUI
+ * @param args
+ */
+
+ private ConvwatchGUI(String args[])
+ {
+ if (args.length > 0)
+ {
+ if (args[0].endsWith(".ini"))
+ {
+ m_sInifile = args[0];
+ fillImageIconsFromInifile();
+ }
+ else
+ {
+ fillImageIcons(args);
+ }
+ }
+
+ String sVersion = System.getProperty("java.version");
+ Float f = Float.valueOf(sVersion.substring(0,3));
+ if (f.floatValue() < (float)1.6)
+ {
+ System.out.println("You need at least Java version 1.6");
+ System.exit(1);
+ }
+
+ initComponents();
+ jLabelDocumentName.setText("Document: " + m_sInifile);
+ }
+
+ void fillImageIconsFromInifile()
+ {
+ File aFile = new File(m_sInifile);
+ if (!aFile.exists())
+ {
+ GlobalLogWriter.println("Inifile '" + m_sInifile + "' not found.");
+ printUsage();
+ System.exit(1);
+ }
+
+ IniFile aIniFile = new IniFile(aFile);
+ int nPages = aIniFile.getIntValue("global", "pages", 0);
+ if (nPages < 1)
+ {
+ System.out.println("No pages found.");
+ }
+ m_nMaxPages = nPages;
+ m_nCurrentPage = 1;
+ fillImageIcons();
+ }
+
+ private void fillImageIcons()
+ {
+ File aFile = new File(m_sInifile);
+ IniFile aIniFile = new IniFile(aFile);
+ String sSection = "page" + m_nCurrentPage;
+ String[] files = new String[3];
+ files[0] = aIniFile.getValue(sSection, "newgfx"); // current created picture
+ files[1] = aIniFile.getValue(sSection, "oldgfx"); // reference picture
+ files[2] = aIniFile.getValue(sSection, "diffgfx");
+ fillImageIcons(files);
+ }
+
+ /**
+ * Give 3 file names
+ * @param args
+ */
+ private void fillImageIcons(String args[])
+ {
+ boolean bLoadImages = false;
+ m_aImageIcon = new ImageIcon[3];
+ for (int i=0;i<3;i++)
+ {
+ if (args.length > i && args[i] != null)
+ {
+ File aFile = new File(args[i]);
+ if (aFile.exists())
+ {
+ // TODO: Load images
+ // Image aImage = new BufferedImage(100,100, BufferedImage.TYPE_INT_RGB);
+ // aImage.
+ m_aImageIcon[i] = new ImageIcon(args[i]);
+ if (m_aImageIcon[i] != null)
+ {
+ bLoadImages = true;
+ }
+ }
+ else
+ {
+ System.out.println("Can't read file: " + aFile.getName());
+ bLoadImages = false;
+ }
+ }
+ else
+ {
+ System.out.println("There is no #" + (i + 1) + " image given.");
+ bLoadImages = false;
+ }
+ }
+// if (!bLoadImages)
+// {
+// printUsage();
+// System.exit(1);
+// }
+
+
+
+ // TODO: Set images.
+
+ // formComponentResized(null);
+ }
+
+ private void printUsage()
+ {
+ System.out.println("Usage:");
+ System.out.println(" ConvwatchGUI <pic1> <pic2> <pic3>");
+ System.out.println("or ConvwatchGUI <inifile>");
+ }
+
+// private int m_nOldWidth;
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jPanelOriginal = new javax.swing.JPanel();
+ jLabelOriginalImage = new javax.swing.JLabel();
+ jPanelReference = new javax.swing.JPanel();
+ jLabelReferenceImage = new javax.swing.JLabel();
+ jPanelDifference = new javax.swing.JPanel();
+ jLabelDifferenceImage = new javax.swing.JLabel();
+ jPanel4 = new javax.swing.JPanel();
+ jButton1 = new javax.swing.JButton();
+ jButton2 = new javax.swing.JButton();
+ jButton3 = new javax.swing.JButton();
+ jLabelCurrentPage = new javax.swing.JLabel();
+ jPanel5 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ jLabelDocumentName = new javax.swing.JLabel();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+ addComponentListener(new java.awt.event.ComponentAdapter() {
+ public void componentResized(java.awt.event.ComponentEvent evt) {
+ formComponentResized(evt);
+ }
+ });
+ addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+ public void propertyChange(java.beans.PropertyChangeEvent evt) {
+ formPropertyChange(evt);
+ }
+ });
+
+ jPanelOriginal.setBorder(javax.swing.BorderFactory.createTitledBorder("Picture"));
+
+ javax.swing.GroupLayout jPanelOriginalLayout = new javax.swing.GroupLayout(jPanelOriginal);
+ jPanelOriginal.setLayout(jPanelOriginalLayout);
+ jPanelOriginalLayout.setHorizontalGroup(
+ jPanelOriginalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelOriginalLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jLabelOriginalImage, javax.swing.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+ jPanelOriginalLayout.setVerticalGroup(
+ jPanelOriginalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelOriginalLayout.createSequentialGroup()
+ .addComponent(jLabelOriginalImage, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+
+ jPanelReference.setBorder(javax.swing.BorderFactory.createTitledBorder("Reference Picture"));
+
+ javax.swing.GroupLayout jPanelReferenceLayout = new javax.swing.GroupLayout(jPanelReference);
+ jPanelReference.setLayout(jPanelReferenceLayout);
+ jPanelReferenceLayout.setHorizontalGroup(
+ jPanelReferenceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelReferenceLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jLabelReferenceImage, javax.swing.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+ jPanelReferenceLayout.setVerticalGroup(
+ jPanelReferenceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelReferenceLayout.createSequentialGroup()
+ .addComponent(jLabelReferenceImage, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+
+ jPanelDifference.setBorder(javax.swing.BorderFactory.createTitledBorder("Difference"));
+
+ jLabelDifferenceImage.setName("DifferenceImage"); // NOI18N
+
+ javax.swing.GroupLayout jPanelDifferenceLayout = new javax.swing.GroupLayout(jPanelDifference);
+ jPanelDifference.setLayout(jPanelDifferenceLayout);
+ jPanelDifferenceLayout.setHorizontalGroup(
+ jPanelDifferenceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelDifferenceLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jLabelDifferenceImage, javax.swing.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+ jPanelDifferenceLayout.setVerticalGroup(
+ jPanelDifferenceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelDifferenceLayout.createSequentialGroup()
+ .addComponent(jLabelDifferenceImage, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+
+ jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Action"));
+
+ jButton1.setText("Close");
+ jButton1.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton1ActionPerformed(evt);
+ }
+ });
+
+ jButton2.setLabel("prev page");
+ jButton2.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton2ActionPerformed(evt);
+ }
+ });
+
+ jButton3.setLabel("next page");
+ jButton3.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton3ActionPerformed(evt);
+ }
+ });
+
+ jLabelCurrentPage.setText("Current page: 1");
+
+ javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
+ jPanel4.setLayout(jPanel4Layout);
+ jPanel4Layout.setHorizontalGroup(
+ jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jButton2)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jButton3)
+ .addGap(18, 18, 18)
+ .addComponent(jLabelCurrentPage, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 614, Short.MAX_VALUE)
+ .addComponent(jButton1)
+ .addContainerGap())
+ );
+ jPanel4Layout.setVerticalGroup(
+ jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jButton1)
+ .addComponent(jButton2)
+ .addComponent(jButton3)
+ .addComponent(jLabelCurrentPage))
+ .addContainerGap())
+ );
+
+ jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Information"));
+
+ jLabel1.setText("<html>Here you see a graphical compare by pictures created with a current running office, a stored reference picture and the difference between those both pictures created by ImageMagicks 'composite'.\n</html>"); // NOI18N
+
+ jLabelDocumentName.setText("jLabel2");
+
+ javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
+ jPanel5.setLayout(jPanel5Layout);
+ jPanel5Layout.setHorizontalGroup(
+ jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 972, Short.MAX_VALUE)
+ .addComponent(jLabelDocumentName, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 972, Short.MAX_VALUE))
+ .addContainerGap())
+ );
+ jPanel5Layout.setVerticalGroup(
+ jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel5Layout.createSequentialGroup()
+ .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 50, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jLabelDocumentName, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap())
+ );
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jPanel5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jPanel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(jPanelOriginal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jPanelReference, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jPanelDifference, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
+ .addContainerGap())
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jPanelReference, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jPanelOriginal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jPanelDifference, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap())
+ );
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private boolean bAdd = false;
+
+ private void formComponentResized(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentResized
+ {//GEN-HEADEREND:event_formComponentResized
+ // TODO add your handling code here:
+ // we need to set icons to null
+ // if we don't do this, icons can only grow, but not shrink :-(
+
+ initialiseImages();
+ }
+ private void initialiseImages()
+ {
+ if (jLabelOriginalImage.getIcon() != null)
+ {
+ jLabelOriginalImage.setIcon(null);
+ jLabelReferenceImage.setIcon(null);
+ jLabelDifferenceImage.setIcon(null);
+
+ int w = getWidth();
+ int h = getHeight();
+ if (bAdd)
+ {
+ this.setSize(w, h + 1);
+ bAdd = false;
+ }
+ else
+ {
+ this.setSize(w, h - 1);
+ bAdd = true;
+ }
+ }
+ else
+ {
+ new ResizeImage(jLabelOriginalImage, m_aImageIcon[0]).execute();
+ new ResizeImage(jLabelReferenceImage, m_aImageIcon[1]).execute();
+ new ResizeImage(jLabelDifferenceImage, m_aImageIcon[2]).execute();
+ }
+ int dummy=0;
+ }//GEN-LAST:event_formComponentResized
+
+ private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton1ActionPerformed
+ {//GEN-HEADEREND:event_jButton1ActionPerformed
+ // TODO add your handling code here:
+ System.exit(1);
+ }//GEN-LAST:event_jButton1ActionPerformed
+
+ private void formPropertyChange(java.beans.PropertyChangeEvent evt)//GEN-FIRST:event_formPropertyChange
+ {//GEN-HEADEREND:event_formPropertyChange
+ // TODO add your handling code here:
+ int dummy = 0;
+ }//GEN-LAST:event_formPropertyChange
+
+ private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton2ActionPerformed
+ {//GEN-HEADEREND:event_jButton2ActionPerformed
+ // TODO add your handling code here:
+ int nOldPage = m_nCurrentPage;
+ if (m_nCurrentPage > 1)
+ {
+ m_nCurrentPage--;
+ }
+ if (nOldPage != m_nCurrentPage)
+ {
+ jLabelCurrentPage.setText("Current page: " + m_nCurrentPage);
+ fillImageIcons();
+ initialiseImages();
+ }
+ }//GEN-LAST:event_jButton2ActionPerformed
+
+ private void jButton3ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton3ActionPerformed
+ {//GEN-HEADEREND:event_jButton3ActionPerformed
+ // TODO add your handling code here:
+ int nOldPage = m_nCurrentPage;
+ if (m_nCurrentPage < m_nMaxPages)
+ {
+ m_nCurrentPage++;
+ }
+ if (nOldPage != m_nCurrentPage)
+ {
+ jLabelCurrentPage.setText("Current page: " + m_nCurrentPage);
+ fillImageIcons();
+ initialiseImages();
+ }
+ }//GEN-LAST:event_jButton3ActionPerformed
+
+ class ResizeImage extends SwingWorker <ImageIcon, Object>
+ {
+ private JLabel m_jLabel;
+ private ImageIcon m_aImageIcon;
+ private int w;
+ private int h;
+
+ public ResizeImage(JLabel _aLabel, ImageIcon _aImageIcon)
+ {
+ m_jLabel = _aLabel;
+ m_aImageIcon = _aImageIcon;
+ w = _aLabel.getWidth();
+ h = _aLabel.getHeight();
+ }
+
+ // dont access here anything to "Event Swing Thread"
+ @Override
+ public ImageIcon doInBackground()
+ {
+ Image aImage = m_aImageIcon.getImage().getScaledInstance(w, h, Image.SCALE_AREA_AVERAGING); // SCALE_SMOOTH
+ final ImageIcon aIcon = new ImageIcon(aImage);
+ // m_jLabel.setIcon(aIcon);
+ return aIcon;
+ }
+
+ @Override
+ protected void done()
+ {
+ try
+ {
+ m_jLabel.setIcon(get());
+ }
+ catch (Exception e)
+ {}
+ }
+
+ }
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(final String args[])
+ {
+
+ // Start GUI
+
+ java.awt.EventQueue.invokeLater(new Runnable()
+ {
+
+ public void run()
+ {
+ ConvwatchGUI aGUI = new ConvwatchGUI(args);
+ aGUI.setTitle("Graphical Compare");
+ aGUI.setPreferredSize(new Dimension(1024, 768));
+
+ aGUI.setVisible(true);
+ }
+ });
+ }
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton jButton1;
+ private javax.swing.JButton jButton2;
+ private javax.swing.JButton jButton3;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabelCurrentPage;
+ private javax.swing.JLabel jLabelDifferenceImage;
+ private javax.swing.JLabel jLabelDocumentName;
+ private javax.swing.JLabel jLabelOriginalImage;
+ private javax.swing.JLabel jLabelReferenceImage;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel5;
+ private javax.swing.JPanel jPanelDifference;
+ private javax.swing.JPanel jPanelOriginal;
+ private javax.swing.JPanel jPanelReference;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/src/IniFile.java b/testgraphical/ui/java/ConvwatchGUIProject/src/IniFile.java
new file mode 100644
index 000000000000..20cede5b1c33
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/src/IniFile.java
@@ -0,0 +1,718 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+import java.io.File;
+import java.io.RandomAccessFile;
+import java.util.ArrayList;
+import java.util.Enumeration;
+
+
+/**
+ * Simple implementation of a inifile manager
+ */
+class GlobalLogWriter
+{
+ public static void println(String _s)
+ {
+ System.out.println(_s);
+ }
+}
+
+/**
+ Helper class to give a simple API to read/write windows like ini files
+*/
+
+/* public */ // is only need, if we need this class outside package convwatch
+public class IniFile implements Enumeration
+{
+
+ /**
+ * internal representation of the ini file content.
+ * Problem, if ini file changed why other write something difference, we don't realise this.
+ */
+ private String m_sFilename;
+ // private File m_aFile;
+ private ArrayList<String> m_aList;
+ boolean m_bListContainUnsavedChanges = false;
+ private int m_aEnumerationPos = 0;
+
+ /**
+ open a ini file by it's name
+ @param _sFilename string a filename, if the file doesn't exist, a new empty ini file will create.
+ write back to disk only if there are really changes.
+ */
+ public IniFile(String _sFilename)
+ {
+ m_sFilename = _sFilename;
+ // m_aFile = new File(_sFilename);
+ m_aList = loadLines();
+ m_aEnumerationPos = findNextSection(0);
+ }
+
+ /**
+ open a ini file by it's name
+ @param _aFile a java.io.File object, if the file doesn't exist, a new empty ini file will create.
+ write back to disk only if there are really changes.
+ */
+ public IniFile(File _aFile)
+ {
+ m_sFilename = _aFile.getAbsolutePath();
+ m_aList = loadLines();
+ m_aEnumerationPos = findNextSection(0);
+ }
+
+ public void insertFirstComment(String[] _aList)
+ {
+ if (m_aList.size() == 0)
+ {
+ // can only insert if there is nothing else already in the ini file
+ for (int i = 0; i < _aList.length; i++)
+ {
+ m_aList.add(_aList[i]);
+ }
+ }
+ }
+
+ private ArrayList<String> loadLines()
+ {
+ ArrayList<String> aLines = new ArrayList<String>();
+ File aFile = new File(m_sFilename);
+ if (!aFile.exists())
+ {
+ // GlobalLogWriter.println("couldn't find file '" + m_sFilename + "', will be created.");
+ // DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
+ // m_bListContainUnsavedChanges = false;
+ return aLines;
+ }
+ RandomAccessFile aReader = null;
+ // BufferedReader aReader;
+ try
+ {
+ aReader = new RandomAccessFile(aFile, "r");
+ String aLine = "";
+ while (aLine != null)
+ {
+ aLine = aReader.readLine();
+ if (aLine != null && aLine.length() > 0)
+ {
+ aLines.add(aLine);
+ }
+ }
+ }
+ catch (java.io.FileNotFoundException fne)
+ {
+ GlobalLogWriter.println("couldn't open file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + fne.getMessage());
+ // DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
+ }
+ catch (java.io.IOException ie)
+ {
+ GlobalLogWriter.println("Exception occurs while reading from file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
+ // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
+ }
+ try
+ {
+ aReader.close();
+ }
+ catch (java.io.IOException ie)
+ {
+ GlobalLogWriter.println("Couldn't close file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
+ // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
+ }
+ return aLines;
+ }
+
+ /**
+ * @return true, if the ini file contain some readable data
+ */
+ public boolean is()
+ {
+ return m_aList.size() > 1 ? true : false;
+ }
+
+ /**
+ * Check if a given Section and Key exists in the ini file
+ * @param _sSectionName
+ * @param _sKey
+ * @return true if the given Section, Key exists, now you can get the value
+ */
+ public boolean hasValue(String _sSectionName, String _sKey)
+ {
+ int n = findKey(_sSectionName, _sKey);
+ if (n > 0)
+ {
+ return true;
+ }
+ return false;
+ }
+ // -----------------------------------------------------------------------------
+
+ private boolean isRemark(String _sLine)
+ {
+ if (((_sLine.length() < 2)) ||
+ (_sLine.startsWith("#")) ||
+ (_sLine.startsWith(";")))
+ {
+ return true;
+ }
+ return false;
+ }
+
+ private String getItem(int i)
+ {
+ return m_aList.get(i);
+ }
+
+ private String buildSectionName(String _sSectionName)
+ {
+ String sFindSection = "[" + _sSectionName + "]";
+ return sFindSection;
+ }
+
+ private String sectionToString(String _sSectionName)
+ {
+ String sKeyName = _sSectionName;
+ if (sKeyName.startsWith("[") &&
+ sKeyName.endsWith("]"))
+ {
+ sKeyName = sKeyName.substring(1, sKeyName.length() - 1);
+ }
+ return sKeyName;
+ }
+
+ private String toLowerIfNeed(String _sName)
+ {
+ return _sName.toLowerCase();
+ }
+
+ // return the number where this section starts
+ private int findSection(String _sSection)
+ {
+ String sFindSection = toLowerIfNeed(buildSectionName(_sSection));
+ // ----------- find _sSection ---------------
+ int i;
+ for (i = 0; i < m_aList.size(); i++)
+ {
+ String sLine = toLowerIfNeed(getItem(i).trim());
+ if (isRemark(sLine))
+ {
+ continue;
+ }
+ if (sFindSection.equals("[]"))
+ {
+ // special case, empty Section.
+ return i - 1;
+ }
+ if (sLine.startsWith(sFindSection))
+ {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * Checks if a given section exists in the ini file
+ * @param _sSection
+ * @return true if the given _sSection was found
+ */
+ public boolean hasSection(String _sSection)
+ {
+ int i = findSection(_sSection);
+ if (i == -1)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ // return the line number, where the key is found.
+ private int findKey(String _sSection, String _sKey)
+ {
+ int i = findSection(_sSection);
+ if (i == -1)
+ {
+ // Section not found, therefore the value can't exist
+ return -1;
+ }
+ return findKeyFromKnownSection(i, _sKey);
+ }
+
+ // i must be the index in the list, where the well known section starts
+ private int findKeyFromKnownSection(int _nSectionIndex, String _sKey)
+ {
+ _sKey = toLowerIfNeed(_sKey);
+ for (int j = _nSectionIndex + 1; j < m_aList.size(); j++)
+ {
+ String sLine = getItem(j).trim();
+
+ if (isRemark(sLine))
+ {
+ continue;
+ }
+ if (sLine.startsWith("[") /* && sLine.endsWith("]") */)
+ {
+ // TODO: due to the fact we would like to insert an empty line before new sections
+ // TODO: we should check if we are in an empty line and if, go back one line.
+
+ // found end.
+ break;
+ }
+
+ int nEqual = sLine.indexOf("=");
+ if (nEqual >= 0)
+ {
+ String sKey = toLowerIfNeed(sLine.substring(0, nEqual).trim());
+ if (sKey.equals(_sKey))
+ {
+ return j;
+ }
+ }
+ }
+ return -1;
+ }
+
+ // i must be the index in the list, where the well known section starts
+ private int findLastKnownKeyIndex(int _nSectionIndex, String _sKey)
+ {
+ _sKey = toLowerIfNeed(_sKey);
+ int i = _nSectionIndex + 1;
+ for (int j = i; j < m_aList.size(); j++)
+ {
+ String sLine = getItem(j).trim();
+
+ if (isRemark(sLine))
+ {
+ continue;
+ }
+
+ if (sLine.startsWith("[") /* && sLine.endsWith("]") */)
+ {
+ // found end.
+ return j;
+ }
+
+ int nEqual = sLine.indexOf("=");
+ if (nEqual >= 0)
+ {
+ String sKey = toLowerIfNeed(sLine.substring(0, nEqual).trim());
+ if (sKey.equals(_sKey))
+ {
+ return j;
+ }
+ }
+ }
+ return i;
+ }
+
+ private String getValue(int _nIndex)
+ {
+ String sLine = getItem(_nIndex).trim();
+ if (isRemark(sLine))
+ {
+ return "";
+ }
+ int nEqual = sLine.indexOf("=");
+ if (nEqual >= 0)
+ {
+ String sKey = sLine.substring(0, nEqual).trim();
+ String sValue = sLine.substring(nEqual + 1).trim();
+ return sValue;
+ }
+ return "";
+ }
+
+ /**
+ @param _sSection string
+ @param _sKey string
+ @return the value found in the inifile which is given by the section and key parameter
+ */
+ // private int m_nCurrentPosition;
+ // private String m_sOldKey;
+ public String getValue(String _sSection, String _sKey)
+ {
+ String sValue = "";
+ int m_nCurrentPosition = findKey(_sSection, _sKey);
+ if (m_nCurrentPosition == -1)
+ {
+ // Section not found, therefore the value can't exist
+ return "";
+ }
+
+ // m_sOldKey = _sKey;
+ sValue = getValue(m_nCurrentPosition);
+
+ return sValue;
+ }
+
+// private String getNextValue()
+// {
+// if (m_nCurrentPosition >= 0)
+// {
+// ++m_nCurrentPosition;
+// String sValue = getValue(m_nCurrentPosition);
+// return sValue;
+// }
+// return "";
+// }
+ /**
+ * Returns the value at Section, Key converted to an integer
+ * Check with hasValue(Section, Key) to check before you get into trouble.
+ * @param _sSection
+ * @param _sKey
+ * @param _nDefault if there is a problem, key not found... this value will return
+ * @return the value as integer if possible to convert, if not return default value.
+ */
+ public int getIntValue(String _sSection, String _sKey, int _nDefault)
+ {
+ String sValue = getValue(_sSection, _sKey);
+ int nValue = _nDefault;
+ if (sValue.length() > 0)
+ {
+ try
+ {
+ nValue = Integer.valueOf(sValue).intValue();
+ }
+ catch (java.lang.NumberFormatException e)
+ {
+ GlobalLogWriter.println("IniFile.getIntValue(): Caught a number format exception, return the default value.");
+ }
+ }
+ return nValue;
+ }
+
+/**
+ * close a open inifile.
+ * If there are changes, all changes will store back to disk.
+ */
+ public void close()
+ {
+ store();
+ }
+
+ /**
+ write back the ini file to the disk, only if there exist changes
+ * @deprecated use close() instead!
+ */
+
+ // TODO: make private
+ private void store()
+ {
+ if (m_bListContainUnsavedChanges == false)
+ {
+ // nothing has changed, so no need to store
+ return;
+ }
+
+ File aFile = new File(m_sFilename);
+ if (aFile.exists())
+ {
+ // System.out.println("couldn't find file " + m_sFilename);
+ // TODO: little bit unsafe here, first rename, after write is complete, delete the old.
+ aFile.delete();
+ if (aFile.exists())
+ {
+ GlobalLogWriter.println("Couldn't delete the file " + m_sFilename);
+ return;
+ // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, "Couldn't delete the file " + m_sFilename);
+ }
+ }
+ // if (! aFile.canWrite())
+ // {
+ // System.out.println("Couldn't write to file " + m_sFilename);
+ // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, "");
+ // }
+ try
+ {
+ RandomAccessFile aWriter = new RandomAccessFile(aFile, "rw");
+ for (int i = 0; i < m_aList.size(); i++)
+ {
+ String sLine = getItem(i);
+ if (sLine.startsWith("["))
+ {
+ // write an extra empty line before next section.
+ aWriter.writeByte((int) '\n');
+ }
+ aWriter.writeBytes(sLine);
+ aWriter.writeByte((int) '\n');
+ }
+ aWriter.close();
+ }
+ catch (java.io.FileNotFoundException fne)
+ {
+ GlobalLogWriter.println("couldn't open file for writing " + m_sFilename);
+ GlobalLogWriter.println("Message: " + fne.getMessage());
+ // DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
+ }
+ catch (java.io.IOException ie)
+ {
+ GlobalLogWriter.println("Exception occurs while writing to file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
+ // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
+ }
+ }
+
+ public void insertValue(String _sSection, String _sKey, int _nValue)
+ {
+ insertValue(_sSection, _sKey, String.valueOf(_nValue));
+ }
+
+ public void insertValue(String _sSection, String _sKey, long _nValue)
+ {
+ insertValue(_sSection, _sKey, String.valueOf(_nValue));
+ }
+
+ /**
+ insert a value
+ there are 3 cases
+ 1. section doesn't exist, goto end and insert a new section, insert a new key value pair
+ 2. section exist but key not, search section, search key, if key is -1 get last known key position and insert new key value pair there
+ 3. section exist and key exist, remove the old key and insert the key value pair at the same position
+ * @param _sSection
+ * @param _sKey
+ * @param _sValue
+ */
+ public void insertValue(String _sSection, String _sKey, String _sValue)
+ {
+ int i = findSection(_sSection);
+ if (i == -1)
+ {
+ // case 1: section doesn't exist
+ String sFindSection = buildSectionName(_sSection);
+
+ // TODO: before create a new Section, insert a empty line
+ m_aList.add(sFindSection);
+ if (_sKey.length() > 0)
+ {
+ String sKeyValuePair = _sKey + "=" + _sValue;
+ m_aList.add(sKeyValuePair);
+ }
+ m_bListContainUnsavedChanges = true;
+ return;
+ }
+ int j = findKeyFromKnownSection(i, _sKey);
+ if (j == -1)
+ {
+ // case 2: section exist, but not the key
+ j = findLastKnownKeyIndex(i, _sKey);
+ if (_sKey.length() > 0)
+ {
+ String sKeyValuePair = _sKey + "=" + _sValue;
+ m_aList.add(j, sKeyValuePair);
+ m_bListContainUnsavedChanges = true;
+ }
+ return;
+ }
+ else
+ {
+ // case 3: section exist, and also the key
+ String sKeyValuePair = _sKey + "=" + _sValue;
+ m_aList.set(j, sKeyValuePair);
+ m_bListContainUnsavedChanges = true;
+ }
+ }
+ // -----------------------------------------------------------------------------
+ // String replaceEvaluatedValue(String _sSection, String _sValue)
+ // {
+ // String sValue = _sValue;
+ // int nIndex = 0;
+ // while (( nIndex = sValue.indexOf("$(", nIndex)) >= 0)
+ // {
+ // int nNextIndex = sValue.indexOf(")", nIndex);
+ // if (nNextIndex >= 0)
+ // {
+ // String sKey = sValue.substring(nIndex + 2, nNextIndex);
+ // String sNewValue = getValue(_sSection, sKey);
+ // if (sNewValue != null && sNewValue.length() > 0)
+ // {
+ // String sRegexpKey = "\\$\\(" + sKey + "\\)";
+ // sValue = sValue.replaceAll(sRegexpKey, sNewValue);
+ // }
+ // nIndex = nNextIndex;
+ // }
+ // else
+ // {
+ // nIndex += 2;
+ // }
+ // }
+ // return sValue;
+ // }
+ // -----------------------------------------------------------------------------
+
+ // public String getLocalEvaluatedValue(String _sSection, String _sKey)
+ // {
+ // String sValue = getValue(_sSection, _sKey);
+ // sValue = replaceEvaluatedValue(_sSection, sValue);
+ // return sValue;
+ // }
+
+ // -----------------------------------------------------------------------------
+
+ // this is a special behaviour.
+ // public String getGlobalLocalEvaluatedValue(String _sSection, String _sKey)
+ // {
+ // String sGlobalValue = getKey("global", _sKey);
+ // String sLocalValue = getKey(_sSection, _sKey);
+ // if (sLocalValue.length() == 0)
+ // {
+ // sGlobalValue = replaceEvaluatedKey(_sSection, sGlobalValue);
+ // sGlobalValue = replaceEvaluatedKey("global", sGlobalValue);
+ // return sGlobalValue;
+ // }
+ // sLocalValue = replaceEvaluatedKey(_sSection, sLocalValue);
+ // sLocalValue = replaceEvaluatedKey("global", sLocalValue);
+ //
+ // return sLocalValue;
+ // }
+ public void removeSection(String _sSectionToRemove)
+ {
+ // first, search for the name
+ int i = findSection(_sSectionToRemove);
+ if (i == -1)
+ {
+ // Section to remove not found, do nothing.
+ return;
+ }
+ // second, find the next section
+ int j = findNextSection(i + 1);
+ if (j == -1)
+ {
+ // if we are at the end, use size() as second section
+ j = m_aList.size();
+ }
+ // remove all between first and second section
+ for (int k = i; k < j; k++)
+ {
+ m_aList.remove(i);
+ }
+ // mark the list as changed
+ m_bListContainUnsavedChanges = true;
+ }
+
+ /**
+ * some tests for this class
+ */
+// public static void main(String[] args)
+// {
+// String sTempFile = System.getProperty("java.io.tmpdir");
+// sTempFile += "inifile";
+//
+//
+// IniFile aIniFile = new IniFile(sTempFile);
+// String sValue = aIniFile.getValue("Section", "Key");
+// // insert a new value to a already exist section
+// aIniFile.insertValue("Section", "Key2", "a new value in a existing section");
+// // replace a value
+// aIniFile.insertValue("Section", "Key", "replaced value");
+// // create a new value
+// aIniFile.insertValue("New Section", "Key", "a new key value pair");
+// aIniFile.insertValue("New Section", "Key2", "a new second key value pair");
+//
+// String sValue2 = aIniFile.getValue("Section2", "Key");
+//
+// aIniFile.removeSection("Section");
+// aIniFile.removeSection("New Section");
+//
+// aIniFile.close();
+// }
+
+ /**
+ * Enumeration Interface
+ * @return true, if there are more Key values
+ */
+ public boolean hasMoreElements()
+ {
+ if (m_aEnumerationPos >= 0 &&
+ m_aEnumerationPos < m_aList.size())
+ {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Find the next line, which starts with '['
+ * @param i start position
+ * @return the line where '[' found or -1
+ */
+ private int findNextSection(int i)
+ {
+ if (i >= 0)
+ {
+ while (i < m_aList.size())
+ {
+ String sLine = m_aList.get(i);
+ if (sLine.startsWith("["))
+ {
+ return i;
+ }
+ i++;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * Enumeration Interface
+ * @return a key without the enveloped '[' ']'
+ */
+ public Object nextElement()
+ {
+ int nLineWithSection = findNextSection(m_aEnumerationPos);
+ if (nLineWithSection != -1)
+ {
+ String sSection = m_aList.get(nLineWithSection);
+ m_aEnumerationPos = findNextSection(nLineWithSection + 1);
+ sSection = sectionToString(sSection);
+ return sSection;
+ }
+ else
+ {
+ m_aEnumerationPos = m_aList.size();
+ }
+ return null;
+ }
+
+ /**
+ * Helper to count the occurence of Sections
+ * @return returns the count of '^['.*']$' Elements
+ */
+ public int getElementCount()
+ {
+ int nCount = 0;
+ int nPosition = 0;
+ while ((nPosition = findNextSection(nPosition)) != -1)
+ {
+ nCount++;
+ nPosition++;
+ }
+ return nCount;
+ }
+}
+
diff --git a/cppu/test/EnvStack/makefile.mk b/testgraphical/ui/java/makefile.mk
index 6e6990b97716..134787a17a08 100644
--- a/cppu/test/EnvStack/makefile.mk
+++ b/testgraphical/ui/java/makefile.mk
@@ -25,23 +25,29 @@
#
#*************************************************************************
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := EnvStack.test.pl
+PRJ=..$/..
+PRJNAME=gfxcmp_ui_java
+TARGET=notargetyet
-ENABLE_EXCEPTIONS := TRUE
-NO_BSYMBOLIC := TRUE
-USE_DEFFILE := TRUE
-
+# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
+# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+.IF "$(SHOW)" == ""
+nothing .PHONY:
+
+.ELSE
+
+# PERLDEBUG=-d:ptkdb
+ALLTAR:
+ $(COPY) ConvwatchGUIProject$/dist/ConvwatchGUIProject.jar $(CLASSDIR)
+
+.END
-ALLTAR: $(BIN)$/$(TARGET)
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
-$(BIN)$/$(TARGET): EnvStack.test.pl
- @+$(COPY) $^ $@
diff --git a/cppu/test/UnsafeBridge/makefile.mk b/testgraphical/util/makefile.pmk
index 33a1c5c32299..98b94dca0779 100644
--- a/cppu/test/UnsafeBridge/makefile.mk
+++ b/testgraphical/util/makefile.pmk
@@ -25,18 +25,10 @@
#
#*************************************************************************
-PRJ := ..$/..
-PRJNAME := cppu
-TARGET := UnsafeBridge.test.pl
+# this file will include by other makefiles only
+demo: ALLTAR
+selftest: ALLTAR
+failtest: ALLTAR
-.INCLUDE : settings.mk
-
-
-.INCLUDE : target.mk
-
-
-ALLTAR: $(BIN)$/$(TARGET)
-
-$(BIN)$/$(TARGET): UnsafeBridge.test.pl
- @+$(COPY) $^ $@
+clean: clean_all
diff --git a/toolkit/qa/unoapi/knownissues.xcl b/toolkit/qa/unoapi/knownissues.xcl
index 6f57f37536a2..429d7693c833 100644
--- a/toolkit/qa/unoapi/knownissues.xcl
+++ b/toolkit/qa/unoapi/knownissues.xcl
@@ -240,3 +240,13 @@ toolkit.AccessibleTabPage::com::sun::star::accessibility::XAccessibleText
toolkit.AccessibleMenu::com::sun::star::accessibility::XAccessibleValue
toolkit.AccessibleMenuBar::com::sun::star::accessibility::XAccessibleEventBroadcaster
toolkit.AccessibleMenuBar::com::sun::star::accessibility::XAccessibleSelection
+
+### i111076 ###
+toolkit.Toolkit::com::sun::star::awt::XDataTransferProviderAccess
+
+### i111113 ###
+toolkit.AccessibleStatusBarItem::com::sun::star::accessibility::XAccessibleComponent
+toolkit.AccessibleStatusBarItem::com::sun::star::accessibility::XAccessibleContext
+
+### i111195 ###
+toolkit.AccessibleScrollBar::com::sun::star::accessibility::XAccessibleValue
diff --git a/toolkit/qa/unoapi/toolkit.sce b/toolkit/qa/unoapi/toolkit.sce
index 1c8ad0c95181..5a148feee573 100644
--- a/toolkit/qa/unoapi/toolkit.sce
+++ b/toolkit/qa/unoapi/toolkit.sce
@@ -8,14 +8,14 @@
#i86110 -o toolkit.AccessibleList
#i86110 -o toolkit.AccessibleListBox
#i86110 -o toolkit.AccessibleListItem
--o toolkit.AccessibleMenu
--o toolkit.AccessibleMenuBar
+#i111047# -o toolkit.AccessibleMenu
+#i111047# -o toolkit.AccessibleMenuBar
#i86009 -o toolkit.AccessibleMenuItem
--o toolkit.AccessibleMenuSeparator
+#i111047# -o toolkit.AccessibleMenuSeparator
#i52607 -o toolkit.AccessiblePopupMenu
#i86107,i86110 -o toolkit.AccessibleRadioButton
-o toolkit.AccessibleScrollBar
--o toolkit.AccessibleStatusBar
+#i111225 -o toolkit.AccessibleStatusBar
-o toolkit.AccessibleStatusBarItem
#i109643 -o toolkit.AccessibleTabControl
#i109643 -o toolkit.AccessibleTabPage
diff --git a/ucb/source/ucp/webdav/DAVAuthListener.hxx b/ucb/source/ucp/webdav/DAVAuthListener.hxx
index c092f9fd311f..71bed1c0a14d 100644
--- a/ucb/source/ucp/webdav/DAVAuthListener.hxx
+++ b/ucb/source/ucp/webdav/DAVAuthListener.hxx
@@ -30,9 +30,7 @@
#include <salhelper/simplereferenceobject.hxx>
#include <rtl/ustring.hxx>
-#ifndef _COM_SUN_STAR_UCB_XREFERENCE_HPP_
#include <com/sun/star/uno/XReference.hpp>
-#endif
#include <com/sun/star/ucb/XCommandEnvironment.hpp>
namespace webdav_ucp
@@ -46,7 +44,6 @@ class DAVAuthListener : public salhelper::SimpleReferenceObject
const ::rtl::OUString & inHostName,
::rtl::OUString & inoutUserName,
::rtl::OUString & outPassWord,
- sal_Bool bAllowPersistentStoring,
sal_Bool bCanUseSystemCredentials ) = 0;
};
diff --git a/ucb/source/ucp/webdav/DAVAuthListenerImpl.hxx b/ucb/source/ucp/webdav/DAVAuthListenerImpl.hxx
index 3d03cc63952b..c0c9968613af 100644
--- a/ucb/source/ucp/webdav/DAVAuthListenerImpl.hxx
+++ b/ucb/source/ucp/webdav/DAVAuthListenerImpl.hxx
@@ -61,7 +61,6 @@ namespace webdav_ucp
const ::rtl::OUString & inHostName,
::rtl::OUString & inoutUserName,
::rtl::OUString & outPassWord,
- sal_Bool bAllowPersistentStoring,
sal_Bool bCanUseSystemCredentials );
private:
diff --git a/ucb/source/ucp/webdav/DAVResourceAccess.cxx b/ucb/source/ucp/webdav/DAVResourceAccess.cxx
index 4ffc8dd88cf5..872d45405735 100644
--- a/ucb/source/ucp/webdav/DAVResourceAccess.cxx
+++ b/ucb/source/ucp/webdav/DAVResourceAccess.cxx
@@ -57,7 +57,6 @@ int DAVAuthListener_Impl::authenticate(
const ::rtl::OUString & inHostName,
::rtl::OUString & inoutUserName,
::rtl::OUString & outPassWord,
- sal_Bool bAllowPersistentStoring,
sal_Bool bCanUseSystemCredentials )
{
if ( m_xEnv.is() )
@@ -79,7 +78,8 @@ int DAVAuthListener_Impl::authenticate(
= new ucbhelper::SimpleAuthenticationRequest(
m_aURL, inHostName, inRealm, inoutUserName,
outPassWord, ::rtl::OUString(),
- bAllowPersistentStoring, bCanUseSystemCredentials );
+ true /*bAllowPersistentStoring*/,
+ bCanUseSystemCredentials );
xIH->handle( xRequest.get() );
rtl::Reference< ucbhelper::InteractionContinuation > xSelection
diff --git a/ucb/source/ucp/webdav/NeonSession.cxx b/ucb/source/ucp/webdav/NeonSession.cxx
index 8fc1730ba018..254fae546940 100644
--- a/ucb/source/ucp/webdav/NeonSession.cxx
+++ b/ucb/source/ucp/webdav/NeonSession.cxx
@@ -60,7 +60,6 @@
#include <com/sun/star/security/CertificateContainerStatus.hpp>
#include <com/sun/star/security/CertificateContainer.hpp>
#include <com/sun/star/security/XCertificateContainer.hpp>
-#include <com/sun/star/task/XMasterPasswordHandling.hpp>
#include <com/sun/star/ucb/Lock.hpp>
#include <com/sun/star/xml/crypto/XSEInitializer.hpp>
@@ -330,31 +329,11 @@ extern "C" int NeonSession_NeonAuth( void * inUserData,
( ne_strcasecmp( inAuthProtocol, "Negotiate" ) == 0 ) );
#endif
- // #i97003# (tkr): Ask XMasterPasswordHandling if we should store the
- // credentials persistently and give this information to the auth listener
- uno::Reference< task::XMasterPasswordHandling > xMasterPasswordHandling;
- try
- {
- xMasterPasswordHandling =
- uno::Reference< task::XMasterPasswordHandling >(
- theSession->getMSF()->createInstance(
- rtl::OUString::createFromAscii(
- "com.sun.star.task.PasswordContainer" ) ),
- uno::UNO_QUERY );
- }
- catch ( uno::Exception const & )
- {
- }
-
int theRetVal = pListener->authenticate(
rtl::OUString::createFromAscii( inRealm ),
theSession->getHostName(),
theUserName,
thePassWord,
- xMasterPasswordHandling.is()
- ? xMasterPasswordHandling->
- isPersistentStoringAllowed()
- : sal_False,
bCanUseSystemCreds);
rtl::OString aUser(
diff --git a/ucbhelper/source/provider/simpleauthenticationrequest.cxx b/ucbhelper/source/provider/simpleauthenticationrequest.cxx
index f292fdf5fc06..8fc0cd4aec4f 100644
--- a/ucbhelper/source/provider/simpleauthenticationrequest.cxx
+++ b/ucbhelper/source/provider/simpleauthenticationrequest.cxx
@@ -67,7 +67,7 @@ SimpleAuthenticationRequest::SimpleAuthenticationRequest(
sal_True,
sal_True,
aRequest.HasAccount,
- sal_False,
+ sal_True,
sal_False );
}
//=========================================================================
@@ -149,7 +149,7 @@ SimpleAuthenticationRequest::SimpleAuthenticationRequest(
eUserNameType == ENTITY_MODIFY,
ePasswordType == ENTITY_MODIFY,
eAccountType == ENTITY_MODIFY,
- sal_False,
+ sal_True,
sal_False );
}
@@ -211,11 +211,12 @@ void SimpleAuthenticationRequest::initialize(
setRequest( uno::makeAny( rRequest ) );
// Fill continuations...
- uno::Sequence< ucb::RememberAuthentication > aRememberModes( bAllowPersistentStoring ? 3 : 2 );
+ uno::Sequence< ucb::RememberAuthentication > aRememberModes(
+ bAllowPersistentStoring ? 3 : 2 );
aRememberModes[ 0 ] = ucb::RememberAuthentication_NO;
aRememberModes[ 1 ] = ucb::RememberAuthentication_SESSION;
if (bAllowPersistentStoring)
- aRememberModes[ 1 ] = ucb::RememberAuthentication_PERSISTENT;
+ aRememberModes[ 2 ] = ucb::RememberAuthentication_PERSISTENT;
m_xAuthSupplier
= new InteractionSupplyAuthentication(
diff --git a/ure/source/README b/ure/source/README
index d2b4024e1e15..6e5162d8f058 100644
--- a/ure/source/README
+++ b/ure/source/README
@@ -141,6 +141,7 @@ Program Files\URE\bin\unsafe_uno_uno.dll [private]
Program Files\URE\bin\affine_uno_uno.dll [private]
Program Files\URE\bin\log_uno_uno.dll [private]
Program Files\URE\bin\jpipe.dll [private]
+Program Files\URE\bin\jpipx.dll [private]
Program Files\URE\bin\juh.dll [private]
Program Files\URE\bin\juhx.dll [private]
Program Files\URE\bin\acceptor.uno.dll [private]
diff --git a/uui/source/iahndl-authentication.cxx b/uui/source/iahndl-authentication.cxx
index f31397f1ef92..4183b852735e 100644
--- a/uui/source/iahndl-authentication.cxx
+++ b/uui/source/iahndl-authentication.cxx
@@ -67,10 +67,9 @@ executeLoginDialog(
{
vos::OGuard aGuard(Application::GetSolarMutex());
- bool bAccount = (rInfo.GetFlags() & LOGINERROR_FLAG_MODIFY_ACCOUNT)
- != 0;
- bool bSavePassword = rInfo.GetIsPersistentPassword()
- || rInfo.GetIsSavePassword();
+ bool bAccount
+ = (rInfo.GetFlags() & LOGINERROR_FLAG_MODIFY_ACCOUNT) != 0;
+ bool bSavePassword = rInfo.GetCanRememberPassword();
bool bCanUseSysCreds = rInfo.GetCanUseSystemCredentials();
sal_uInt16 nFlags = 0;
@@ -109,12 +108,13 @@ executeLoginDialog(
if (bSavePassword)
{
- xDialog->
- SetSavePasswordText(ResId(rInfo.GetIsPersistentPassword() ?
- RID_SAVE_PASSWORD :
- RID_KEEP_PASSWORD,
- *xManager.get()));
- xDialog->SetSavePassword(rInfo.GetIsSavePassword());
+ xDialog->SetSavePasswordText(
+ ResId(rInfo.GetIsRememberPersistent()
+ ? RID_SAVE_PASSWORD
+ : RID_KEEP_PASSWORD,
+ *xManager.get()));
+
+ xDialog->SetSavePassword(rInfo.GetIsRememberPassword());
}
if ( bCanUseSysCreds )
@@ -126,7 +126,7 @@ executeLoginDialog(
rInfo.SetUserName(xDialog->GetName());
rInfo.SetPassword(xDialog->GetPassword());
rInfo.SetAccount(xDialog->GetAccount());
- rInfo.SetSavePassword(xDialog->IsSavePassword());
+ rInfo.SetIsRememberPassword(xDialog->IsSavePassword());
if ( bCanUseSysCreds )
rInfo.SetIsUseSystemCredentials( xDialog->IsUseSystemCredentials() );
@@ -139,6 +139,60 @@ executeLoginDialog(
}
}
+void getRememberModes(
+ uno::Sequence< ucb::RememberAuthentication > const & rRememberModes,
+ ucb::RememberAuthentication & rPreferredMode,
+ ucb::RememberAuthentication & rAlternateMode )
+{
+ sal_Int32 nCount = rRememberModes.getLength();
+ OSL_ENSURE( (nCount > 0) && (nCount < 4),
+ "ucb::RememberAuthentication sequence size mismatch!" );
+ if ( nCount == 1 )
+ {
+ rPreferredMode = rAlternateMode = rRememberModes[ 0 ];
+ return;
+ }
+ else
+ {
+ //bool bHasRememberModeNo = false;
+ bool bHasRememberModeSession = false;
+ bool bHasRememberModePersistent = false;
+
+ for (sal_Int32 i = 0; i < nCount; ++i)
+ {
+ switch ( rRememberModes[i] )
+ {
+ case ucb::RememberAuthentication_NO:
+ //bHasRememberModeNo = true;
+ break;
+ case ucb::RememberAuthentication_SESSION:
+ bHasRememberModeSession = true;
+ break;
+ case ucb::RememberAuthentication_PERSISTENT:
+ bHasRememberModePersistent = true;
+ break;
+ default:
+ OSL_TRACE( "Unsupported RememberAuthentication value" );
+ break;
+ }
+ }
+
+ if (bHasRememberModePersistent)
+ {
+ rPreferredMode = ucb::RememberAuthentication_PERSISTENT;
+ if (bHasRememberModeSession)
+ rAlternateMode = ucb::RememberAuthentication_SESSION;
+ else
+ rAlternateMode = ucb::RememberAuthentication_NO;
+ }
+ else
+ {
+ rPreferredMode = ucb::RememberAuthentication_SESSION;
+ rAlternateMode = ucb::RememberAuthentication_NO;
+ }
+ }
+}
+
void
handleAuthenticationRequest_(
Window * pParent,
@@ -161,7 +215,7 @@ handleAuthenticationRequest_(
xSupplyAuthentication2.set(xSupplyAuthentication, uno::UNO_QUERY);
//////////////////////////
- // First, try to obatin credentials from password container service.
+ // First, try to obtain credentials from password container service.
uui::PasswordContainerHelper aPwContainerHelper(xServiceFactory);
if (aPwContainerHelper.handleAuthenticationRequest(rRequest,
xSupplyAuthentication,
@@ -174,26 +228,20 @@ handleAuthenticationRequest_(
//////////////////////////
// Second, try to obtain credentials from user via password dialog.
- bool bRemember;
- bool bRememberPersistent;
+ ucb::RememberAuthentication eDefaultRememberMode
+ = ucb::RememberAuthentication_SESSION;
+ ucb::RememberAuthentication ePreferredRememberMode
+ = eDefaultRememberMode;
+ ucb::RememberAuthentication eAlternateRememberMode
+ = ucb::RememberAuthentication_NO;
+
if (xSupplyAuthentication.is())
{
- ucb::RememberAuthentication eDefault;
- uno::Sequence< ucb::RememberAuthentication >
- aModes(xSupplyAuthentication->getRememberPasswordModes(eDefault));
- bRemember = eDefault != ucb::RememberAuthentication_NO;
- bRememberPersistent = false;
- for (sal_Int32 i = 0; i < aModes.getLength(); ++i)
- if (aModes[i] == ucb::RememberAuthentication_PERSISTENT)
- {
- bRememberPersistent = true;
- break;
- }
- }
- else
- {
- bRemember = false;
- bRememberPersistent = false;
+ getRememberModes(
+ xSupplyAuthentication->getRememberPasswordModes(
+ eDefaultRememberMode),
+ ePreferredRememberMode,
+ eAlternateRememberMode);
}
sal_Bool bCanUseSystemCredentials;
@@ -220,8 +268,14 @@ handleAuthenticationRequest_(
if (rRequest.HasPassword)
aInfo.SetPassword(rRequest.Password);
aInfo.SetErrorText(rRequest.Diagnostic);
- aInfo.SetPersistentPassword(bRememberPersistent);
- aInfo.SetSavePassword(bRemember);
+
+ aInfo.SetCanRememberPassword(
+ ePreferredRememberMode != eAlternateRememberMode);
+ aInfo.SetIsRememberPassword(
+ eDefaultRememberMode != ucb::RememberAuthentication_NO);
+ aInfo.SetIsRememberPersistent(
+ ePreferredRememberMode == ucb::RememberAuthentication_PERSISTENT);
+
aInfo.SetCanUseSystemCredentials(bCanUseSystemCredentials);
aInfo.SetIsUseSystemCredentials( bDefaultUseSystemCredentials );
aInfo.SetModifyAccount(rRequest.HasAccount
@@ -242,13 +296,24 @@ handleAuthenticationRequest_(
xSupplyAuthentication->setUserName(aInfo.GetUserName());
if (xSupplyAuthentication->canSetPassword())
xSupplyAuthentication->setPassword(aInfo.GetPassword());
- xSupplyAuthentication->
- setRememberPassword(
- aInfo.GetIsSavePassword() ?
- bRememberPersistent ?
- ucb::RememberAuthentication_PERSISTENT :
- ucb::RememberAuthentication_SESSION :
- ucb::RememberAuthentication_NO);
+
+ if (ePreferredRememberMode != eAlternateRememberMode)
+ {
+ // user had te choice.
+ if (aInfo.GetIsRememberPassword())
+ xSupplyAuthentication->setRememberPassword(
+ ePreferredRememberMode);
+ else
+ xSupplyAuthentication->setRememberPassword(
+ eAlternateRememberMode);
+ }
+ else
+ {
+ // user had no choice.
+ xSupplyAuthentication->setRememberPassword(
+ ePreferredRememberMode);
+ }
+
if (rRequest.HasRealm)
{
if (xSupplyAuthentication->canSetRealm())
@@ -267,38 +332,76 @@ handleAuthenticationRequest_(
//////////////////////////
// Third, store credentials in password container.
- if ( aInfo.GetIsUseSystemCredentials() )
- {
- if (aInfo.GetIsSavePassword())
- {
- aPwContainerHelper.addRecord(
- rURL.getLength() ? rURL : rRequest.ServerName,
- rtl::OUString(), // empty u/p -> sys creds
- uno::Sequence< rtl::OUString >(),
- xIH,
- bRememberPersistent);
- }
- }
- // Empty user name can not be valid:
- else if (aInfo.GetUserName().Len() != 0)
- {
- if (aInfo.GetIsSavePassword())
- {
- uno::Sequence< rtl::OUString >
- aPassList(aInfo.GetAccount().Len() == 0 ? 1 : 2);
- aPassList[0] = aInfo.GetPassword();
- if (aInfo.GetAccount().Len() != 0)
- aPassList[1] = aInfo.GetAccount();
-
- aPwContainerHelper.addRecord(
- rURL.getLength() ? rURL : rRequest.ServerName,
- aInfo.GetUserName(),
- aPassList,
- xIH,
- bRememberPersistent);
- }
- }
- break;
+ if ( aInfo.GetIsUseSystemCredentials() )
+ {
+ if (aInfo.GetIsRememberPassword())
+ {
+ if (!aPwContainerHelper.addRecord(
+ rURL.getLength() ? rURL : rRequest.ServerName,
+ rtl::OUString(), // empty u/p -> sys creds
+ uno::Sequence< rtl::OUString >(),
+ xIH,
+ ePreferredRememberMode
+ == ucb::RememberAuthentication_PERSISTENT))
+ {
+ xSupplyAuthentication->setRememberPassword(
+ ucb::RememberAuthentication_NO);
+ }
+ }
+ else if (eAlternateRememberMode
+ == ucb::RememberAuthentication_SESSION)
+ {
+ if (!aPwContainerHelper.addRecord(
+ rURL.getLength() ? rURL : rRequest.ServerName,
+ rtl::OUString(), // empty u/p -> sys creds
+ uno::Sequence< rtl::OUString >(),
+ xIH,
+ false /* SESSION */))
+ {
+ xSupplyAuthentication->setRememberPassword(
+ ucb::RememberAuthentication_NO);
+ }
+ }
+ }
+ // Empty user name can not be valid:
+ else if (aInfo.GetUserName().Len() != 0)
+ {
+ uno::Sequence< rtl::OUString >
+ aPassList(aInfo.GetAccount().Len() == 0 ? 1 : 2);
+ aPassList[0] = aInfo.GetPassword();
+ if (aInfo.GetAccount().Len() != 0)
+ aPassList[1] = aInfo.GetAccount();
+
+ if (aInfo.GetIsRememberPassword())
+ {
+ if (!aPwContainerHelper.addRecord(
+ rURL.getLength() ? rURL : rRequest.ServerName,
+ aInfo.GetUserName(),
+ aPassList,
+ xIH,
+ ePreferredRememberMode
+ == ucb::RememberAuthentication_PERSISTENT))
+ {
+ xSupplyAuthentication->setRememberPassword(
+ ucb::RememberAuthentication_NO);
+ }
+ }
+ else if (eAlternateRememberMode
+ == ucb::RememberAuthentication_SESSION)
+ {
+ if (!aPwContainerHelper.addRecord(
+ rURL.getLength() ? rURL : rRequest.ServerName,
+ aInfo.GetUserName(),
+ aPassList,
+ xIH,
+ false /* SESSION */))
+ {
+ xSupplyAuthentication->setRememberPassword(
+ ucb::RememberAuthentication_NO);
+ }
+ }
+ }
+ break;
case ERRCODE_BUTTON_RETRY:
if (xRetry.is())
diff --git a/uui/source/loginerr.hxx b/uui/source/loginerr.hxx
index c8cbba96564b..39e5b81caf85 100644
--- a/uui/source/loginerr.hxx
+++ b/uui/source/loginerr.hxx
@@ -32,12 +32,13 @@
//=========================================================================
-#define LOGINERROR_FLAG_SET_SAVE_PASSWORD 1
-#define LOGINERROR_FLAG_MODIFY_ACCOUNT 2
-#define LOGINERROR_FLAG_MODIFY_USER_NAME 4
-#define LOGINERROR_FLAG_PERSISTENT_PASSWORD 8
-#define LOGINERROR_FLAG_CAN_USE_SYSCREDS 16
-#define LOGINERROR_FLAG_IS_USE_SYSCREDS 32
+#define LOGINERROR_FLAG_MODIFY_ACCOUNT 1
+#define LOGINERROR_FLAG_MODIFY_USER_NAME 2
+#define LOGINERROR_FLAG_CAN_REMEMBER_PASSWORD 4
+#define LOGINERROR_FLAG_IS_REMEMBER_PASSWORD 8
+#define LOGINERROR_FLAG_CAN_USE_SYSCREDS 16
+#define LOGINERROR_FLAG_IS_USE_SYSCREDS 32
+#define LOGINERROR_FLAG_REMEMBER_PERSISTENT 64
class LoginErrorInfo
{
@@ -56,27 +57,30 @@ public:
LoginErrorInfo()
: _nFlags( LOGINERROR_FLAG_MODIFY_USER_NAME ),
_nRet( ERRCODE_BUTTON_CANCEL )
- {
- }
+ {}
const String& GetTitle() const { return _aTitle; }
- const String& GetServer() const { return _aServer; }
+ const String& GetServer() const { return _aServer; }
const String& GetAccount() const { return _aAccount; }
const String& GetUserName() const { return _aUserName; }
const String& GetPassword() const { return _aPassword; }
const String& GetPath() const { return _aPath; }
const String& GetErrorText() const { return _aErrorText; }
- BOOL GetIsPersistentPassword() const
- { return ( _nFlags & LOGINERROR_FLAG_PERSISTENT_PASSWORD ); }
- BOOL GetIsSavePassword() const
- { return ( _nFlags & LOGINERROR_FLAG_SET_SAVE_PASSWORD ); }
+
+ BOOL GetCanRememberPassword() const
+ { return ( _nFlags & LOGINERROR_FLAG_CAN_REMEMBER_PASSWORD ); }
+ BOOL GetIsRememberPersistent() const
+ { return ( _nFlags & LOGINERROR_FLAG_REMEMBER_PERSISTENT ); }
+ BOOL GetIsRememberPassword() const
+ { return ( _nFlags & LOGINERROR_FLAG_IS_REMEMBER_PASSWORD ); }
+
BOOL GetCanUseSystemCredentials() const
{ return ( _nFlags & LOGINERROR_FLAG_CAN_USE_SYSCREDS ); }
BOOL GetIsUseSystemCredentials() const
{ return ( _nFlags & LOGINERROR_FLAG_IS_USE_SYSCREDS ) ==
LOGINERROR_FLAG_IS_USE_SYSCREDS; }
- BYTE GetFlags() const { return _nFlags; }
- USHORT GetResult() const { return _nRet; }
+ BYTE GetFlags() const { return _nFlags; }
+ USHORT GetResult() const { return _nRet; }
void SetTitle( const String& aTitle )
{ _aTitle = aTitle; }
@@ -94,8 +98,11 @@ public:
{ _aErrorText = aErrorText; }
void SetFlags( BYTE nFlags )
{ _nFlags = nFlags; }
- inline void SetSavePassword( BOOL bSet );
- inline void SetPersistentPassword( BOOL bSet );
+
+ inline void SetCanRememberPassword( BOOL bSet );
+ inline void SetIsRememberPassword( BOOL bSet );
+ inline void SetIsRememberPersistent( BOOL bSet );
+
inline void SetCanUseSystemCredentials( BOOL bSet );
inline void SetIsUseSystemCredentials( BOOL bSet );
inline void SetModifyAccount( BOOL bSet );
@@ -104,20 +111,28 @@ public:
{ _nRet = nRet; }
};
-inline void LoginErrorInfo::SetSavePassword( BOOL bSet )
+inline void LoginErrorInfo::SetCanRememberPassword( BOOL bSet )
+{
+ if ( bSet )
+ _nFlags |= LOGINERROR_FLAG_CAN_REMEMBER_PASSWORD;
+ else
+ _nFlags &= ~LOGINERROR_FLAG_CAN_REMEMBER_PASSWORD;
+}
+
+inline void LoginErrorInfo::SetIsRememberPassword( BOOL bSet )
{
if ( bSet )
- _nFlags |= LOGINERROR_FLAG_SET_SAVE_PASSWORD;
+ _nFlags |= LOGINERROR_FLAG_IS_REMEMBER_PASSWORD;
else
- _nFlags &= ~LOGINERROR_FLAG_SET_SAVE_PASSWORD;
+ _nFlags &= ~LOGINERROR_FLAG_IS_REMEMBER_PASSWORD;
}
-inline void LoginErrorInfo::SetPersistentPassword( BOOL bSet )
+inline void LoginErrorInfo::SetIsRememberPersistent( BOOL bSet )
{
if ( bSet )
- _nFlags |= LOGINERROR_FLAG_PERSISTENT_PASSWORD;
+ _nFlags |= LOGINERROR_FLAG_REMEMBER_PERSISTENT;
else
- _nFlags &= ~LOGINERROR_FLAG_PERSISTENT_PASSWORD;
+ _nFlags &= ~LOGINERROR_FLAG_REMEMBER_PERSISTENT;
}
inline void LoginErrorInfo::SetCanUseSystemCredentials( BOOL bSet )
diff --git a/uui/source/passwordcontainer.cxx b/uui/source/passwordcontainer.cxx
index 26d22b320d8a..0a056289c29d 100644
--- a/uui/source/passwordcontainer.cxx
+++ b/uui/source/passwordcontainer.cxx
@@ -30,6 +30,7 @@
#include "com/sun/star/lang/XMultiServiceFactory.hpp"
#include "com/sun/star/task/NoMasterException.hpp"
#include "com/sun/star/task/XInteractionHandler.hpp"
+#include "com/sun/star/task/XMasterPasswordHandling.hpp"
#include "com/sun/star/task/XPasswordContainer.hpp"
#include "com/sun/star/task/XUrlContainer.hpp"
#include "com/sun/star/ucb/AuthenticationRequest.hpp"
@@ -271,10 +272,20 @@ bool PasswordContainerHelper::addRecord(
return false;
if ( bPersist )
+ {
+ uno::Reference< task::XMasterPasswordHandling > xMPH(
+ m_xPasswordContainer, uno::UNO_QUERY_THROW );
+
+ // If persistent storing of passwords is not yet
+ // allowed, enable it.
+ if ( !xMPH->isPersistentStoringAllowed() )
+ xMPH->allowPersistentStoring( sal_True );
+
m_xPasswordContainer->addPersistent( rURL,
rUsername,
rPasswords,
xIH );
+ }
else
m_xPasswordContainer->add( rURL,
rUsername,
@@ -429,7 +440,7 @@ PasswordContainerInteractionHandler::handle(
// @@@ FIXME: this not able to
// handle master pw request!
// master pw request is never
- // solvabe without UI!
+ // solvable without UI!
this ) )
{
// successfully handled
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index 7cec6867e0a3..e503172eb2c6 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -1975,11 +1975,14 @@ BOOL Application::IsHeadlessModeEnabled()
void Application::ShowNativeErrorBox(const String& sTitle ,
const String& sMessage)
{
- ImplGetSalSystem()->ShowNativeMessageBox (
+ int btn = ImplGetSalSystem()->ShowNativeMessageBox (
sTitle,
sMessage,
SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_OK,
SALSYSTEM_SHOWNATIVEMSGBOX_BTN_OK);
+ if (btn != SALSYSTEM_SHOWNATIVEMSGBOX_BTN_OK) {
+ OSL_TRACE("ShowNativeMessageBox returned %d\n", btn);
+ }
}
// -----------------------------------------------------------------------
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index 16e478c22f6e..3d11ce8a37ea 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -566,6 +566,7 @@ void GtkSalFrame::InitCommon()
m_nExtStyle = 0;
m_pRegion = NULL;
m_ePointerStyle = 0xffff;
+ m_bSetFocusOnMap = false;
gtk_widget_set_app_paintable( m_pWindow, TRUE );
gtk_widget_set_double_buffered( m_pWindow, FALSE );
@@ -803,18 +804,6 @@ void GtkSalFrame::Init( SalFrame* pParent, ULONG nStyle )
( ! (nStyle & SAL_FRAME_STYLE_FLOAT) ||
(nStyle & (SAL_FRAME_STYLE_OWNERDRAWDECORATION|SAL_FRAME_STYLE_FLOAT_FOCUSABLE) ) );
- /* #i100116# metacity has a peculiar behavior regarding WM_HINT accept focus and _NET_WM_USER_TIME
- at some point that may be fixed in metacity and we will have to revisit this
- */
-
- // MT/PL 2010/02: #i102694# and #i102803# have been introduced by this hack
- // Nowadays the original issue referenced above doesn't seem to exist anymore, tested different szenarious described in the issues
- // If some older versions of MetaCity are still in use somewhere, they need to be updated, instead of using strange hacks in OOo.
- // As a work around for such old systems, people might consider to not use the GTK plugin.
-
- bool bMetaCityToolWindowHack = false;
- // bMetaCityToolWindowHack = getDisplay()->getWMAdaptor()->getWindowManagerName().EqualsAscii("Metacity") && (nStyle & SAL_FRAME_STYLE_TOOLWINDOW );
-
if( bDecoHandling )
{
bool bNoDecor = ! (nStyle & (SAL_FRAME_STYLE_MOVEABLE | SAL_FRAME_STYLE_SIZEABLE | SAL_FRAME_STYLE_CLOSEABLE ) );
@@ -830,8 +819,6 @@ void GtkSalFrame::Init( SalFrame* pParent, ULONG nStyle )
{
eType = GDK_WINDOW_TYPE_HINT_UTILITY;
gtk_window_set_skip_taskbar_hint( GTK_WINDOW(m_pWindow), true );
- if( bMetaCityToolWindowHack )
- lcl_set_accept_focus( GTK_WINDOW(m_pWindow), FALSE, true );
}
else if( (nStyle & SAL_FRAME_STYLE_OWNERDRAWDECORATION) )
{
@@ -882,7 +869,7 @@ void GtkSalFrame::Init( SalFrame* pParent, ULONG nStyle )
if( bDecoHandling )
{
gtk_window_set_resizable( GTK_WINDOW(m_pWindow), (nStyle & SAL_FRAME_STYLE_SIZEABLE) ? TRUE : FALSE );
- if( ( (nStyle & (SAL_FRAME_STYLE_OWNERDRAWDECORATION)) ) || bMetaCityToolWindowHack )
+ if( ( (nStyle & (SAL_FRAME_STYLE_OWNERDRAWDECORATION)) ) )
lcl_set_accept_focus( GTK_WINDOW(m_pWindow), FALSE, false );
}
@@ -1366,9 +1353,9 @@ void GtkSalFrame::Show( BOOL bVisible, BOOL bNoActivate )
//
// i.e. having a time < that of the toplevel frame means that the toplevel frame gets unfocused.
// awesome.
+ bool bMetaCity = getDisplay()->getWMAdaptor()->getWindowManagerName().EqualsAscii("Metacity");
if( nUserTime == 0 &&
- (
- getDisplay()->getWMAdaptor()->getWindowManagerName().EqualsAscii("Metacity") ||
+ ( bMetaCity ||
(
getDisplay()->getWMAdaptor()->getWindowManagerName().EqualsAscii("compiz") &&
(m_nStyle & (SAL_FRAME_STYLE_OWNERDRAWDECORATION))
@@ -1380,9 +1367,11 @@ void GtkSalFrame::Show( BOOL bVisible, BOOL bNoActivate )
nUserTime= getDisplay()->GetLastUserEventTime( true );
//nUserTime = gdk_x11_get_server_time(GTK_WIDGET (m_pWindow)->window);
}
-
lcl_set_user_time( GTK_WIDGET(m_pWindow)->window, nUserTime );
+ if( bMetaCity && ! bNoActivate && (m_nStyle & SAL_FRAME_STYLE_TOOLWINDOW) )
+ m_bSetFocusOnMap = true;
+
gtk_widget_show( m_pWindow );
if( isFloatGrabWindow() )
@@ -2870,6 +2859,8 @@ gboolean GtkSalFrame::signalMap( GtkWidget*, GdkEvent*, gpointer frame )
GTK_YIELD_GRAB();
+ bool bSetFocus = pThis->m_bSetFocusOnMap;
+ pThis->m_bSetFocusOnMap = false;
if( ImplGetSVData()->mbIsTestTool )
{
/* #i76541# testtool needs the focus to be in a new document
@@ -2879,9 +2870,14 @@ gboolean GtkSalFrame::signalMap( GtkWidget*, GdkEvent*, gpointer frame )
* so this is done when running in testtool only
*/
if( ! pThis->m_pParent && (pThis->m_nStyle & SAL_FRAME_STYLE_MOVEABLE) != 0 )
- XSetInputFocus( pThis->getDisplay()->GetDisplay(),
- GDK_WINDOW_XWINDOW( GTK_WIDGET(pThis->m_pWindow)->window),
- RevertToParent, CurrentTime );
+ bSetFocus = true;
+ }
+
+ if( bSetFocus )
+ {
+ XSetInputFocus( pThis->getDisplay()->GetDisplay(),
+ GDK_WINDOW_XWINDOW( GTK_WIDGET(pThis->m_pWindow)->window),
+ RevertToParent, CurrentTime );
}
pThis->CallCallback( SALEVENT_RESIZE, NULL );
diff --git a/vcl/unx/inc/plugins/gtk/gtkframe.hxx b/vcl/unx/inc/plugins/gtk/gtkframe.hxx
index 0a91d99fd839..88a26b401eed 100644
--- a/vcl/unx/inc/plugins/gtk/gtkframe.hxx
+++ b/vcl/unx/inc/plugins/gtk/gtkframe.hxx
@@ -185,6 +185,7 @@ class GtkSalFrame : public SalFrame
bool m_bDefaultSize;
bool m_bSendModChangeOnRelease;
bool m_bWindowIsGtkPlug;
+ bool m_bSetFocusOnMap;
String m_aTitle;
IMHandler* m_pIMHandler;
diff --git a/vcl/unx/source/dtrans/X11_selection.cxx b/vcl/unx/source/dtrans/X11_selection.cxx
index 2d63489dac3d..7f205407b21b 100644
--- a/vcl/unx/source/dtrans/X11_selection.cxx
+++ b/vcl/unx/source/dtrans/X11_selection.cxx
@@ -70,6 +70,7 @@
#include <osl/process.h>
#include <comphelper/processfactory.hxx>
+#include <vos/mutex.hxx>
#define DRAG_EVENT_MASK ButtonPressMask |\
ButtonReleaseMask |\
@@ -3807,7 +3808,10 @@ void SelectionManager::shutdown() throw()
*/
aGuard.clear();
while (osl_isThreadRunning(m_aThread))
+ {
+ vos::OGuard guard2(Application::GetSolarMutex());
Application::Reschedule();
+ }
osl_joinWithThread( m_aThread );
osl_destroyThread( m_aThread );
m_aThread = NULL;
diff --git a/wizards/prj/build.lst b/wizards/prj/build.lst
index c98f4561577c..c4d635a921a8 100644
--- a/wizards/prj/build.lst
+++ b/wizards/prj/build.lst
@@ -1,4 +1,4 @@
-wz wizards : l10n rsc javaunohelper unoil QADEVOOO:qadevOOo NULL
+wz wizards : l10n rsc javaunohelper unoil NULL
wz wizards\util nmake - all wz_util NULL
wz wizards\source\config nmake - all wz_config NULL
wz wizards\source\configshare nmake - all wz_configshare NULL
diff --git a/wizards/source/formwizard/dbwizres.src b/wizards/source/formwizard/dbwizres.src
index 065008c40cec..c04d77b9fcdd 100644
--- a/wizards/source/formwizard/dbwizres.src
+++ b/wizards/source/formwizard/dbwizres.src
@@ -2856,7 +2856,7 @@ String RID_WEBWIZARDDIALOG_START +110
String RID_WEBWIZARDDIALOG_START +111
{
- Text [ en-US ] = "A security error acoccurred while exporting the document '%FILENAME'.";
+ Text [ en-US ] = "A security error occurred while exporting the document '%FILENAME'.";
};
String RID_WEBWIZARDDIALOG_START +112
diff --git a/xmloff/qa/unoapi/xmloff.sce b/xmloff/qa/unoapi/xmloff.sce
index aa61a2449680..c73533f4e4e8 100644
--- a/xmloff/qa/unoapi/xmloff.sce
+++ b/xmloff/qa/unoapi/xmloff.sce
@@ -1,26 +1,26 @@
--o xmloff.Chart.XMLContentExporter
--o xmloff.Chart.XMLContentImporter
--o xmloff.Chart.XMLExporter
--o xmloff.Chart.XMLImporter
--o xmloff.Chart.XMLStylesExporter
--o xmloff.Chart.XMLStylesImporter
+#111102# -o xmloff.Chart.XMLContentExporter
+#111102# -o xmloff.Chart.XMLContentImporter
+#111102# -o xmloff.Chart.XMLExporter
+#111102# -o xmloff.Chart.XMLImporter
+#111102# -o xmloff.Chart.XMLStylesExporter
+#111102# -o xmloff.Chart.XMLStylesImporter
-o xmloff.Draw.XMLContentExporter
-o xmloff.Draw.XMLContentImporter
-o xmloff.Draw.XMLExporter
-o xmloff.Draw.XMLImporter
-o xmloff.Draw.XMLMetaExporter
--o xmloff.Draw.XMLMetaImporter
--o xmloff.Draw.XMLSettingsExporter
--o xmloff.Draw.XMLSettingsImporter
+#i111200 -o xmloff.Draw.XMLMetaImporter
+#i111287 -o xmloff.Draw.XMLSettingsExporter
+#i111287 -o xmloff.Draw.XMLSettingsImporter
#i87695 -o xmloff.Draw.XMLStylesExporter
-o xmloff.Draw.XMLStylesImporter
--o xmloff.Impress.XMLContentExporter
+#i111224 -o xmloff.Impress.XMLContentExporter
-o xmloff.Impress.XMLContentImporter
-o xmloff.Impress.XMLExporter
--o xmloff.Impress.XMLImporter
+#i111111# -o xmloff.Impress.XMLImporter
-o xmloff.Impress.XMLMetaExporter
-o xmloff.Impress.XMLMetaImporter
--o xmloff.Impress.XMLSettingsExporter
--o xmloff.Impress.XMLSettingsImporter
+#i111287 -o xmloff.Impress.XMLSettingsExporter
+#i111287 -o xmloff.Impress.XMLSettingsImporter
#i87695 -o xmloff.Impress.XMLStylesExporter
-o xmloff.Impress.XMLStylesImporter
diff --git a/xmloff/source/forms/elementexport.cxx b/xmloff/source/forms/elementexport.cxx
index eacd5bb735ef..88abf8ad988a 100644
--- a/xmloff/source/forms/elementexport.cxx
+++ b/xmloff/source/forms/elementexport.cxx
@@ -691,7 +691,7 @@ namespace xmloff
if (m_nIncludeCommon & CCA_TARGET_LOCATION)
{
- exportTargetLocationAttribute();
+ exportTargetLocationAttribute(false);
#if OSL_DEBUG_LEVEL > 0
// reset the bit for later checking
m_nIncludeCommon = m_nIncludeCommon & ~CCA_TARGET_LOCATION;
@@ -2138,7 +2138,7 @@ namespace xmloff
// the target frame
exportTargetFrameAttribute();
// the target URL
- exportTargetLocationAttribute();
+ exportTargetLocationAttribute(true); // #i110911# add type attribute (for form, but not for control)
// master fields
exportStringSequenceAttribute(
diff --git a/xmloff/source/forms/propertyexport.cxx b/xmloff/source/forms/propertyexport.cxx
index 1586c9a7a439..2a485566cf9d 100644
--- a/xmloff/source/forms/propertyexport.cxx
+++ b/xmloff/source/forms/propertyexport.cxx
@@ -420,7 +420,7 @@ namespace xmloff
}
//---------------------------------------------------------------------
- void OPropertyExport::exportRelativeTargetLocation(const ConstAsciiString& _sPropertyName,sal_Int32 _nProperty)
+ void OPropertyExport::exportRelativeTargetLocation(const ConstAsciiString& _sPropertyName,sal_Int32 _nProperty,bool _bAddType)
{
DBG_CHECK_PROPERTY( _sPropertyName, ::rtl::OUString );
@@ -433,6 +433,10 @@ namespace xmloff
,OAttributeMetaData::getCommonControlAttributeName(_nProperty)
, sTargetLocation);
+ // #i110911# add xlink:type="simple" if required
+ if (_bAddType)
+ AddAttribute(XML_NAMESPACE_XLINK, token::XML_TYPE, token::XML_SIMPLE);
+
exportedProperty(_sPropertyName);
}
//---------------------------------------------------------------------
diff --git a/xmloff/source/forms/propertyexport.hxx b/xmloff/source/forms/propertyexport.hxx
index 5e1f683e339d..ab17912e4df4 100644
--- a/xmloff/source/forms/propertyexport.hxx
+++ b/xmloff/source/forms/propertyexport.hxx
@@ -69,7 +69,7 @@ namespace xmloff
StringSet m_aRemainingProps;
// see examinePersistence
- void exportRelativeTargetLocation(const ConstAsciiString& _sPropertyName,sal_Int32 _nProperty);
+ void exportRelativeTargetLocation(const ConstAsciiString& _sPropertyName,sal_Int32 _nProperty,bool _bAddType);
protected:
IFormsExportContext& m_rContext;
@@ -230,8 +230,10 @@ namespace xmloff
<p>The value of this attribute is extracted from the TargetURL property of the object given.</p>
<p>The property needs a special handling because the URL's need to be made relative</p>
+
+ <p>If _bAddType is set, an additional xlink:type="simple" attribute is also added.</p>
*/
- inline void exportTargetLocationAttribute() { exportRelativeTargetLocation(PROPERTY_TARGETURL,CCA_TARGET_LOCATION); }
+ inline void exportTargetLocationAttribute(bool _bAddType) { exportRelativeTargetLocation(PROPERTY_TARGETURL,CCA_TARGET_LOCATION,_bAddType); }
/** add the form:image attribute to the export context.
@@ -239,7 +241,7 @@ namespace xmloff
<p>The property needs a special handling because the URL's need to be made relative</p>
*/
- inline void exportImageDataAttribute() { exportRelativeTargetLocation(PROPERTY_IMAGEURL,CCA_IMAGE_DATA); }
+ inline void exportImageDataAttribute() { exportRelativeTargetLocation(PROPERTY_IMAGEURL,CCA_IMAGE_DATA,false); }
/** flag the style properties as 'already exported'
diff --git a/xmloff/source/forms/propertyimport.cxx b/xmloff/source/forms/propertyimport.cxx
index 597798f01ce7..45fa2f5b4744 100644
--- a/xmloff/source/forms/propertyimport.cxx
+++ b/xmloff/source/forms/propertyimport.cxx
@@ -363,7 +363,7 @@ void OPropertyImport::handleAttribute(sal_uInt16 /*_nNamespaceKey*/, const ::rtl
implPushBackPropertyValue( aNewValue );
}
#if OSL_DEBUG_LEVEL > 0
- else
+ else if (!token::IsXMLToken(_rLocalName, token::XML_TYPE)) // xlink:type is valid but ignored for <form:form>
{
::rtl::OString sMessage( "OPropertyImport::handleAttribute: Can't handle the following:\n" );
sMessage += ::rtl::OString( " Attribute name: " );
diff --git a/xmloff/source/script/XMLScriptExportHandler.cxx b/xmloff/source/script/XMLScriptExportHandler.cxx
index 724b6b0d2337..e04467d1e491 100644
--- a/xmloff/source/script/XMLScriptExportHandler.cxx
+++ b/xmloff/source/script/XMLScriptExportHandler.cxx
@@ -75,6 +75,9 @@ void XMLScriptExportHandler::Export(
OUString sTmp;
rValues[i].Value >>= sTmp;
rExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, sTmp);
+
+ // #i110911# xlink:type="simple" is required
+ rExport.AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE);
}
// else: disregard
}