[Libreoffice-commits] .: 97 commits - cli_ure/version codemaker/source cppu/source idlc/inc idlc/source offapi/com offapi/drafts offapi/prj offapi/type_reference offapi/util registry/tools sal/cppunittester sal/inc sal/osl sal/prj sal/rtl store/source udkapi/com unoil/climaker unoil/util

Jan Holesovsky kendy at kemper.freedesktop.org
Wed Mar 23 09:27:22 PDT 2011


 cli_ure/version/version.txt                                                |   24 
 codemaker/source/cppumaker/cppuoptions.cxx                                 |   18 
 codemaker/source/javamaker/javaoptions.cxx                                 |   18 
 cppu/source/typelib/typelib.cxx                                            |   41 
 idlc/inc/idlc/idlctypes.hxx                                                |    2 
 idlc/inc/idlc/options.hxx                                                  |   17 
 idlc/source/astexpression.cxx                                              |   21 
 idlc/source/idlcmain.cxx                                                   |   19 
 idlc/source/options.cxx                                                    |  556 +--
 idlc/source/preproc/eval.c                                                 |   15 
 idlc/source/preproc/lex.c                                                  |   10 
 idlc/source/preproc/unix.c                                                 |    1 
 offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl             |    2 
 offapi/com/sun/star/animations/XAnimationListener.idl                      |    2 
 offapi/com/sun/star/awt/EnhancedMouseEvent.idl                             |    2 
 offapi/com/sun/star/awt/UnoControlButtonModel.idl                          |   12 
 offapi/com/sun/star/awt/UnoControlCheckBoxModel.idl                        |    8 
 offapi/com/sun/star/awt/UnoControlComboBoxModel.idl                        |    4 
 offapi/com/sun/star/awt/UnoControlContainerModel.idl                       |    2 
 offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl                   |   10 
 offapi/com/sun/star/awt/UnoControlDateFieldModel.idl                       |   12 
 offapi/com/sun/star/awt/UnoControlDialogModel.idl                          |    6 
 offapi/com/sun/star/awt/UnoControlDialogModelProvider.idl                  |    2 
 offapi/com/sun/star/awt/UnoControlEditModel.idl                            |   14 
 offapi/com/sun/star/awt/UnoControlFileControlModel.idl                     |    6 
 offapi/com/sun/star/awt/UnoControlFixedHyperlinkModel.idl                  |    4 
 offapi/com/sun/star/awt/UnoControlFixedTextModel.idl                       |    4 
 offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl                  |   10 
 offapi/com/sun/star/awt/UnoControlImageControlModel.idl                    |    2 
 offapi/com/sun/star/awt/UnoControlListBoxModel.idl                         |    2 
 offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl                    |   10 
 offapi/com/sun/star/awt/UnoControlPatternFieldModel.idl                    |    6 
 offapi/com/sun/star/awt/UnoControlProgressBarModel.idl                     |    2 
 offapi/com/sun/star/awt/UnoControlRadioButtonModel.idl                     |    8 
 offapi/com/sun/star/awt/UnoControlScrollBarModel.idl                       |   12 
 offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl                      |    2 
 offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl                       |   12 
 offapi/com/sun/star/awt/XEnhancedMouseClickHandler.idl                     |    2 
 offapi/com/sun/star/awt/grid/DefaultGridColumnModel.idl                    |    2 
 offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl                      |    2 
 offapi/com/sun/star/awt/grid/GridColumn.idl                                |    2 
 offapi/com/sun/star/awt/grid/GridColumnEvent.idl                           |    2 
 offapi/com/sun/star/awt/grid/GridDataEvent.idl                             |    2 
 offapi/com/sun/star/awt/grid/GridInvalidDataException.idl                  |    2 
 offapi/com/sun/star/awt/grid/GridInvalidModelException.idl                 |    2 
 offapi/com/sun/star/awt/grid/UnoControlGrid.idl                            |    2 
 offapi/com/sun/star/awt/grid/UnoControlGridModel.idl                       |    2 
 offapi/com/sun/star/awt/grid/XGridColumn.idl                               |    2 
 offapi/com/sun/star/awt/grid/XGridColumnListener.idl                       |    2 
 offapi/com/sun/star/awt/grid/XGridColumnModel.idl                          |    2 
 offapi/com/sun/star/awt/grid/XGridControl.idl                              |    2 
 offapi/com/sun/star/awt/grid/XGridDataListener.idl                         |    2 
 offapi/com/sun/star/awt/grid/XGridDataModel.idl                            |    2 
 offapi/com/sun/star/configuration/DefaultProvider.idl                      |    4 
 offapi/com/sun/star/configuration/Update.idl                               |    2 
 offapi/com/sun/star/configuration/XUpdate.idl                              |    2 
 offapi/com/sun/star/configuration/backend/InteractionHandler.idl           |    2 
 offapi/com/sun/star/configuration/backend/Layer.idl                        |    2 
 offapi/com/sun/star/configuration/backend/LayerFilter.idl                  |    2 
 offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl         |    2 
 offapi/com/sun/star/configuration/backend/Schema.idl                       |    2 
 offapi/com/sun/star/configuration/backend/StratumCreationException.idl     |    2 
 offapi/com/sun/star/deployment/DeploymentException.idl                     |    2 
 offapi/com/sun/star/deployment/ExtensionManager.idl                        |    2 
 offapi/com/sun/star/deployment/ExtensionRemovedException.idl               |    2 
 offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl        |    2 
 offapi/com/sun/star/deployment/PackageRegistryBackend.idl                  |    2 
 offapi/com/sun/star/deployment/PlatformException.idl                       |    2 
 offapi/com/sun/star/deployment/XExtensionManager.idl                       |    2 
 offapi/com/sun/star/deployment/XPackage.idl                                |    4 
 offapi/com/sun/star/deployment/XPackageManager.idl                         |    2 
 offapi/com/sun/star/deployment/XPackageManagerFactory.idl                  |    2 
 offapi/com/sun/star/deployment/XPackageRegistry.idl                        |    2 
 offapi/com/sun/star/deployment/XPackageTypeInfo.idl                        |    2 
 offapi/com/sun/star/deployment/thePackageManagerFactory.idl                |    2 
 offapi/com/sun/star/deployment/ui/PackageManagerDialog.idl                 |    2 
 offapi/com/sun/star/deployment/ui/UpdateRequiredDialog.idl                 |    2 
 offapi/com/sun/star/document/CorruptedFilterConfigurationException.idl     |    2 
 offapi/com/sun/star/document/DocumentEvent.idl                             |    2 
 offapi/com/sun/star/document/XDocumentEventBroadcaster.idl                 |    2 
 offapi/com/sun/star/document/XDocumentEventListener.idl                    |    2 
 offapi/com/sun/star/document/XMLBasicExporter.idl                          |    2 
 offapi/com/sun/star/document/XMLBasicImporter.idl                          |    2 
 offapi/com/sun/star/document/XMLOasisBasicExporter.idl                     |    2 
 offapi/com/sun/star/document/XMLOasisBasicImporter.idl                     |    2 
 offapi/com/sun/star/form/FormComponent.idl                                 |    2 
 offapi/com/sun/star/form/XErrorListener.idl                                |    1 
 offapi/com/sun/star/form/component/GridControl.idl                         |    2 
 offapi/com/sun/star/form/inspection/DefaultFormComponentInspectorModel.idl |    4 
 offapi/com/sun/star/form/runtime/FeatureState.idl                          |    2 
 offapi/com/sun/star/form/runtime/FilterEvent.idl                           |    2 
 offapi/com/sun/star/form/runtime/FormFeature.idl                           |    2 
 offapi/com/sun/star/form/runtime/FormOperations.idl                        |    2 
 offapi/com/sun/star/form/runtime/XFeatureInvalidation.idl                  |    2 
 offapi/com/sun/star/form/runtime/XFilterController.idl                     |    2 
 offapi/com/sun/star/form/runtime/XFilterControllerListener.idl             |    2 
 offapi/com/sun/star/form/runtime/XFormController.idl                       |    2 
 offapi/com/sun/star/form/runtime/XFormOperations.idl                       |    2 
 offapi/com/sun/star/frame/CommandGroup.idl                                 |    2 
 offapi/com/sun/star/frame/DispatchInformation.idl                          |    2 
 offapi/com/sun/star/frame/Frame.idl                                        |    2 
 offapi/com/sun/star/frame/LayoutManager.idl                                |    2 
 offapi/com/sun/star/frame/LayoutManagerEvents.idl                          |    2 
 offapi/com/sun/star/frame/ModuleManager.idl                                |    2 
 offapi/com/sun/star/frame/PopupMenuController.idl                          |    2 
 offapi/com/sun/star/frame/PopupMenuControllerFactory.idl                   |    2 
 offapi/com/sun/star/frame/StatusbarController.idl                          |    2 
 offapi/com/sun/star/frame/StatusbarControllerFactory.idl                   |    2 
 offapi/com/sun/star/frame/ToolbarController.idl                            |    2 
 offapi/com/sun/star/frame/TransientDocumentsDocumentContentFactory.idl     |    2 
 offapi/com/sun/star/frame/UnknownModuleException.idl                       |    2 
 offapi/com/sun/star/frame/XDispatchInformationProvider.idl                 |    2 
 offapi/com/sun/star/frame/XInplaceLayout.idl                               |    2 
 offapi/com/sun/star/frame/XLayoutManager.idl                               |    2 
 offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl               |    2 
 offapi/com/sun/star/frame/XLayoutManagerListener.idl                       |    2 
 offapi/com/sun/star/frame/XMenuBarAcceptor.idl                             |    2 
 offapi/com/sun/star/frame/XMenuBarMergingAcceptor.idl                      |    2 
 offapi/com/sun/star/frame/XModule.idl                                      |    2 
 offapi/com/sun/star/frame/XModuleManager.idl                               |    2 
 offapi/com/sun/star/frame/XPopupMenuController.idl                         |    2 
 offapi/com/sun/star/frame/XStatusbarController.idl                         |    2 
 offapi/com/sun/star/frame/XSubToolbarController.idl                        |    2 
 offapi/com/sun/star/frame/XSynchronousDispatch.idl                         |    2 
 offapi/com/sun/star/frame/XToolbarController.idl                           |    2 
 offapi/com/sun/star/frame/XToolbarControllerListener.idl                   |    2 
 offapi/com/sun/star/frame/XTransientDocumentsDocumentContentFactory.idl    |    2 
 offapi/com/sun/star/geometry/AffineMatrix2D.idl                            |    2 
 offapi/com/sun/star/geometry/AffineMatrix3D.idl                            |    2 
 offapi/com/sun/star/geometry/EllipticalArc.idl                             |    2 
 offapi/com/sun/star/geometry/IntegerBezierSegment2D.idl                    |    2 
 offapi/com/sun/star/geometry/IntegerPoint2D.idl                            |    2 
 offapi/com/sun/star/geometry/IntegerRectangle2D.idl                        |    2 
 offapi/com/sun/star/geometry/IntegerSize2D.idl                             |    2 
 offapi/com/sun/star/geometry/Matrix2D.idl                                  |    2 
 offapi/com/sun/star/geometry/RealBezierSegment2D.idl                       |    2 
 offapi/com/sun/star/geometry/RealPoint2D.idl                               |    2 
 offapi/com/sun/star/geometry/RealRectangle2D.idl                           |    2 
 offapi/com/sun/star/geometry/RealRectangle3D.idl                           |    2 
 offapi/com/sun/star/geometry/RealSize2D.idl                                |    2 
 offapi/com/sun/star/geometry/XMapping2D.idl                                |    2 
 offapi/com/sun/star/i18n/OrdinalSuffix.idl                                 |    2 
 offapi/com/sun/star/i18n/TextConversionOption.idl                          |    2 
 offapi/com/sun/star/i18n/XOrdinalSuffix.idl                                |    2 
 offapi/com/sun/star/linguistic2/ConversionDictionary.idl                   |    2 
 offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl               |    2 
 offapi/com/sun/star/linguistic2/ConversionPropertyType.idl                 |    2 
 offapi/com/sun/star/linguistic2/XConversionPropertyType.idl                |    2 
 offapi/com/sun/star/mail/MailAttachment.idl                                |    2 
 offapi/com/sun/star/mail/MailException.idl                                 |    2 
 offapi/com/sun/star/mail/MailMessage.idl                                   |    2 
 offapi/com/sun/star/mail/MailServer.idl                                    |    2 
 offapi/com/sun/star/mail/MailServiceProvider.idl                           |    2 
 offapi/com/sun/star/mail/MailServiceType.idl                               |    2 
 offapi/com/sun/star/mail/NoMailServiceProviderException.idl                |    2 
 offapi/com/sun/star/mail/NoMailTransportProviderException.idl              |    2 
 offapi/com/sun/star/mail/SendMailMessageFailedException.idl                |    2 
 offapi/com/sun/star/mail/XAuthenticator.idl                                |    2 
 offapi/com/sun/star/mail/XConnectionListener.idl                           |    2 
 offapi/com/sun/star/mail/XMailMessage.idl                                  |    2 
 offapi/com/sun/star/mail/XMailServer.idl                                   |    2 
 offapi/com/sun/star/mail/XMailService.idl                                  |    2 
 offapi/com/sun/star/mail/XMailServiceProvider.idl                          |    2 
 offapi/com/sun/star/mail/XSmtpService.idl                                  |    2 
 offapi/com/sun/star/rendering/AnimationAttributes.idl                      |    2 
 offapi/com/sun/star/rendering/AnimationRepeat.idl                          |    2 
 offapi/com/sun/star/rendering/CanvasFactory.idl                            |    2 
 offapi/com/sun/star/rendering/Caret.idl                                    |    2 
 offapi/com/sun/star/rendering/CompositeOperation.idl                       |    2 
 offapi/com/sun/star/rendering/EmphasisMark.idl                             |    2 
 offapi/com/sun/star/rendering/FillRule.idl                                 |    2 
 offapi/com/sun/star/rendering/FloatingPointBitmapFormat.idl                |    2 
 offapi/com/sun/star/rendering/FloatingPointBitmapLayout.idl                |    2 
 offapi/com/sun/star/rendering/FontInfo.idl                                 |    2 
 offapi/com/sun/star/rendering/FontMetrics.idl                              |    2 
 offapi/com/sun/star/rendering/FontRequest.idl                              |    2 
 offapi/com/sun/star/rendering/IntegerBitmapLayout.idl                      |    2 
 offapi/com/sun/star/rendering/InterpolationMode.idl                        |    2 
 offapi/com/sun/star/rendering/PathCapType.idl                              |    2 
 offapi/com/sun/star/rendering/PathJoinType.idl                             |    2 
 offapi/com/sun/star/rendering/RenderState.idl                              |    2 
 offapi/com/sun/star/rendering/RenderingIntent.idl                          |    2 
 offapi/com/sun/star/rendering/RepaintResult.idl                            |    2 
 offapi/com/sun/star/rendering/StringContext.idl                            |    2 
 offapi/com/sun/star/rendering/TextDirection.idl                            |    2 
 offapi/com/sun/star/rendering/TextHit.idl                                  |    2 
 offapi/com/sun/star/rendering/Texture.idl                                  |    2 
 offapi/com/sun/star/rendering/TexturingMode.idl                            |    2 
 offapi/com/sun/star/rendering/ViewState.idl                                |    2 
 offapi/com/sun/star/rendering/VolatileContentDestroyedException.idl        |    2 
 offapi/com/sun/star/rendering/XAnimatedSprite.idl                          |    2 
 offapi/com/sun/star/rendering/XAnimation.idl                               |    2 
 offapi/com/sun/star/rendering/XBezierPolyPolygon2D.idl                     |    2 
 offapi/com/sun/star/rendering/XBitmap.idl                                  |    2 
 offapi/com/sun/star/rendering/XBitmapCanvas.idl                            |    2 
 offapi/com/sun/star/rendering/XBitmapPalette.idl                           |    2 
 offapi/com/sun/star/rendering/XBufferController.idl                        |    2 
 offapi/com/sun/star/rendering/XCachedPrimitive.idl                         |    2 
 offapi/com/sun/star/rendering/XCanvas.idl                                  |    2 
 offapi/com/sun/star/rendering/XIntegerBitmap.idl                           |    2 
 offapi/com/sun/star/rendering/XLinePolyPolygon2D.idl                       |    2 
 offapi/com/sun/star/rendering/XPolyPolygon2D.idl                           |    2 
 offapi/com/sun/star/rendering/XTextLayout.idl                              |    2 
 offapi/com/sun/star/report/XReportControlFormat.idl                        |    2 
 offapi/com/sun/star/resource/OfficeResourceLoader.idl                      |    2 
 offapi/com/sun/star/script/browse/BrowseNode.idl                           |    2 
 offapi/com/sun/star/script/browse/BrowseNodeFactory.idl                    |    4 
 offapi/com/sun/star/sdb/DatabaseContext.idl                                |    2 
 offapi/com/sun/star/sdb/DatabaseDocument.idl                               |    2 
 offapi/com/sun/star/sdb/DocumentSaveRequest.idl                            |    2 
 offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl                         |    2 
 offapi/com/sun/star/sdb/XDatabaseRegistrations.idl                         |    2 
 offapi/com/sun/star/sdb/XDatabaseRegistrationsListener.idl                 |    2 
 offapi/com/sun/star/sdb/XInteractionDocumentSave.idl                       |    2 
 offapi/com/sun/star/sdb/application/DatabaseObject.idl                     |    2 
 offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl                |    2 
 offapi/com/sun/star/sdb/application/XTableUIProvider.idl                   |    2 
 offapi/com/sun/star/sdbc/DataType.idl                                      |    2 
 offapi/com/sun/star/security/SerialNumberAdapter.idl                       |    2 
 offapi/com/sun/star/sheet/ActivationEvent.idl                              |    2 
 offapi/com/sun/star/sheet/CellAreaLink.idl                                 |    2 
 offapi/com/sun/star/sheet/DDEItemInfo.idl                                  |    2 
 offapi/com/sun/star/sheet/DDELinkInfo.idl                                  |    2 
 offapi/com/sun/star/sheet/DataPilotDescriptor.idl                          |    6 
 offapi/com/sun/star/sheet/DataPilotItem.idl                                |    2 
 offapi/com/sun/star/sheet/DataPilotOutputRangeType.idl                     |    2 
 offapi/com/sun/star/sheet/DataPilotSource.idl                              |    6 
 offapi/com/sun/star/sheet/DataPilotSourceMember.idl                        |    2 
 offapi/com/sun/star/sheet/DataPilotTable.idl                               |    2 
 offapi/com/sun/star/sheet/DataPilotTableHeaderData.idl                     |    2 
 offapi/com/sun/star/sheet/DataPilotTablePositionData.idl                   |    2 
 offapi/com/sun/star/sheet/DataPilotTablePositionType.idl                   |    2 
 offapi/com/sun/star/sheet/DataPilotTableResultData.idl                     |    2 
 offapi/com/sun/star/sheet/DatabaseImportDescriptor.idl                     |    4 
 offapi/com/sun/star/sheet/DatabaseRange.idl                                |    4 
 offapi/com/sun/star/sheet/ExternalDocLink.idl                              |    2 
 offapi/com/sun/star/sheet/ExternalDocLinks.idl                             |    2 
 offapi/com/sun/star/sheet/ExternalLinkInfo.idl                             |    2 
 offapi/com/sun/star/sheet/ExternalLinkType.idl                             |    2 
 offapi/com/sun/star/sheet/ExternalSheetCache.idl                           |    2 
 offapi/com/sun/star/sheet/FormulaParser.idl                                |    2 
 offapi/com/sun/star/sheet/SheetCell.idl                                    |    2 
 offapi/com/sun/star/sheet/SheetCellRange.idl                               |    2 
 offapi/com/sun/star/sheet/TablePageStyle.idl                               |    4 
 offapi/com/sun/star/sheet/XActivationBroadcaster.idl                       |    2 
 offapi/com/sun/star/sheet/XActivationEventListener.idl                     |    2 
 offapi/com/sun/star/sheet/XDataPilotTable2.idl                             |    2 
 offapi/com/sun/star/sheet/XDrillDownDataSupplier.idl                       |    2 
 offapi/com/sun/star/sheet/XEnhancedMouseClickBroadcaster.idl               |    2 
 offapi/com/sun/star/sheet/XExternalDocLink.idl                             |    2 
 offapi/com/sun/star/sheet/XExternalDocLinks.idl                            |    2 
 offapi/com/sun/star/sheet/XExternalSheetCache.idl                          |    2 
 offapi/com/sun/star/sheet/XScenarioEnhanced.idl                            |    2 
 offapi/com/sun/star/smarttags/SmartTagAction.idl                           |    2 
 offapi/com/sun/star/smarttags/SmartTagRecognizer.idl                       |    2 
 offapi/com/sun/star/smarttags/SmartTagRecognizerMode.idl                   |    2 
 offapi/com/sun/star/smarttags/XSmartTagAction.idl                          |    2 
 offapi/com/sun/star/smarttags/XSmartTagRecognizer.idl                      |    2 
 offapi/com/sun/star/style/CharacterProperties.idl                          |    2 
 offapi/com/sun/star/style/NumberingType.idl                                |    2 
 offapi/com/sun/star/task/XRestartManager.idl                               |    2 
 offapi/com/sun/star/text/BaseFrameProperties.idl                           |    2 
 offapi/com/sun/star/text/Cell.idl                                          |    2 
 offapi/com/sun/star/text/DocumentSettings.idl                              |    8 
 offapi/com/sun/star/text/FootnoteSettings.idl                              |    2 
 offapi/com/sun/star/text/GenericTextDocument.idl                           |   18 
 offapi/com/sun/star/text/LineNumberingProperties.idl                       |    2 
 offapi/com/sun/star/text/Paragraph.idl                                     |    2 
 offapi/com/sun/star/text/PositionLayoutDir.idl                             |    2 
 offapi/com/sun/star/text/RelOrientation.idl                                |    2 
 offapi/com/sun/star/text/Shape.idl                                         |   10 
 offapi/com/sun/star/text/TextMarkupType.idl                                |    2 
 offapi/com/sun/star/text/TextPortion.idl                                   |    2 
 offapi/com/sun/star/text/TextTableRow.idl                                  |    2 
 offapi/com/sun/star/text/ViewSettings.idl                                  |   20 
 offapi/com/sun/star/text/XTextMarkup.idl                                   |    2 
 offapi/com/sun/star/text/fieldmaster/Database.idl                          |    4 
 offapi/com/sun/star/text/textfield/DatabaseName.idl                        |    4 
 offapi/com/sun/star/text/textfield/DatabaseNextSet.idl                     |    4 
 offapi/com/sun/star/text/textfield/DatabaseNumberOfSet.idl                 |    4 
 offapi/com/sun/star/text/textfield/DatabaseSetNumber.idl                   |    4 
 offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl              |    2 
 offapi/com/sun/star/ucb/TransientDocumentsDocumentContent.idl              |    2 
 offapi/com/sun/star/ucb/TransientDocumentsFolderContent.idl                |    2 
 offapi/com/sun/star/ucb/TransientDocumentsRootContent.idl                  |    2 
 offapi/com/sun/star/ucb/TransientDocumentsStreamContent.idl                |    2 
 offapi/com/sun/star/ui/ConfigurableUIElement.idl                           |    2 
 offapi/com/sun/star/ui/ConfigurationEvent.idl                              |    2 
 offapi/com/sun/star/ui/DockingArea.idl                                     |    2 
 offapi/com/sun/star/ui/GlobalAcceleratorConfiguration.idl                  |    2 
 offapi/com/sun/star/ui/ImageType.idl                                       |    2 
 offapi/com/sun/star/ui/ItemDescriptor.idl                                  |    2 
 offapi/com/sun/star/ui/ItemStyle.idl                                       |    2 
 offapi/com/sun/star/ui/ItemType.idl                                        |    2 
 offapi/com/sun/star/ui/ModuleUICategoryDescription.idl                     |    2 
 offapi/com/sun/star/ui/ModuleUICommandDescription.idl                      |    2 
 offapi/com/sun/star/ui/ModuleUIConfigurationManager.idl                    |    2 
 offapi/com/sun/star/ui/ModuleUIConfigurationManagerSupplier.idl            |    2 
 offapi/com/sun/star/ui/ModuleWindowStateConfiguration.idl                  |    2 
 offapi/com/sun/star/ui/UICategoryDescription.idl                           |    2 
 offapi/com/sun/star/ui/UICommandDescription.idl                            |    2 
 offapi/com/sun/star/ui/UIConfigurationManager.idl                          |    2 
 offapi/com/sun/star/ui/UIElement.idl                                       |    2 
 offapi/com/sun/star/ui/UIElementFactory.idl                                |    2 
 offapi/com/sun/star/ui/UIElementFactoryManager.idl                         |    2 
 offapi/com/sun/star/ui/UIElementSettings.idl                               |    2 
 offapi/com/sun/star/ui/UIElementType.idl                                   |    2 
 offapi/com/sun/star/ui/WindowContentFactory.idl                            |    2 
 offapi/com/sun/star/ui/WindowStateConfiguration.idl                        |    2 
 offapi/com/sun/star/ui/XAcceleratorConfiguration.idl                       |    2 
 offapi/com/sun/star/ui/XDockingAreaAcceptor.idl                            |    2 
 offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl                   |    2 
 offapi/com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl           |    2 
 offapi/com/sun/star/ui/XUIConfiguration.idl                                |    2 
 offapi/com/sun/star/ui/XUIConfigurationListener.idl                        |    2 
 offapi/com/sun/star/ui/XUIConfigurationManager.idl                         |    2 
 offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl                 |    2 
 offapi/com/sun/star/ui/XUIConfigurationPersistence.idl                     |    2 
 offapi/com/sun/star/ui/XUIConfigurationStorage.idl                         |    2 
 offapi/com/sun/star/ui/XUIElementFactory.idl                               |    2 
 offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl                   |    2 
 offapi/com/sun/star/ui/XUIElementSettings.idl                              |    2 
 offapi/com/sun/star/ui/XUIFunctionListener.idl                             |    2 
 offapi/com/sun/star/util/Endianness.idl                                    |    2 
 offapi/com/sun/star/util/OfficeInstallationDirectories.idl                 |    2 
 offapi/com/sun/star/util/PathSubstitution.idl                              |   82 
 offapi/com/sun/star/util/XBroadcaster.idl                                  |    2 
 offapi/com/sun/star/util/XOfficeInstallationDirectories.idl                |    2 
 offapi/com/sun/star/xml/dom/XNode.idl                                      |    2 
 offapi/drafts/com/sun/star/form/IncompatibleTypesException.idl             |   57 
 offapi/drafts/com/sun/star/form/ListEntryEvent.idl                         |   77 
 offapi/drafts/com/sun/star/form/XBindableValue.idl                         |   81 
 offapi/drafts/com/sun/star/form/XListEntryListener.idl                     |   92 
 offapi/drafts/com/sun/star/form/XListEntrySink.idl                         |   71 
 offapi/drafts/com/sun/star/form/XListEntrySource.idl                       |  103 
 offapi/drafts/com/sun/star/form/XValueBinding.idl                          |  101 
 offapi/drafts/com/sun/star/form/makefile.mk                                |   52 
 offapi/prj/build.lst                                                       |    3 
 offapi/prj/d.lst                                                           |    8 
 offapi/type_reference/typelibrary_history.txt                              |    5 
 offapi/type_reference/types.rdb                                            |binary
 offapi/util/makefile.mk                                                    |    1 
 registry/tools/checksingleton.cxx                                          |  462 +-
 registry/tools/fileurl.cxx                                                 |   90 
 registry/tools/fileurl.hxx                                                 |   43 
 registry/tools/makefile.mk                                                 |   18 
 registry/tools/options.cxx                                                 |  153 
 registry/tools/options.hxx                                                 |   67 
 registry/tools/rdbedit.cxx                                                 |  318 ++
 registry/tools/regcompare.cxx                                              | 1562 ++++------
 registry/tools/regmerge.cxx                                                |  280 -
 registry/tools/regview.cxx                                                 |   72 
 sal/cppunittester/cppunittester.cxx                                        |   95 
 sal/inc/cppunittester/protectorfactory.hxx                                 |   45 
 sal/osl/os2/diagnose.c                                                     |    3 
 sal/osl/unx/diagnose.c                                                     |   15 
 sal/osl/unx/file.cxx                                                       |    3 
 sal/osl/unx/file_misc.cxx                                                  |    6 
 sal/osl/unx/file_path_helper.cxx                                           |   76 
 sal/osl/unx/process_impl.cxx                                               |   19 
 sal/osl/unx/profile.c                                                      |    1 
 sal/osl/unx/socket.c                                                       |   13 
 sal/osl/w32/diagnose.c                                                     |   68 
 sal/osl/w32/file_dirvol.cxx                                                |    2 
 sal/osl/w32/module.cxx                                                     |   23 
 sal/osl/w32/procimpl.cxx                                                   |   39 
 sal/prj/d.lst                                                              |    3 
 sal/rtl/source/alloc_arena.c                                               |   37 
 sal/rtl/source/alloc_cache.c                                               |   53 
 sal/rtl/source/alloc_fini.cxx                                              |   58 
 sal/rtl/source/alloc_global.c                                              |    2 
 sal/rtl/source/alloc_impl.h                                                |   24 
 sal/rtl/source/makefile.mk                                                 |    9 
 sal/rtl/source/memory_fini.cxx                                             |   57 
 store/source/lockbyte.cxx                                                  |    3 
 store/source/storbase.cxx                                                  |    3 
 udkapi/com/sun/star/container/XStringKeyMap.idl                            |    2 
 udkapi/com/sun/star/io/XAsyncOutputMonitor.idl                             |    2 
 udkapi/com/sun/star/java/InvalidJavaSettingsException.idl                  |    2 
 udkapi/com/sun/star/java/JavaNotFoundException.idl                         |    2 
 udkapi/com/sun/star/java/RestartRequiredException.idl                      |    2 
 udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl     |    2 
 udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl              |    2 
 udkapi/com/sun/star/reflection/XParameter.idl                              |    2 
 udkapi/com/sun/star/reflection/XPublished.idl                              |    2 
 udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl          |    2 
 udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl                |    2 
 udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl              |    2 
 udkapi/com/sun/star/reflection/XStructTypeDescription.idl                  |    2 
 udkapi/com/sun/star/script/BasicErrorException.idl                         |    2 
 udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl                 |    2 
 udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl                |    2 
 udkapi/com/sun/star/uri/UriReferenceFactory.idl                            |    2 
 udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl      |    2 
 udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl               |    2 
 udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl                |    2 
 udkapi/com/sun/star/uri/XUriReference.idl                                  |    2 
 udkapi/com/sun/star/uri/XUriReferenceFactory.idl                           |    2 
 udkapi/com/sun/star/uri/XUriSchemeParser.idl                               |    2 
 udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl              |    2 
 udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl                           |    2 
 unoil/climaker/version.txt                                                 |    6 
 unoil/util/makefile.mk                                                     |    2 
 403 files changed, 2927 insertions(+), 3145 deletions(-)

New commits:
commit 1be61e04c7901c5e2ddee6d55190359956ed58fe
Merge: ad669b8... 60c6889...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Wed Mar 23 17:13:53 2011 +0100

    Merge branch 'master' of git://anongit.freedesktop.org/libreoffice/ure

commit ad669b8d2356b1f53c11c33ccb51803fd3ea49fe
Merge: 5f3b360... c8b417d...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Wed Mar 23 16:59:59 2011 +0100

    Merge commit 'ooo/DEV300_m103'
    
    Conflicts:
    	codemaker/source/bonobowrappermaker/corbaoptions.cxx
    	codemaker/source/cppumaker/cppuoptions.cxx
    	codemaker/source/cunomaker/cunooptions.cxx
    	codemaker/source/idlmaker/idloptions.cxx
    	codemaker/source/javamaker/javaoptions.cxx
    	cppu/source/typelib/typelib.cxx
    	idlc/source/options.cxx
    	offapi/com/sun/star/util/PathSubstitution.idl
    	offapi/drafts/com/sun/star/form/ListEntryEvent.idl
    	offapi/drafts/com/sun/star/form/XBindableValue.idl
    	offapi/drafts/com/sun/star/form/XListEntryListener.idl
    	offapi/drafts/com/sun/star/form/XListEntrySink.idl
    	offapi/drafts/com/sun/star/form/XListEntrySource.idl
    	offapi/drafts/com/sun/star/form/XValueBinding.idl
    	registry/tools/checksingleton.cxx
    	registry/tools/options.hxx
    	registry/tools/regcompare.cxx
    	registry/tools/regmerge.cxx
    	sal/cppunittester/cppunittester.cxx
    	sal/osl/unx/socket.c
    	sal/osl/w32/diagnose.c
    	sal/prj/d.lst
    	sal/rtl/source/alloc_fini.cxx
    	sal/rtl/source/alloc_global.c
    	sal/rtl/source/makefile.mk

diff --cc codemaker/source/cppumaker/cppuoptions.cxx
index c44c99f,d3965fa..b746c0c
--- a/codemaker/source/cppumaker/cppuoptions.cxx
+++ b/codemaker/source/cppumaker/cppuoptions.cxx
@@@ -35,9 -34,14 +35,16 @@@
  #include "osl/thread.h"
  #include "osl/process.h"
  
 +using ::rtl::OUString;
 +using ::rtl::OUStringToOString;
 +using ::rtl::OString;
++
+ #ifdef SAL_UNX
+ #define SEPARATOR '/'
+ #else
+ #define SEPARATOR '\\'
+ #endif
+ 
 -using namespace rtl;
 -
  sal_Bool CppuOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) 
      throw( IllegalArgument )
  {
diff --cc codemaker/source/javamaker/javaoptions.cxx
index 62abb3c,a4aefb0..849bf51
--- a/codemaker/source/javamaker/javaoptions.cxx
+++ b/codemaker/source/javamaker/javaoptions.cxx
@@@ -34,9 -33,14 +34,16 @@@
  #include "osl/process.h"
  #include "osl/thread.h"
  
 +using ::rtl::OUString;
 +using ::rtl::OString;
 +using ::rtl::OUStringToOString;
++
+ #ifdef SAL_UNX
+ #define SEPARATOR '/'
+ #else
+ #define SEPARATOR '\\'
+ #endif
+ 
 -using namespace rtl;
 -
  sal_Bool JavaOptions::initOptions(int ac, char* av[], sal_Bool bCmdFile) 
      throw( IllegalArgument )
  {
diff --cc cppu/source/typelib/typelib.cxx
index e8d4a24,d29fa68..c5c5f53
--- a/cppu/source/typelib/typelib.cxx
+++ b/cppu/source/typelib/typelib.cxx
@@@ -342,37 -330,9 +342,24 @@@ TypeDescriptor_Init_Impl::~TypeDescript
          delete pWeakMap;
          pWeakMap = 0;
      }
- #ifndef CPPU_LEAK_STATIC_DATA
 +#if OSL_DEBUG_LEVEL > 1
- #define MYASSERT(x) if (x != 0) fprintf(stderr, "### "#x" = %d, should be zero!!!\n", x);
-     MYASSERT (nTypeDescriptionCount );
-     MYASSERT( nCompoundTypeDescriptionCount );
-     MYASSERT( nUnionTypeDescriptionCount );
-     MYASSERT( nIndirectTypeDescriptionCount );
-     MYASSERT( nArrayTypeDescriptionCount );
-     MYASSERT( nEnumTypeDescriptionCount );
-     MYASSERT( nInterfaceMethodTypeDescriptionCount );
-     MYASSERT( nInterfaceAttributeTypeDescriptionCount );
-     MYASSERT( nInterfaceTypeDescriptionCount );
-     MYASSERT( nTypeDescriptionReferenceCount );
- #undef MYASSERT
- 
-     OSL_ASSERT(	nTypeDescriptionCount == 0 );
-     OSL_ASSERT(	nCompoundTypeDescriptionCount == 0 );
-     OSL_ASSERT(	nUnionTypeDescriptionCount == 0 );
-     OSL_ASSERT(	nIndirectTypeDescriptionCount == 0 );
-     OSL_ASSERT(	nArrayTypeDescriptionCount == 0 );
-     OSL_ASSERT(	nEnumTypeDescriptionCount == 0 );
-     OSL_ASSERT(	nInterfaceMethodTypeDescriptionCount == 0 );
-     OSL_ASSERT(	nInterfaceAttributeTypeDescriptionCount == 0 );
-     OSL_ASSERT(	nInterfaceTypeDescriptionCount == 0 );
-     OSL_ASSERT( nTypeDescriptionReferenceCount == 0 );
- 
-     OSL_ASSERT( !pCallbacks || pCallbacks->empty() );
++    OSL_ENSURE( !nTypeDescriptionCount );
++    OSL_ENSURE( !nCompoundTypeDescriptionCount );
++    OSL_ENSURE( !nUnionTypeDescriptionCount );
++    OSL_ENSURE( !nIndirectTypeDescriptionCount );
++    OSL_ENSURE( !nArrayTypeDescriptionCount );
++    OSL_ENSURE( !nEnumTypeDescriptionCount );
++    OSL_ENSURE( !nInterfaceMethodTypeDescriptionCount );
++    OSL_ENSURE( !nInterfaceAttributeTypeDescriptionCount );
++    OSL_ENSURE( !nInterfaceTypeDescriptionCount );
++    OSL_ENSURE( !nTypeDescriptionReferenceCount );
++
++    OSL_ENSURE( !pCallbacks || pCallbacks->empty() );
 +#endif
++
      delete pCallbacks;
      pCallbacks = 0;
- #endif // CPPU_LEAK_STATIC_DATA
+ 
      if( pMutex )
      {
          delete pMutex;
diff --cc idlc/inc/idlc/idlctypes.hxx
index 834b8cc,9bbe72a..2bac20e
--- a/idlc/inc/idlc/idlctypes.hxx
+++ b/idlc/inc/idlc/idlctypes.hxx
@@@ -30,10 -29,12 +30,12 @@@
  
  #include <stdio.h>
  
 -#include <hash_map>
 +#include <boost/unordered_map.hpp>
  #include <list>
  #include <vector>
+ #include <string>
  #include <set>
+ 
  #include <sal/types.h>
  #include <rtl/ustring.hxx>
  
diff --cc idlc/source/options.cxx
index b78afe8,a967005..c17927e
--- a/idlc/source/options.cxx
+++ b/idlc/source/options.cxx
@@@ -29,12 -28,26 +29,25 @@@
  // MARKER(update_precomp.py): autogen include statement, do not remove
  #include "precompiled_idlc.hxx"
  
+ #include "idlc/options.hxx"
+ 
+ #include "osl/diagnose.h"
+ #include "rtl/string.hxx"
+ #include "rtl/strbuf.hxx"
+ 
  #include <stdio.h>
- #include /*MSVC trouble: <cstring>*/ <string.h>
- #include <idlc/options.hxx>
+ #include <string.h>
  
 -using rtl::OString;
 -using rtl::OStringBuffer;
 -
 +using ::rtl::OString;
- Options::Options(): m_stdin(false), m_verbose(false), m_quiet(false)
++using ::rtl::OStringBuffer;
+ #ifdef SAL_UNX
+ #define SEPARATOR '/'
+ #else
+ #define SEPARATOR '\\'
+ #endif
+ 
+ Options::Options(char const * progname)
+   : m_program(progname), m_stdin(false), m_verbose(false), m_quiet(false)
  {
  }	
  
@@@ -368,6 -387,6 +387,7 @@@ const OString& Options::getOption(cons
      {
          throw IllegalArgument("Option is not valid or currently not set.");
      }
+     return m_options[option];
  }
 -/* vi:set tabstop=4 shiftwidth=4 expandtab: */
 +
 +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl
index 9d062d1,dcd4105..e278777
--- a/offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl
+++ b/offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl
@@@ -164,10 -164,10 +164,10 @@@ published service UnoControlCurrencyFie
   
      //-------------------------------------------------------------------------
  
 -    /** specifies whether the mouse should show repeating behaviour, i.e.
 +    /** specifies whether the mouse should show repeating behavior, i.e.
          repeatedly trigger an action when keeping pressed.
  
-         @since OOo 2.0.0
+         @since OOo 2.0
       */
      [optional, property] boolean Repeat;
  
diff --cc offapi/com/sun/star/awt/UnoControlDateFieldModel.idl
index 84a9aa5,1f71ef9..960d4f0
--- a/offapi/com/sun/star/awt/UnoControlDateFieldModel.idl
+++ b/offapi/com/sun/star/awt/UnoControlDateFieldModel.idl
@@@ -198,10 -198,10 +198,10 @@@ published service UnoControlDateFieldMo
   
      //------------------------------------------------------------------------- 
  
 -    /** specifies whether the mouse should show repeating behaviour, i.e.
 +    /** specifies whether the mouse should show repeating behavior, i.e.
          repeatedly trigger an action when keeping pressed.
  
-         @since OOo 2.0.0
+         @since OOo 2.0
       */
      [optional, property] boolean Repeat;
  
@@@ -241,7 -241,7 +241,7 @@@
  
      /** specifies the text displayed in the control.
  
-         @since OOo 2.0.0    
 -        @since OOo 2.0    
++        @since OOo 2.0
       */
      [optional, property] string Text; 
  
diff --cc offapi/com/sun/star/awt/UnoControlEditModel.idl
index d819bf9,19b637d..aab83a1
--- a/offapi/com/sun/star/awt/UnoControlEditModel.idl
+++ b/offapi/com/sun/star/awt/UnoControlEditModel.idl
@@@ -69,19 -69,19 +69,19 @@@ published service UnoControlEditMode
   
      //------------------------------------------------------------------------- 
       
 -    /** If set to true an horizontal scrollbar will be added automaticly
 +    /** If set to true an horizontal scrollbar will be added automatically
          when needed.
  
-         @since OOo 2.3.0
+         @since OOo 2.3
       */
      [optional, property] boolean AutoHScroll;
      
      //-------------------------------------------------------------------------
  
 -    /** If set to true an vertical scrollbar will be added automaticly
 +    /** If set to true an vertical scrollbar will be added automatically
          when needed.
  
-         @since OOo 2.3.0
+         @since OOo 2.3
       */
      [optional, property] boolean AutoVScroll;
      
diff --cc offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl
index 2a9d518,f0cbcb6..bfa6b87
--- a/offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl
+++ b/offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl
@@@ -223,10 -223,10 +223,10 @@@ published service UnoControlFormattedFi
   
      //-------------------------------------------------------------------------
   
 -    /** specifies whether the mouse should show repeating behaviour, i.e.
 +    /** specifies whether the mouse should show repeating behavior, i.e.
          repeatedly trigger an action when keeping pressed.
  
-         @since OOo 2.0.0
+         @since OOo 2.0
       */
      [optional, property] boolean Repeat;
  
diff --cc offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl
index 33684cf,838e49e..43d2d09
--- a/offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl
+++ b/offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl
@@@ -152,10 -152,10 +152,10 @@@ published service UnoControlNumericFiel
   
      //------------------------------------------------------------------------- 
  
 -    /** specifies whether the mouse should show repeating behaviour, i.e.
 +    /** specifies whether the mouse should show repeating behavior, i.e.
          repeatedly trigger an action when keeping pressed.
  
-         @since OOo 2.0.0
+         @since OOo 2.0
       */
      [optional, property] boolean Repeat;
  
diff --cc offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl
index ca00598,e43c20c..fd62671
mode 100644,100755..100755
--- a/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl
+++ b/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl
diff --cc offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl
index fa67e98,effbbee..2cf1d8e
--- a/offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl
+++ b/offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl
@@@ -145,10 -145,10 +145,10 @@@ published service UnoControlTimeFieldMo
   
      //------------------------------------------------------------------------- 
  
 -    /** specifies whether the mouse should show repeating behaviour, i.e.
 +    /** specifies whether the mouse should show repeating behavior, i.e.
          repeatedly trigger an action when keeping pressed.
  
-         @since OOo 2.0.0
+         @since OOo 2.0
       */
      [optional, property] boolean Repeat;
  
diff --cc offapi/com/sun/star/deployment/XPackage.idl
index 0395a65,9fbd965..160c0f4
--- a/offapi/com/sun/star/deployment/XPackage.idl
+++ b/offapi/com/sun/star/deployment/XPackage.idl
@@@ -97,10 -97,10 +97,10 @@@ interface XPackag
    
      /** checks if the dependencies for this package are still satisfied
  
 -        After updateing the OpenOffice.org, some dependencies for packages might
 +        After updating the OpenOffice.org, some dependencies for packages might
          no longer be satisfied.
          
-         @since OOo 3.2.0
+         @since OOo 3.2
  
          @param xCmdEnv
                 command environment for error handling and other interaction.
diff --cc offapi/com/sun/star/form/XErrorListener.idl
index d529776,76b508c..18a75e9
--- a/offapi/com/sun/star/form/XErrorListener.idl
+++ b/offapi/com/sun/star/form/XErrorListener.idl
@@@ -48,10 -48,9 +48,9 @@@
      event is posted to the error listeners. This event may be used to
      configure the error handling of a database form.</p>
      
 -    <p>Please do <em><b>not</b></em> use anymore, this interface is superseeded
 +    <p>Please do <em><b>not</b></em> use anymore, this interface is superseded
      by <type scope="com::sun::star::sdb">XSQLErrorListener</type>.</p>
      
- @since foo
      @deprecated
   */
  published interface XErrorListener: com::sun::star::lang::XEventListener
diff --cc offapi/com/sun/star/frame/XPopupMenuController.idl
index cbfd143,59009ef1..510b2ea
--- a/offapi/com/sun/star/frame/XPopupMenuController.idl
+++ b/offapi/com/sun/star/frame/XPopupMenuController.idl
@@@ -38,17 -38,17 +38,17 @@@ module com { module sun { module star 
  
  //============================================================================= 
  
 -/** provides data to a popup menu controller implementation to
 -    fill and update a popup menu dynamically.
 +/** provides data to a pop-up menu controller implementation to
 +    fill and update a pop-up menu dynamically.
      
      <p>
 -    A popup menu controller gets a <type scope="com::sun::star::awt">XPopupMenu</type> 
 -    from its parent menu implementation. The controller has to fill this popup 
 +    A pop-up menu controller gets a <type scope="com::sun::star::awt">XPopupMenu</type>
 +    from its parent menu implementation. The controller has to fill this pop-up
      menu with a set of menu items and/or sub menus. The parent menu implementation 
 -    briefs the controller whenever the popup menu gets activated by a user.
 +    briefs the controller whenever the pop-up menu gets activated by a user.
      </p>
      
-     @since OOo 2.0.0
+     @since OOo 2.0
  */
  interface XPopupMenuController : com::sun::star::uno::XInterface
  {
diff --cc offapi/com/sun/star/geometry/AffineMatrix3D.idl
index 0460bd4,f697b2b..aebbd66
--- a/offapi/com/sun/star/geometry/AffineMatrix3D.idl
+++ b/offapi/com/sun/star/geometry/AffineMatrix3D.idl
@@@ -63,11 -63,11 +63,11 @@@ module com {  module sun {  module sta
      physical dimensions attached to them. This physical measurement
      units are typically only added when using these data types to
      render something onto a physical output device. For 3D coordinates
 -    there is also a projection from 3D to 2D device coordiantes needed.
 -    Only then the total transformation matrix (oncluding projection to 2D)
 +    there is also a projection from 3D to 2D device coordinates needed.
 +    Only then the total transformation matrix (including projection to 2D)
      and the device resolution determine the actual measurement unit in 3D.<p>
  
-     @since OOo 2.0.0
+     @since OOo 2.0
   */
  struct AffineMatrix3D
  {
diff --cc offapi/com/sun/star/i18n/TextConversionOption.idl
index 2b4cc75,e6ca352..89ad811
--- a/offapi/com/sun/star/i18n/TextConversionOption.idl
+++ b/offapi/com/sun/star/i18n/TextConversionOption.idl
@@@ -57,9 -57,9 +57,9 @@@ published constants TextConversionOptio
      const long	IGNORE_POST_POSITIONAL_WORD 	= 2;	// (1 << 1)
  
      /** Use Taiwan, HongKong SAR, and Macao SAR character variants for 
 -        Simplified to Traditionary Chinese conversion
 +        Simplified to Traditional Chinese conversion
  
-         @since OOo 2.0.0
+         @since OOo 2.0
      */
      const long	USE_CHARACTER_VARIANTS 	        = 2;	// (1 << 1)
  };
diff --cc offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl
index b568e7b,42c3262..05b3da0
--- a/offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl
+++ b/offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl
@@@ -42,9 -42,9 +42,9 @@@ constants ConversionDictionaryTyp
      */
      const short HANGUL_HANJA        = 1;
  
 -    /** Dictionary type for the conversion between Simplified and Traditionary Chinese
 +    /** Dictionary type for the conversion between Simplified and Traditional Chinese
  
-         @since OOo 2.0.0
+         @since OOo 2.0
      */
      const short SCHINESE_TCHINESE   = 2;
  };
diff --cc offapi/com/sun/star/script/browse/BrowseNode.idl
index b7e3090,899d7af..899d7af
mode 100644,100755..100644
--- a/offapi/com/sun/star/script/browse/BrowseNode.idl
+++ b/offapi/com/sun/star/script/browse/BrowseNode.idl
diff --cc offapi/com/sun/star/script/browse/BrowseNodeFactory.idl
index 62113f0,b0cf650..b0cf650
mode 100644,100755..100644
--- a/offapi/com/sun/star/script/browse/BrowseNodeFactory.idl
+++ b/offapi/com/sun/star/script/browse/BrowseNodeFactory.idl
diff --cc offapi/com/sun/star/sheet/XActivationEventListener.idl
index c9ca498,56bb09d..99786f9
--- a/offapi/com/sun/star/sheet/XActivationEventListener.idl
+++ b/offapi/com/sun/star/sheet/XActivationEventListener.idl
@@@ -58,9 -58,9 +58,9 @@@ published interface XActivationEventLis
              the event that gives further information on which Spreadsheet is active now.
  
          @see ActivationEvent
 -        @see XSpreadsheetViewEventProvieder
 +        @see XSpreadsheetViewEventProvider
  
-         @since OOo 2.0.0
+         @since OOo 2.0
  
       */
      void activeSpreadsheetChanged( [in] com::sun::star::sheet::ActivationEvent aEvent );
diff --cc offapi/com/sun/star/text/LineNumberingProperties.idl
index 9d11901,8a2ff0e..352997c
--- a/offapi/com/sun/star/text/LineNumberingProperties.idl
+++ b/offapi/com/sun/star/text/LineNumberingProperties.idl
@@@ -101,9 -101,9 +101,9 @@@ published service LineNumberingProperti
      /** specifies if the line numbering should start from the
          beginning at each page.
  
 -        <p>If set to <FALSE/> the line numbering will be continous.</p>
 +        <p>If set to <FALSE/> the line numbering will be continuous.</p>
  
-         @since OOo 2.0.0
+         @since OOo 2.0
       */
      [optional, property] boolean RestartAtEachPage;
  
diff --cc offapi/com/sun/star/ui/ItemType.idl
index a8ca89f,45d6fe7..836a7e9
--- a/offapi/com/sun/star/ui/ItemType.idl
+++ b/offapi/com/sun/star/ui/ItemType.idl
@@@ -29,9 -29,9 +29,9 @@@
  
  module com {  module sun {  module star {  module ui {
  
 -/** Determins the type of an item.
 +/** Determines the type of an item.
      
-     @since OOo 2.0.0
+     @since OOo 2.0
   */
  constants ItemType
  {
diff --cc offapi/com/sun/star/ui/UIConfigurationManager.idl
index e7f6a84,d89334c..bdf6b4c
--- a/offapi/com/sun/star/ui/UIConfigurationManager.idl
+++ b/offapi/com/sun/star/ui/UIConfigurationManager.idl
@@@ -50,9 -50,9 +50,9 @@@
  module com { module sun { module star { module ui { 
  
  /** specifies a user interface configuration manager which controls
 -    all customizeable user interface elements of an object.
 +    all customizable user interface elements of an object.
      
-     @since OOo 2.0.0
+     @since OOo 2.0
  */
  
  service UIConfigurationManager
diff --cc offapi/com/sun/star/util/OfficeInstallationDirectories.idl
index 06b9665,027f7ec..302330f
--- a/offapi/com/sun/star/util/OfficeInstallationDirectories.idl
+++ b/offapi/com/sun/star/util/OfficeInstallationDirectories.idl
@@@ -48,9 -48,9 +48,9 @@@ module com {  module sun {  module sta
      persistent and re-read later. In many cases, storing the reference
      directly would destroy the relocatability of an office installation and the
      possibility to share one office user data directory among parallel office
 -    installtions.
 +    installations.
  
-     @since OOo 2.0.0
+     @since OOo 2.0
   */
  published service OfficeInstallationDirectories
  {
diff --cc offapi/com/sun/star/util/PathSubstitution.idl
index bc3aaa4,5cc8a79..03a1671
--- a/offapi/com/sun/star/util/PathSubstitution.idl
+++ b/offapi/com/sun/star/util/PathSubstitution.idl
@@@ -48,57 -48,65 +48,65 @@@ module com {  module sun {  module sta
  
  /** A service to support the substitution and resubstitution of path variables.
  
-     <p>
-     A path variable must be specified with the following syntax: "$("&lt;variable-name&gt;")".
-     Path variables are not case sensitive and are always provided as a UCB-compliant URLs
-     (for example: "file:///c:/temp" or "file:///usr/install"). This is mandatory to support an
-     optional remote file system.<br>
-     A user defined list of path variables is supported. This list is stored	in the Office
-     configuration file (org/openoffice/Office/Substitution.xml). Please have a 	look at the
-     schema definition file which configuration structure this file uses.<br>
-     There is also a set of variables that have pre-defined values:
-     </p>
-     <dl>
-     <dt>$(inst)</dt>
-     <dd>Installation path of the Office Basis layer.</dd>
-     <dt>$(prog)</dt>
-     <dd>Program path of the Office Basis layer.</dd>
+         <p>
 -        A path variable must be specified with the following synatx: "$("&lt;variable-name&gt;")".
 -        Path variables are not case sensitive and are always provided as a UCB-complient URL's
++        A path variable must be specified with the following syntax: "$("&lt;variable-name&gt;")".
++        Path variables are not case sensitive and are always provided as a UCB-compliant URLs
+         (for example: "file:///c:/temp" or "file:///usr/install"). This is mandatory to support an
+         optional remote file system.<br>
+         A user defined list of path variables is supported. This list is stored in the Office
+         configuration file (org/openoffice/Office/Substitution.xml). Please have a look at the
+         schema definition file which configuration structure this file uses.<br>
+         There is also a set of variables that have pre-defined values:
+         </p>
+         <dl>
+         <dt>$(inst)</dt>
+         <dd>Installation path of the Office Basis layer.</dd>
+         <dt>$(prog)</dt>
+         <dd>Program path of the Office Basis layer.</dd>
      <dt>$(brandbaseurl)</dt>
      <dd>Installation path of the the Office Brand layer.</dd>
-     <dt>$(user)</dt>
-     <dd>The user installation directory.</dd>
-     <dt>$(work)</dt>
-     <dd>The work directory of the user. Under Windows this would be the
-     "MyDocuments" subdirectory. Under Unix this would be the home-directory</dd>
+         <dt>$(user)</dt>
+         <dd>The user installation directory.</dd>
+         <dt>$(work)</dt>
+         <dd>The work directory of the user. Under Windows this would be the
+         "MyDocuments" subdirectory. Under Unix this would be the home-directory</dd>
      <dt>$(home)</dt>
-     <dd>The home directory of the user. Under Unix this would be the home-
-         directory. Under Windows this would be the "Documents and Settings\<username>"
-         subdirectory.</dd>
+         <dd>The home directory of the user. Under Unix this would be the home-
+             directory. Under Windows this would be the "Documents and Settings\<username>"
+          subdirectory.</dd>
      <dt>$(temp)</dt>
-     <dd>The current temporary directory.</dd>
+         <dd>The current temporary directory.</dd>
      <dt>$(path)</dt>
-     <dd>The value of PATH environment variable.</dd>
+         <dd>The value of PATH environment variable.</dd>
      <dt>$(lang)</dt>
-     <dd>The country code used by the Office, like 01=English, 49=German.</dd>
-     <dt>$(langid)</dt>
-     <dd>The language code used by the Office, like 0x0009=English, 0x0409=English US.</dd>
 -        <dd>The country code used by the Office, like 01=english, 49=german.</dd>
++        <dd>The country code used by the Office, like 01=English, 49=German.</dd>
+         <dt>$(langid)</dt>
 -        <dd>The language code used by the Office, like 0x0009=english, 0x0409=english us.</dd>
++        <dd>The language code used by the Office, like 0x0009=English, 0x0409=English US.</dd>
      <dt>$(vlang)</dt>
-     <dd>The language used by the Office as a string. Like "German" for a German Office.</dd>
-     </dl>
 -        <dd>The language used by the Office as a string. Like "german" for a german Office.</dd>
++        <dd>The language used by the Office as a string. Like "German" for a German Office.</dd>
+         </dl>
+         <p>
+         Attention: Most predefined variables describe an absolute path.
+         The only exceptions are: $(lang), $(langid) and $(vlang). 
+         Therefore the service implementation should only substitute variables which
+         are located at the start of a provided path string or are part of a multi-path. 
+         This special service is not designed to be a text substiution but shall
+         provide (a) valid substituted path(s).
+         </p>
  
      @since OOo 1.1.2
  */
  
  published service PathSubstitution
  {
-     //-------------------------------------------------------------------------
-     /** Interface to exchange path variables with defined paths and to resubstitute paths with path variables.
+         //-------------------------------------------------------------------------
+         /** Interface to exchange path variables with defined paths and to resubstitute paths with path variables.
  
-         <p>
-         To resubstitute path variables the caller must provide paths as UCB-compliant URLs.
-         </p>
-     */
-     interface com::sun::star::util::XStringSubstitution;
+                 <p>
 -                To resubstitute path variables the caller must provide pathes as UCB-compliant URL's.
++                To resubstitute path variables the caller must provide paths as UCB-compliant URLs.
+                 </p>
+         */
+         interface com::sun::star::util::XStringSubstitution;
  };
  
  //=============================================================================
diff --cc offapi/com/sun/star/util/XBroadcaster.idl
index 6ab7759,3344350..9fdcabd
--- a/offapi/com/sun/star/util/XBroadcaster.idl
+++ b/offapi/com/sun/star/util/XBroadcaster.idl
@@@ -37,9 -37,9 +37,9 @@@ module com {  module sun {  module sta
   
  //============================================================================= 
   
 -/** allows to control notification behaviour of a broadcaster.
 +/** allows to control notification behavior of a broadcaster.
      
-     @since 3.0
+     @since OOo 3.0
   */
  interface XBroadcaster: com::sun::star::uno::XInterface
  { 
diff --cc registry/tools/checksingleton.cxx
index 2286650,f1a50d7..586a74e
--- a/registry/tools/checksingleton.cxx
+++ b/registry/tools/checksingleton.cxx
@@@ -445,14 -306,15 +307,15 @@@ int _cdecl main( int argc, char * argv[
          typeKey = typeRoot;
      }
          
+     RegistryKey singletonKey;
 -    if ( indexRoot.createKey(OUString::createFromAscii("SINGLETONS"), singletonKey) )
 +    if ( indexRoot.createKey(OUString(RTL_CONSTASCII_USTRINGPARAM("SINGLETONS")), singletonKey) )
      {
          fprintf(stderr, "%s: open/create SINGLETONS key of registry \"%s\" failed\n",
-                 options.getProgramName().getStr(), options.getIndexReg().getStr());
-         exit(7);
+                 options.getProgramName().c_str(), options.getIndexReg().c_str());
+         return (7);
      }
  
-     sal_Bool bSingletonsExist = checkSingletons(singletonKey, typeKey);
+     sal_Bool bSingletonsExist = checkSingletons(options, singletonKey, typeKey);
  
      indexRoot.releaseKey();
      typeRoot.releaseKey();
@@@ -476,10 -338,7 +339,9 @@@
      if ( typeReg.close() )
      {
          fprintf(stderr, "%s: closing registry \"%s\" failed\n",
-                 options.getProgramName().getStr(), options.getTypeReg().getStr());
-         exit(11);
+                 options.getProgramName().c_str(), options.getTypeReg().c_str());
+         return (11);
      }
  }
 +
- 
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc registry/tools/regcompare.cxx
index 5668525,d283c63..9c27ee4
--- a/registry/tools/regcompare.cxx
+++ b/registry/tools/regcompare.cxx
@@@ -2390,12 -2082,9 +2083,11 @@@ int _cdecl main( int argc, char * argv[
      if ( reg2.close() )
      {
          fprintf(stdout, "%s: closing registry \"%s\" failed\n",
-                 options.getProgramName().getStr(), options.getRegName2().getStr());
-         exit(10);
+                 options.getProgramName().c_str(), options.getRegName2().c_str());
+         return (10);
      }
  
-     return nError > 0 ? 11 : 0;
+     return ((nError > 0) ? 11 : 0);
  }
 +
- 
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc registry/tools/regmerge.cxx
index c95ee72,409ceb5..b947f39
--- a/registry/tools/regmerge.cxx
+++ b/registry/tools/regmerge.cxx
@@@ -229,56 -131,49 +132,51 @@@ int _cdecl main( int argc, char * argv[
      }
  
      RegistryKey rootKey;
-     if (reg.openRootKey(rootKey) == REG_NO_ERROR)
+     if (reg.openRootKey(rootKey) != REG_NO_ERROR)
      {
-         ::rtl::OUString mergeKeyName( ::rtl::OUString::createFromAscii(realargv[2]) );
-         ::rtl::OUString targetRegName;
-         for (int i = 3; i < realargc; i++)
+         if (options.isVerbose())
+             fprintf(stderr, "open root key of registry \"%s\" failed\n", args[0].c_str());
+         return (-4);
+     }
+ 
+     OUString mergeKeyName( OUString::createFromAscii(args[1].c_str()) );
+     for (size_t i = 2; i < args.size(); i++)
+     {
+         OUString targetRegName( convertToFileUrl(args[i].c_str(), args[i].size()) );
+         RegError _ret = reg.mergeKey(rootKey, mergeKeyName, targetRegName, sal_False, options.isVerbose());
+         if (_ret != REG_NO_ERROR)
          {
-             targetRegName = convertToFileUrl(realargv[i]);
-             RegError _ret = reg.mergeKey(rootKey, mergeKeyName, targetRegName, sal_False, bVerbose);
-             if (_ret != REG_NO_ERROR)
-             {
-                 if (_ret == REG_MERGE_CONFLICT)
-                 {
-                     if (bVerbose)
-                         fprintf(stderr, "merging registry \"%s\" under key \"%s\" in registry \"%s\".\n",
-                                 realargv[i], realargv[2], realargv[1]);
-                 } else
-                 {
-                     if (bVerbose)
-                         fprintf(stderr, "ERROR: merging registry \"%s\" under key \"%s\" in registry \"%s\" failed.\n",
-                                 realargv[i], realargv[2], realargv[1]);
-                     exit(-2);
-                 }
-             } else
+             if (_ret == REG_MERGE_CONFLICT)
              {
-                 if (bVerbose)
+                 if (options.isVerbose())
                      fprintf(stderr, "merging registry \"%s\" under key \"%s\" in registry \"%s\".\n",
-                             realargv[i], realargv[2], realargv[1]);
+                             args[i].c_str(), args[1].c_str(), args[0].c_str());
+             }
+             else
+             {
+                 if (options.isVerbose())
+                     fprintf(stderr, "ERROR: merging registry \"%s\" under key \"%s\" in registry \"%s\" failed.\n",
+                             args[i].c_str(), args[1].c_str(), args[0].c_str());
+                 return (-2);
              }
          }
- 
-         rootKey.releaseKey();
-     } else
-     {
-         if (bVerbose)
-             fprintf(stderr, "open root key of registry \"%s\" failed\n",
-                     realargv[1]);
-         exit(-4);
+         else
+         {
+             if (options.isVerbose())
+                 fprintf(stderr, "merging registry \"%s\" under key \"%s\" in registry \"%s\".\n",
+                         args[i].c_str(), args[1].c_str(), args[0].c_str());
+         }
      }
  
+     rootKey.releaseKey();
      if (reg.close() != REG_NO_ERROR)
      {
-         if (bVerbose)
-             fprintf(stderr, "closing registry \"%s\" failed\n", realargv[1]);
-         cleanCommandArgs();
-         exit(-5);
+         if (options.isVerbose())
+             fprintf(stderr, "closing registry \"%s\" failed\n", args[0].c_str());
+         return (-5);
      }
  
-     cleanCommandArgs();
      return(0);
  }
 +
- 
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc sal/cppunittester/cppunittester.cxx
index 87d2501,c89a350..dd3d724
--- a/sal/cppunittester/cppunittester.cxx
+++ b/sal/cppunittester/cppunittester.cxx
@@@ -29,13 -28,24 +29,27 @@@
  #include "precompiled_sal.hxx"
  #include "sal/config.h"
  
- #include <cstdlib>
- #include <iostream>
- 
 +#ifdef WNT
 +#include <windows.h>
 +#endif
 +
+ #include <cstdlib>
+ #include <iostream>
+ #include <limits>
+ #include <string>
+ 
+ #include "cppunittester/protectorfactory.hxx"
+ #include "osl/module.h"
+ #include "osl/module.hxx"
+ #include "osl/thread.h"
+ #include "rtl/process.h"
+ #include "rtl/string.h"
+ #include "rtl/string.hxx"
+ #include "rtl/textcvt.h"
+ #include "rtl/ustring.hxx"
+ #include "sal/main.h"
+ #include "sal/types.h"
+ 
 -#include "preextstl.h"
  #include "cppunit/CompilerOutputter.h"
  #include "cppunit/TestResult.h"
  #include "cppunit/TestResultCollector.h"
@@@ -43,47 -53,88 +57,92 @@@
  #include "cppunit/extensions/TestFactoryRegistry.h"
  #include "cppunit/plugin/PlugInManager.h"
  #include "cppunit/portability/Stream.h"
- #include "osl/thread.h"
- #include "rtl/process.h"
- #include "rtl/string.hxx"
- #include "rtl/ustring.hxx"
- #include "sal/main.h"
 -#include "postextstl.h"
  
- SAL_IMPLEMENT_MAIN()
- {
+ namespace {
+ 
+ void usageFailure() {
+     std::cerr
+         << ("Usage: cppunittester (--protector <shared-library-path>"
+             " <function-symbol>)* <shared-library-path>")
+         << std::endl;
+     std::exit(EXIT_FAILURE);
+ }
+ 
+ rtl::OUString getArgument(sal_Int32 index) {
+     rtl::OUString arg;
+     rtl_getAppCommandArg(index, &arg.pData);
+     return arg;
+ }
+ 
+ std::string convertLazy(rtl::OUString const & s16) {
+     rtl::OString s8(rtl::OUStringToOString(s16, osl_getThreadTextEncoding()));
+     return std::string(
+         s8.getStr(),
+         ((static_cast< sal_uInt32 >(s8.getLength())
+           > std::numeric_limits< std::string::size_type >::max())
+          ? std::numeric_limits< std::string::size_type >::max()
+          : static_cast< std::string::size_type >(s8.getLength())));
+ }
  
 -std::string convertStrict(rtl::OUString const & s16) {
 -    rtl::OString s8;
 -    if (!s16.convertToString(
 -            &s8, osl_getThreadTextEncoding(),
 -            (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
 -             | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR))
 -        || (static_cast< sal_uInt32 >(s8.getLength())
 -            > std::numeric_limits< std::string::size_type >::max()))
 -    {
 -        std::cerr
 -            << "Failure converting argument from UTF-16 back to system encoding"
 -            << std::endl;
 -        std::exit(EXIT_FAILURE);
 -    }
 -    return std::string(
 -        s8.getStr(), static_cast< std::string::size_type >(s8.getLength()));
 -}
 -
+ }
+ 
+ SAL_IMPLEMENT_MAIN() {
 +#ifdef WNT
 +    //Disable Dr-Watson in order to crash simply without popup dialogs under
 +    //windows
 +    DWORD dwMode = SetErrorMode(SEM_NOGPFAULTERRORBOX);
 +    SetErrorMode(SEM_NOGPFAULTERRORBOX|dwMode);
 +#endif
 +
-     sal_uInt32 nCommandArgs = rtl_getAppCommandArgCount();
-     if (nCommandArgs < 1)
-     {
-         std::cerr << "Usage: cppunittester <shared-library-path>" << std::endl;
-         return EXIT_FAILURE;
+     CppUnit::TestResult result;
+     sal_uInt32 index = 0;
+     for (; index < rtl_getAppCommandArgCount(); index += 3) {
+         if (!getArgument(index).equalsAsciiL(
+                 RTL_CONSTASCII_STRINGPARAM("--protector")))
+         {
+             break;
+         }
+         if (rtl_getAppCommandArgCount() - index < 3) {
+             usageFailure();
+         }
+         rtl::OUString lib(getArgument(index + 1));
+         rtl::OUString sym(getArgument(index + 2));
+         oslGenericFunction fn = (new osl::Module(lib, SAL_LOADMODULE_GLOBAL))
+             ->getFunctionSymbol(sym);
+         CppUnit::Protector * p = fn == 0
+             ? 0
+             : (*reinterpret_cast< cppunittester::ProtectorFactory * >(fn))();
+         if (p == 0) {
+             std::cerr
+                 << "Failure instantiating protector \"" << convertLazy(lib)
+                 << "\", \"" << convertLazy(sym) << '"' << std::endl;
+             std::exit(EXIT_FAILURE);
+         }
+         result.pushProtector(p);
+     }
 -    if (rtl_getAppCommandArgCount() - index != 1) {
++    if (rtl_getAppCommandArgCount() - index < 1) {
+         usageFailure();
      }
++
 +    std::string testlib;
 +    {
 +        rtl::OUString path;
-         rtl_getAppCommandArg(0, &path.pData);
++        rtl_getAppCommandArg(index, &path.pData);
 +        testlib = rtl::OUStringToOString(path, osl_getThreadTextEncoding()).getStr();
 +    }
 +    std::string args = testlib;
-     for (sal_uInt32 i = 1; i < nCommandArgs; ++i)
++    for (sal_uInt32 i = index + 1; i < rtl_getAppCommandArgCount(); ++i)
 +    {
 +        rtl::OUString arg;
 +        rtl_getAppCommandArg(i, &arg.pData);
 +        args += ' ';
 +        args += rtl::OUStringToOString(arg, osl_getThreadTextEncoding()).getStr();
 +    }
++
      CppUnit::PlugInManager manager;
 -    manager.load(convertStrict(getArgument(index)));
 +    manager.load(testlib, args);
      CppUnit::TestRunner runner;
      runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
-     CppUnit::TestResult result;
      CppUnit::TestResultCollector collector;
      result.addListener(&collector);
      runner.run(result);
diff --cc sal/osl/unx/diagnose.c
index f337bef,b4baf64..30d15ad
--- a/sal/osl/unx/diagnose.c
+++ b/sal/osl/unx/diagnose.c
@@@ -309,5 -314,3 +315,5 @@@ void osl_trace(char const * pszFormat, 
      printTrace((unsigned long) getpid(), pszFormat, args);
      va_end(args);
  }
 +
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc sal/osl/w32/diagnose.c
index 563c8a7,0e1f1d8..93240e0
--- a/sal/osl/w32/diagnose.c
+++ b/sal/osl/w32/diagnose.c
@@@ -105,40 -106,44 +106,45 @@@ sal_Bool SAL_CALL osl_assertFailedLine(
          _pPrintDetailedDebugMessage( pszFileName, nLine, pszMessage );
      else if ( _pPrintDebugMessage )
          _pPrintDebugMessage( szMessage );
-     else if ( !getenv( "DISABLE_SAL_DBGBOX" ) )
+     else
      {
-         TCHAR	szBoxMessage[1024];
-         int     nCode;
- 
-         /* active popup window for the current thread */
-         hWndParent = GetActiveWindow();
-         if (hWndParent != NULL)
-             hWndParent = GetLastActivePopup(hWndParent);
- 
-         /* set message box flags */
-         nFlags = MB_TASKMODAL | MB_ICONWARNING | MB_YESNOCANCEL | MB_DEFBUTTON2 | MB_SETFOREGROUND;
-         if (hWndParent == NULL)
-             nFlags |= MB_SERVICE_NOTIFICATION;
- 
-         /* display the assert */
- 
-         szBoxMessage[sizeof(szBoxMessage)-1] = 0;
-         _snprintf(szBoxMessage, sizeof(szBoxMessage)-1, "%s\n( Yes=Abort / No=Ignore / Cancel=Debugger )",
-                    szMessage);
-         
-         nCode = MessageBox(hWndParent, szBoxMessage, "Assertion Failed!", nFlags);
-  
-         if (nCode == IDYES)
-             FatalExit(-1);
- 
-         if (nCode == IDNO)
-             return sal_False;   /* ignore */
- 
-         if (nCode == IDCANCEL)
-             return sal_True;    /* will cause oslDebugBreak */
+         if ( !getenv( "DISABLE_SAL_DBGBOX" ) )
+         {
+             TCHAR	szBoxMessage[1024];
++            int     nCode;
+ 
+             /* active popup window for the current thread */
+             hWndParent = GetActiveWindow();
+             if (hWndParent != NULL)
+                 hWndParent = GetLastActivePopup(hWndParent);
+ 
+             /* set message box flags */
+             nFlags = MB_TASKMODAL | MB_ICONWARNING | MB_YESNOCANCEL | MB_DEFBUTTON2 | MB_SETFOREGROUND;
+             if (hWndParent == NULL)
+                 nFlags |= MB_SERVICE_NOTIFICATION;
+ 
+             /* display the assert */
+ 
+             szBoxMessage[sizeof(szBoxMessage)-1] = 0;
+             _snprintf(szBoxMessage, sizeof(szBoxMessage)-1, "%s\n( Yes=Abort / No=Ignore / Cancel=Debugger )",
+                        szMessage);
+             
+             nCode = MessageBox(hWndParent, szBoxMessage, "Assertion Failed!", nFlags);
+      
+             if (nCode == IDYES)
+                 FatalExit(-1);
+ 
+             if (nCode == IDNO)
+                 return sal_False;   /* ignore */
+ 
+             if (nCode == IDCANCEL)
+                 return sal_True;    /* will cause oslDebugBreak */
+         }
+         return ( ( env != NULL ) && ( *env != '\0' ) );
      }
+ 
+     return sal_False;
  #endif /* NO_DEBUG_CRT */
-     return sal_False;  /* not sure, don't care */
  }
  
  sal_Int32 SAL_CALL osl_reportError(sal_uInt32 nType, const sal_Char* pszMessage)
diff --cc sal/osl/w32/module.cxx
index 1c35135,8fc1dbb..c7ce220
mode 100644,100755..100755
--- a/sal/osl/w32/module.cxx
+++ b/sal/osl/w32/module.cxx
diff --cc sal/osl/w32/procimpl.cxx
index e5ba9e0,4fad3f2..7cb2110
mode 100644,100755..100755
--- a/sal/osl/w32/procimpl.cxx
+++ b/sal/osl/w32/procimpl.cxx
diff --cc sal/prj/d.lst
index e685e59,253d7ea..8891d15
--- a/sal/prj/d.lst
+++ b/sal/prj/d.lst
@@@ -1,4 -1,4 +1,5 @@@
 +mkdir: %_DEST%\bin%_EXT%\cppunit
+ mkdir: %_DEST%\inc%_EXT%\cppunittester
  mkdir: %_DEST%\inc%_EXT%\sal
  mkdir: %_DEST%\inc%_EXT%\osl
  mkdir: %_DEST%\inc%_EXT%\rtl
diff --cc sal/rtl/source/alloc_fini.cxx
index 0000000,123073b..5bc174e
mode 000000,100755..100644
--- a/sal/rtl/source/alloc_fini.cxx
+++ b/sal/rtl/source/alloc_fini.cxx
@@@ -1,0 -1,55 +1,58 @@@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+ /*************************************************************************
+  *
+  * 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.
+  *
+  ************************************************************************/
+ 
+ /*
+   Issue http://udk.openoffice.org/issues/show_bug.cgi?id=92388
+ 
+   Mac OS X does not seem to support "__cxa__atexit", thus leading
+   to the situation that "__attribute__((destructor))__" functions
+   (in particular "rtl_{memory|cache|arena}_fini") become called
+   _before_ global C++ object d'tors.
+ 
+   Using a C++ dummy object instead.
+ */
+ 
+ extern "C" void rtl_memory_fini (void);
+ extern "C" void rtl_cache_fini (void);
+ extern "C" void rtl_arena_fini (void);
+ 
+ struct RTL_Alloc_Fini
+ {
+   ~RTL_Alloc_Fini() ;
+ };
+ 
+ RTL_Alloc_Fini::~RTL_Alloc_Fini()
+ {
+   rtl_memory_fini();
+   rtl_cache_fini();
+   rtl_arena_fini();
+ }
+ 
+ static RTL_Alloc_Fini g_RTL_Alloc_Fini;
++
++/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc sal/rtl/source/alloc_global.c
index 863e2ae,de550a7..70504ac
--- a/sal/rtl/source/alloc_global.c
+++ b/sal/rtl/source/alloc_global.c
@@@ -26,11 -25,13 +26,12 @@@
   *
   ************************************************************************/
  
 -#include "rtl/alloc.h"
+ #include "alloc_impl.h"
 +#include "rtl/alloc.h"
 +#include <sal/macros.h>
  
 -#ifndef INCLUDED_STRING_H
  #include <string.h>
 -#define INCLUDED_STRING_H
 -#endif
 +#include <stdio.h>
  
  #if !defined(FORCE_SYSALLOC)
  
@@@ -63,7 -41,10 +64,6 @@@ static void determine_alloc_mode(void
   *
   * ================================================================= */
  
- #include "alloc_impl.h"
 -#ifndef INCLUDED_STDIO_H
 -#include <stdio.h>
 -#define INCLUDED_STDIO_H
 -#endif
  #include "internal/once.h"
  #include "sal/macros.h"
  #include "osl/diagnose.h"
diff --cc sal/rtl/source/makefile.mk
index 3121f18,145aa50..67ae7f8
--- a/sal/rtl/source/makefile.mk
+++ b/sal/rtl/source/makefile.mk
@@@ -97,8 -100,8 +102,8 @@@ SLOFILES=   
              $(SLO)$/alloc_cache.obj \
              $(SLO)$/alloc_arena.obj
  
 -.IF "$(OS)"=="MACOSX"
 +.IF "$(OS)"=="MACOSX" || "$(OS)"=="AIX"
- SLOFILES+=$(SLO)$/memory_fini.obj
+ SLOFILES+=$(SLO)$/alloc_fini.obj
  .ENDIF
  
  
@@@ -129,8 -133,8 +134,8 @@@ OBJFILES=   
              $(OBJ)$/alloc_cache.obj \
              $(OBJ)$/alloc_arena.obj
  
 -.IF "$(OS)"=="MACOSX"
 +.IF "$(OS)"=="MACOSX" || "$(OS)"=="AIX"
- OBJFILES+=$(OBJ)$/memory_fini.obj
+ OBJFILES+=$(OBJ)$/alloc_fini.obj
  .ENDIF
  
  
commit c8b417d97c982736e9678264673a20d328cabd1f
Merge: 68f4c42... fc2bbcd...
Author: obo <obo at openoffice.org>
Date:   Wed Mar 16 10:11:17 2011 +0100

    CWS-TOOLING: integrate CWS jl164

commit 68f4c42f3d048ba763d3e8063c5372b338b54866
Merge: 9cc0e5c... 2d813aa...
Author: obo <obo at openoffice.org>
Date:   Wed Mar 16 08:29:30 2011 +0100

    CWS-TOOLING: integrate CWS debuglevels

commit 2d813aabb8d29ef66b46b06bd182c504769701f6
Merge: 2e5c4d6... 9cc0e5c...
Author: Frank Schoenheit [fs] <frank.schoenheit at oracle.com>
Date:   Mon Mar 14 09:47:56 2011 +0100

    debuglevels: pulled and merged DEV300.m102

diff --cc offapi/com/sun/star/deployment/XPackage.idl
index f93c8de,9fbd965..9fbd965
mode 100755,100755..100644
--- a/offapi/com/sun/star/deployment/XPackage.idl
+++ b/offapi/com/sun/star/deployment/XPackage.idl
commit 9cc0e5c3906692c2b34fbab5b5e8083fe8e5fb37
Merge: 60014d8... 3e38a54...
Author: Ivo Hinkelmann <ihi at openoffice.org>
Date:   Mon Mar 7 16:31:11 2011 +0100

    CWS-TOOLING: integrate CWS jsc340

diff --cc idlc/source/options.cxx
index 3b7dee9,84bba46..a967005
--- a/idlc/source/options.cxx
+++ b/idlc/source/options.cxx
@@@ -28,20 -28,19 +28,26 @@@
  // MARKER(update_precomp.py): autogen include statement, do not remove
  #include "precompiled_idlc.hxx"
  
 +#include "idlc/options.hxx"
 +
 +#include "osl/diagnose.h"
 +#include "rtl/string.hxx"
 +#include "rtl/strbuf.hxx"
 +
  #include <stdio.h>
 -#include /*MSVC trouble: <cstring>*/ <string.h>
 -#include <idlc/options.hxx>
 +#include <string.h>
 +
 +using rtl::OString;
 +using rtl::OStringBuffer;
  
+ #ifdef SAL_UNX
+ #define SEPARATOR '/'
+ #else
+ #define SEPARATOR '\\'
+ #endif
+ 
 -using namespace rtl;
 -
 -Options::Options(): m_stdin(false), m_verbose(false), m_quiet(false)
 +Options::Options(char const * progname)
 +  : m_program(progname), m_stdin(false), m_verbose(false), m_quiet(false)
  {
  }	
  
diff --cc offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl
index 05457b6,e43c20c..e43c20c
mode 100644,100644..100755
--- a/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl
+++ b/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl
diff --cc registry/tools/checksingleton.cxx
index 191af63,28715c2..f1a50d7
--- a/registry/tools/checksingleton.cxx
+++ b/registry/tools/checksingleton.cxx
@@@ -50,128 -94,231 +50,128 @@@ using namespace registry::tools
  #define S2U( s ) \
      OStringToOUString(s, RTL_TEXTENCODING_UTF8)
  
 -struct LessString
 -{
 -    sal_Bool operator()(const OUString& str1, const OUString& str2) const
 -    {
 -        return (str1 < str2);
 -    }
 -};
 -
 -class Options
 +class Options_Impl : public Options
  {
  public:
 -    Options()
 -        : m_bForceOutput(sal_False)
 +    explicit Options_Impl(char const * program)
 +        : Options (program), m_bForceOutput(false)
          {}
 -    ~Options()
 -        {}
 -    
 -    sal_Bool initOptions(int ac, char* av[], sal_Bool bCmdFile=sal_False);
  
 -    OString prepareHelp();
 -    OString prepareVersion();
 -    
 -    const OString& getProgramName()
 -        { return m_program; }
 -    const OString& getIndexReg()
 +    std::string const & getIndexReg() const
          { return m_indexRegName; }
 -    const OString& getTypeReg()
 +    std::string const & getTypeReg() const
          { return m_typeRegName; }
 -    sal_Bool hasBase()
 -        { return m_base.getLength() > 0; }
 -    const OString& getBase()
 +    bool hasBase() const
 +        { return (m_base.getLength() > 0); }
 +    const OString & getBase() const
          { return m_base; }
 -    sal_Bool forceOutput()
 +    bool forceOutput() const
          { return m_bForceOutput; }	
 +
  protected:
 -    OString		m_program;
 -    OString 	m_indexRegName;	
 -    OString 	m_typeRegName;	
 +    virtual void printUsage_Impl() const;
 +    virtual bool initOptions_Impl (std::vector< std::string > & rArgs);
 +    
 +    std::string m_indexRegName;
 +    std::string m_typeRegName;
      OString		m_base;
 -    sal_Bool	m_bForceOutput;
 +    bool m_bForceOutput;
  };	
  
 -sal_Bool Options::initOptions(int ac, char* av[], sal_Bool bCmdFile)
 +// virtual
 +void Options_Impl::printUsage_Impl() const
  {
 -    sal_Bool bRet = sal_True;
 -    sal_uInt16	i=0;
 +    std::string const & rProgName = getProgramName();
 +    fprintf(stderr,
 +            "Usage: %s -r<filename> -o<filename> [-options] | @<filename>\n", rProgName.c_str()
 +            );
 +    fprintf(stderr,
 +            "    -o<filename>  = filename specifies the name of the new singleton index registry.\n"
 +            "    -r<filename>  = filename specifies the name of the type registry.\n"
 +            "    @<filename>   = filename specifies a command file.\n"
 +            "Options:\n"
 +            "    -b<name>  = name specifies the name of a start key. The types will be searched\n"
 +            "                under this key in the type registry.\n"
 +            "    -f        = force the output of all found singletons.\n"
 +            "    -h|-?     = print this help message and exit.\n"
 +            );
 +    fprintf(stderr,
-             "\nSun Microsystems (R) %s Version 1.0\n\n", rProgName.c_str()
++            "\n%s Version 1.0\n\n", rProgName.c_str()
 +            );
 +}
  
 -    if (!bCmdFile)
 +// virtual
 +bool Options_Impl::initOptions_Impl(std::vector< std::string > & rArgs)
 +{
 +    std::vector< std::string >::const_iterator first = rArgs.begin(), last = rArgs.end();
 +    for (; first != last; ++first)
      {
 -        bCmdFile = sal_True;
 -        
 -        m_program = av[0];
 -
 -        if (ac < 2)
 +        std::string option (*first);
 +        if ((*first)[0] != '-')
          {
 -            fprintf(stderr, "%s", prepareHelp().getStr());
 -            bRet = sal_False;
 +            return badOption("invalid", option.c_str());
          }
 -
 -        i = 1;
 -    } else
 -    {
 -        i = 0;
 -    }
 -
 -    char	*s=NULL;
 -    for (; i < ac; i++)
 -    {
 -        if (av[i][0] == '-')
 +        switch ((*first)[1])
          {
 -            switch (av[i][1])
 +        case 'r':
 +        case 'R':
              {
 -                case 'r':
 -                case 'R':
 -                    if (av[i][2] == '\0')
 -                    {
 -                        if (i < ac - 1 && av[i+1][0] != '-')
 -                        {
 -                            i++;
 -                            s = av[i];
 -                        } else
 -                        {
 -                            fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                            bRet = sal_False;
 -                            break;
 -                        }
 -                    } else
 -                    {
 -                        s = av[i] + 2;
 -                    }
 -                    m_typeRegName = OString(s);
 -                    break;
 -                case 'o':
 -                case 'O':
 -                    if (av[i][2] == '\0')
 -                    {
 -                        if (i < ac - 1 && av[i+1][0] != '-')
 -                        {
 -                            i++;
 -                            s = av[i];
 -                        } else
 -                        {
 -                            fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                            bRet = sal_False;
 -                            break;
 -                        }
 -                    } else
 -                    {
 -                        s = av[i] + 2;
 -                    }
 -                    m_indexRegName = OString(s);
 -                    break;
 -                case 'b':
 -                case 'B':
 -                    if (av[i][2] == '\0')
 -                    {
 -                        if (i < ac - 1 && av[i+1][0] != '-')
 -                        {
 -                            i++;
 -                            s = av[i];
 -                        } else
 -                        {
 -                            fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                            bRet = sal_False;
 -                            break;
 -                        }
 -                    } else
 -                    {
 -                        s = av[i] + 2;
 -                    }
 -                    m_base = OString(s);
 -                    break;
 -                case 'f':
 -                case 'F':
 -                    if (av[i][2] != '\0')
 -                    {
 -                        fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                        bRet = sal_False;
 -                    }
 -                    m_bForceOutput = sal_True;
 -                    break;
 -                    case 'h':
 -                case '?':
 -                    if (av[i][2] != '\0')
 -                    {
 -                        fprintf(stderr, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                        bRet = sal_False;
 -                    } else
 -                    {
 -                        fprintf(stdout, "%s", prepareHelp().getStr());
 -                        exit(0);
 -                    }
 -                    break;
 -                default:
 -                    fprintf(stderr, "%s: unknown option '%s'\n", m_program.getStr(), av[i]);
 -                    bRet = sal_False;
 -                    break;
 +                if (!((++first != last) && ((*first)[0] != '-')))
 +                {
 +                    return badOption("invalid", option.c_str());
 +                }
 +                m_typeRegName = OString((*first).c_str(), (*first).size());
 +                break;
              }
 -        } else
 -        {
 -            if (av[i][0] == '@')
 +        case 'o':
 +        case 'O':
              {
 -                FILE* cmdFile = fopen(av[i]+1, "r");
 -                  if( cmdFile == NULL )
 -                  {
 -                    fprintf(stderr, "%s", prepareHelp().getStr());
 -                    bRet = sal_False;
 -                } else
 +                if (!((++first != last) && ((*first)[0] != '-')))
                  {
 -                    int rargc=0;
 -                    char* rargv[512];
 -                    char  buffer[512];
 -
 -                    while ( fscanf(cmdFile, "%s", buffer) != EOF )
 -                    {
 -                        rargv[rargc]= strdup(buffer);
 -                        rargc++;
 -                    }
 -                    fclose(cmdFile);
 -                    
 -                    bRet = initOptions(rargc, rargv, bCmdFile);
 -                    
 -                    for (long j=0; j < rargc; j++) 
 -                    {
 -                        free(rargv[j]);
 -                    }
 +                    return badOption("invalid", option.c_str());
 +                }
 +                m_indexRegName = (*first);
 +                break;
 +            }
 +        case 'b':
 +        case 'B':
 +            {
 +                if (!((++first != last) && ((*first)[0] != '-')))
 +                {
 +                    return badOption("invalid", option.c_str());
                  }
 -            } else
 +                m_base = OString((*first).c_str(), (*first).size());
 +                break;
 +            }
 +        case 'f':
 +        case 'F':
 +            {
 +                if ((*first).size() > 2)
 +                {
 +                    return badOption("invalid", option.c_str());
 +                }
 +                m_bForceOutput = sal_True;
 +                break;
 +            }
 +        case 'h':
 +        case '?':
              {
 -                fprintf(stderr, "%s: unknown option '%s'\n", m_program.getStr(), av[i]);
 -                bRet = sal_False;
 +                if ((*first).size() > 2)
 +                {
 +                    return badOption("invalid", option.c_str());
 +                }
 +                return printUsage();
 +                // break; // unreachable
              }
 +        default:
 +            return badOption("unknown", option.c_str());
 +            // break; // unreachable
          }
      }
 -
 -    return bRet;
 +    return true;
  }
  
 -OString Options::prepareHelp()
 -{
 -    OString help("\nusing: ");
 -    help += m_program + " -r<filename> -o<filename> [-options] | @<filename>\n";
 -    help += "    -o<filename>  = filename specifies the name of the new singleton index registry.\n";
 -    help += "    -r<filename>  = filename specifies the name of the type registry.\n";
 -    help += "    @<filename>    = filename specifies a command file.\n";
 -    help += "Options:\n";
 -    help += "    -b<name>  = name specifies the name of a start key. The types will be searched\n";
 -    help += "                under this key in the type registry.\n";
 -    help += "    -f        = force the output of all found singletons.\n";
 -    help += "    -h|-?     = print this help message and exit.\n";
 -    help += prepareVersion();
 -    
 -    return help;
 -}	
 -
 -OString Options::prepareVersion()
 -{
 -    OString version(m_program);
 -    version += " Version 1.0\n\n";
 -    return version;
 -}	
 -
 -static Options options;
 -
 -static sal_Bool checkSingletons(RegistryKey& singletonKey, RegistryKey& typeKey)
 +static sal_Bool checkSingletons(Options_Impl const & options, RegistryKey& singletonKey, RegistryKey& typeKey)
  {
      RegValueType valueType = RG_VALUETYPE_NOT_DEFINED;
      sal_uInt32 size = 0;
diff --cc registry/tools/regcompare.cxx
index 848f85b,875b61f..d283c63
--- a/registry/tools/regcompare.cxx
+++ b/registry/tools/regcompare.cxx
@@@ -88,177 -163,198 +88,177 @@@ protected
      bool m_checkUnpublished;
  };	
  
 -sal_Bool Options::initOptions(int ac, char* av[], sal_Bool bCmdFile)
 +#define U2S( s ) OUStringToOString(s, RTL_TEXTENCODING_UTF8).getStr()
 +
 +inline rtl::OUString makeOUString (std::string const & s)
  {
 -    sal_Bool bRet = sal_True;
 -    sal_uInt16	i=0;
 +    return rtl::OUString(s.c_str(), s.size(), RTL_TEXTENCODING_UTF8, OSTRING_TO_OUSTRING_CVTFLAGS);
 +}
  
 -    if (!bCmdFile)
 -    {
 -        bCmdFile = sal_True;
 -        
 -        OString name(av[0]);
 -        sal_Int32 index = name.lastIndexOf(SEPARATOR);
 -        m_program = name.copy((index > 0 ? index+1 : 0));
 +inline rtl::OUString shortName(rtl::OUString const & fullName)
 +{
 +    return fullName.copy(fullName.lastIndexOf('/') + 1);
 +}
  
 -        if (ac < 2)
 -        {
 -            fprintf(stdout, "%s", prepareHelp().getStr());
 -            bRet = sal_False;
 -        }
 +bool Options_Impl::setRegName_Impl(char c, std::string const & param)
 +{
 +    bool one = (c == '1'), two = (c == '2');
 +    if (one)
 +        m_regName1 = param;
 +    if (two)
 +        m_regName2 = param;
 +    return (one || two);
 +}
  
 -        i = 1;
 -    } else
 -    {
 -        i = 0;
 -    }
 +//virtual
 +void Options_Impl::printUsage_Impl() const
 +{
 +    std::string const & rProgName = getProgramName();
 +    fprintf(stderr,
 +            "Usage: %s -r1<filename> -r2<filename> [-options] | @<filename>\n", rProgName.c_str()
 +            );
 +    fprintf(stderr,
 +            "    -r1<filename>  = filename specifies the name of the first registry.\n"
 +            "    -r2<filename>  = filename specifies the name of the second registry.\n"
 +            "    @<filename>    = filename specifies a command file.\n"
 +            "Options:\n"
 +            "    -s<name>  = name specifies the name of a start key. If no start key\n"
 +            "     |S<name>   is specified the comparison starts with the root key.\n"
 +            "    -x<name>  = name specifies the name of a key which won't be compared. All\n"
 +            "     |X<name>   subkeys won't be compared also. This option can be used more than once.\n"
 +            "    -f|F      = force the detailed output of any diffenrences. Default\n"
 +            "                is that only the number of differences is returned.\n"
 +            "    -c|C      = make a complete check, that means any differences will be\n"
 +            "                detected. Default is only a compatibility check that means\n"
 +            "                only UNO typelibrary entries will be checked.\n"
 +            "    -t|T      = make an UNO type compatiblity check. This means that registry 2\n"
 +            "                will be checked against registry 1. If a interface in r2 contains\n"
 +            "                more methods or the methods are in a different order as in r1, r2 is\n"
 +            "                incompatible to r1. But if a service in r2 supports more properties as\n"
 +            "                in r1 and the new properties are 'optional' it is compatible.\n"
 +            "    -u|U      = additionally check types that are unpublished in registry 1.\n"
 +            "    -h|-?     = print this help message and exit.\n"
 +            );
 +    fprintf(stderr,
-             "\nSun Microsystems (R) %s Version 1.0\n\n", rProgName.c_str()
++            "\n%s Version 1.0\n\n", rProgName.c_str()
 +            );
 +}	
  
 -    char	*s=NULL;
 -    for (; i < ac; i++)
 +// virtual
 +bool Options_Impl::initOptions_Impl (std::vector< std::string > & rArgs)
 +{
 +    std::vector< std::string >::const_iterator first = rArgs.begin(), last = rArgs.end();
 +    for (; first != last; ++first)
      {
 -        if (av[i][0] == '-')
 +        if ((*first)[0] != '-')
 +        {
 +            return badOption("invalid", (*first).c_str());
 +        }
 +        switch ((*first)[1])
          {
 -            switch (av[i][1])
 +        case 'r':
 +        case 'R':
              {
 -                case 'r':
 -                case 'R':
 +                if (!((++first != last) && ((*first)[0] != '-')))
                  {
 -                    sal_Bool bFirst = sal_True;
 -                    if (av[i][2] == '2')
 -                    {
 -                        bFirst = sal_False;
 -                    } else if (av[i][2] != '1')
 -                    {
 -                        fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                    }
 -                    if (av[i][3] == '\0')
 -                    {
 -                        if (i < ac - 1 && av[i+1][0] != '-')
 -                        {
 -                            i++;
 -                            s = av[i];
 -                        } else
 -                        {
 -                            fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                            bRet = sal_False;
 -                            break;
 -                        }
 -                    } else
 -                    {
 -                        s = av[i] + 2;
 -                    }
 -                    
 -                    if ( bFirst )
 -                    {
 -                        m_regName1 = OString(s);
 -                    } else
 -                    {
 -                        m_regName2 = OString(s);
 -                    }
 +                    return badOption("invalid", (*first).c_str());
                  }
 -                    break;
 -                case 's':
 -                case 'S':
 -                    if (av[i][2] == '\0')
 -                    {
 -                        if (i < ac - 1 && av[i+1][0] != '-')
 -                        {
 -                            i++;
 -                            s = av[i];
 -                        } else
 -                        {
 -                            fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                            bRet = sal_False;
 -                            break;
 -                        }
 -                    } else
 -                    {
 -                        s = av[i] + 2;
 -                    }
 -                    m_startKey = OString(s);
 -                    break;
 -                case 'x':
 -                case 'X':
 -                    if (av[i][2] == '\0')
 -                    {
 -                        if (i < ac - 1 && av[i+1][0] != '-')
 -                        {
 -                            i++;
 -                            s = av[i];
 -                        } else
 -                        {
 -                            fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                            bRet = sal_False;
 -                            break;
 -                        }
 -                    } else
 -                    {
 -                        s = av[i] + 2;
 -                    }
 -                    m_excludeKeys.insert(S2U(s));
 -                    break;
 -                case 'c':
 -                case 'C':
 -                    if (av[i][2] != '\0')
 -                    {
 -                        fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                    }
 -                    m_bFullCheck = sal_True;
 -                    break;
 -                case 'f':
 -                case 'F':
 -                    if (av[i][2] != '\0')
 -                    {
 -                        fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                        bRet = sal_False;
 -                    }
 -                    m_bForceOutput = sal_True;
 -                    break;
 -                case 't':
 -                case 'T':
 -                    if (av[i][2] != '\0')
 -                    {
 -                        fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                    }
 -                    m_bUnoTypeCheck = sal_True;
 -                    break;
 -                case 'u':
 -                case 'U':
 -                    if (av[i][2] != '\0')
 -                    {
 -                        fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                    }
 -                    m_checkUnpublished = true;
 -                    break;
 -                case 'h':
 -                case '?':
 -                    if (av[i][2] != '\0')
 -                    {
 -                        fprintf(stdout, "%s: invalid option '%s'\n", m_program.getStr(), av[i]);
 -                        bRet = sal_False;
 -                    } else
 +
 +                std::string option(*first), param;
 +                if (option.size() == 1)
 +                {
 +                    // "-r<n><space><param>"
 +                    if (!((++first != last) && ((*first)[0] != '-')))
                      {
 -                        fprintf(stdout, "%s", prepareHelp().getStr());
 -                        exit(0);
 +                        return badOption("invalid", (*first).c_str());
                      }
 -                    break;
 -                default:
 -                    fprintf(stdout, "%s: unknown option '%s'\n", m_program.getStr(), av[i]);
 -                    bRet = sal_False;
 -                    break;
 +                    param = (*first);
 +                }
 +                else
 +                {
 +                    // "-r<n><param>"
 +                    param = std::string(&(option[1]), option.size() - 1);
 +                }
 +                if (!setRegName_Impl(option[0], param))
 +                {
 +                    return badOption("invalid", option.c_str());
 +                }
 +                break;
              }
 -        } else
 -        {
 -            if (av[i][0] == '@')
 +        case 's':
 +        case 'S':
              {
 -                FILE* cmdFile = fopen(av[i]+1, "r");
 -                  if( cmdFile == NULL )
 -                  {
 -                    fprintf(stdout, "%s", prepareHelp().getStr());
 -                    bRet = sal_False;
 -                } else
 +                if (!((++first != last) && ((*first)[0] != '-')))
                  {
 -                    int rargc=0;
 -                    char* rargv[512];
 -                    char  buffer[512];
 -
 -                    while ( fscanf(cmdFile, "%s", buffer) != EOF )
 -                    {
 -                        rargv[rargc]= strdup(buffer);
 -                        rargc++;
 -                    }
 -                    fclose(cmdFile);
 -                    
 -                    bRet = initOptions(rargc, rargv, bCmdFile);
 -                    
 -                    for (long j=0; j < rargc; j++) 
 -                    {
 -                        free(rargv[j]);
 -                    }
 +                    return badOption("invalid", (*first).c_str());
 +                }
 +                m_startKey = makeOUString(*first);
 +                break;
 +            }
 +        case 'x':
 +        case 'X':
 +            {
 +                if (!((++first != last) && ((*first)[0] != '-')))
 +                {
 +                    return badOption("invalid", (*first).c_str());
 +                }
 +                m_excludeKeys.insert(makeOUString(*first));
 +                break;
 +            }
 +        case 'f':
 +        case 'F':
 +            {
 +                if ((*first).size() > 2)
 +                {
 +                    return badOption("invalid", (*first).c_str());
 +                }
 +                m_bForceOutput = sal_True;
 +                break;
 +            }
 +        case 'c':
 +        case 'C':
 +            {
 +                if ((*first).size() > 2)
 +                {
 +                    return badOption("invalid", (*first).c_str());
 +                }
 +                m_bFullCheck = sal_True;
 +                break;
 +            }
 +        case 't':
 +        case 'T':
 +            {
 +                if ((*first).size() > 2)
 +                {
 +                    return badOption("invalid", (*first).c_str());
 +                }
 +                m_bUnoTypeCheck = sal_True;
 +                break;
 +            }
 +        case 'u':
 +        case 'U':
 +            {
 +                if ((*first).size() > 2)
 +                {
 +                    return badOption("invalid", (*first).c_str());
                  }
 -            } else
 +                m_checkUnpublished = true;
 +                break;
 +            }
 +        case 'h':
 +        case '?':
              {
 -                fprintf(stdout, "%s: unknown option '%s'\n", m_program.getStr(), av[i]);
 -                bRet = sal_False;
 +                if ((*first).size() > 2)
 +                {
 +                    return badOption("invalid", (*first).c_str());
 +                }
 +                return printUsage();
 +                // break; // Unreachable
 +            }
 +        default:
 +            {
 +                return badOption("unknown", (*first).c_str());
 +                // break; // Unreachable
              }
          }
      }
commit 60014d8471301bcab6512964e87767898f544e06
Merge: 78bd6e5... 3ea19d7...
Author: Ivo Hinkelmann <ihi at openoffice.org>
Date:   Mon Mar 7 13:36:42 2011 +0100

    CWS-TOOLING: integrate CWS fwk165

commit 78bd6e57f420636ec930182478f26b4814ea1206
Merge: 75c7fcf... 31bf793...
Author: Ivo Hinkelmann <ihi at openoffice.org>
Date:   Mon Mar 7 13:15:24 2011 +0100

    CWS-TOOLING: integrate CWS jl165

commit fc2bbcd5c69e181d742f3ac8a321cd9f03e6278d
Author: Joachim Lingner <jl at openoffice.org>
Date:   Thu Mar 3 12:04:04 2011 +0100

    jl164 #i109096# fixing use of vectors as smart array in osl_loadModules and osl_createprocesswithredirectedio, I introduced them in one of the previous changesets in this cws

diff --git a/sal/osl/w32/module.cxx b/sal/osl/w32/module.cxx
index cac91f7..8fc1dbb 100755
--- a/sal/osl/w32/module.cxx
+++ b/sal/osl/w32/module.cxx
@@ -80,13 +80,13 @@ oslModule SAL_CALL osl_loadModule(rtl_uString *strModuleName, sal_Int32 nRtldMod
     {
         std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec(Module->length + 1);
         DWORD len = GetShortPathNameW(reinterpret_cast<LPCWSTR>(Module->buffer), 
-                                      vec.begin(), Module->length + 1);
+                                      &vec[0], Module->length + 1);
         if (len )
         {
-            hInstance = LoadLibraryW(vec.begin());
+            hInstance = LoadLibraryW(&vec[0]);
 
             if (hInstance == NULL)
-                hInstance = LoadLibraryExW(vec.begin(), NULL,
+                hInstance = LoadLibraryExW(&vec[0], NULL,
                                   LOAD_WITH_ALTERED_SEARCH_PATH);
         }
     }
diff --git a/sal/osl/w32/procimpl.cxx b/sal/osl/w32/procimpl.cxx
index 5a4188d..4fad3f2 100755
--- a/sal/osl/w32/procimpl.cxx
+++ b/sal/osl/w32/procimpl.cxx
@@ -314,7 +314,7 @@ namespace /* private */
             std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec(path.getLength() + 1);
             //GetShortPathNameW only works if the file can be found!
             const DWORD len = GetShortPathNameW(
-                path.getStr(), vec.begin(), path.getLength() + 1);
+                path.getStr(), &vec[0], path.getLength() + 1);
 
             if (!len && GetLastError() == ERROR_FILE_NOT_FOUND
                 && extension.getLength())
@@ -323,12 +323,12 @@ namespace /* private */
                 std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec2(
                     extPath.getLength() + 1);
                 const DWORD len2 = GetShortPathNameW(
-                    extPath.getStr(), vec2.begin(), extPath.getLength() + 1);
-                ret = rtl::OUString(vec2.begin(), len2);
+                    extPath.getStr(), &vec2[0], extPath.getLength() + 1);
+                ret = rtl::OUString(&vec2[0], len2);
             }
             else
             {
-                ret = rtl::OUString(vec.begin(), len);
+                ret = rtl::OUString(&vec[0], len);
             }
         }
         return ret;
commit 8521fa6ceb50adab27a3ca013501d0769b8b41af
Author: Joachim Lingner <jl at openoffice.org>
Date:   Wed Mar 2 16:11:23 2011 +0100

    jl164 #i109096# osl_createProcesess failed if the executable had a long path on windows

diff --git a/sal/osl/w32/module.cxx b/sal/osl/w32/module.cxx
old mode 100644
new mode 100755
index f303fd9..cac91f7
--- a/sal/osl/w32/module.cxx
+++ b/sal/osl/w32/module.cxx
@@ -36,6 +36,7 @@
 #include <osl/thread.h>
 #include <osl/file.h>
 #include <rtl/logfile.h>
+#include <vector>
 
 /*
     under WIN32, we use the void* oslModule 
@@ -72,21 +73,22 @@ oslModule SAL_CALL osl_loadModule(rtl_uString *strModuleName, sal_Int32 nRtldMod
 
     //In case of long path names (\\?\c:\...) try to shorten the filename.
     //LoadLibrary cannot handle file names which exceed 260 letters.
-    if (hInstance == NULL && GetLastError() == ERROR_FILENAME_EXCED_RANGE)
+    //In case the path is to long, the function will fail. However, the error
+    //code can be different. For example, it returned  ERROR_FILENAME_EXCED_RANGE
+    //on Windows XP and ERROR_INSUFFICIENT_BUFFER on Windows 7 (64bit)
+    if (hInstance == NULL && Module->length > 260)
     {
-        wchar_t * buff = new wchar_t[Module->length + 1];
+        std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec(Module->length + 1);
         DWORD len = GetShortPathNameW(reinterpret_cast<LPCWSTR>(Module->buffer), 
-            buff, Module->length + 1);
+                                      vec.begin(), Module->length + 1);
         if (len )
         {
-            hInstance = LoadLibraryW(buff);
+            hInstance = LoadLibraryW(vec.begin());
 
             if (hInstance == NULL)
-                hInstance = LoadLibraryExW(buff, NULL,
+                hInstance = LoadLibraryExW(vec.begin(), NULL,
                                   LOAD_WITH_ALTERED_SEARCH_PATH);
-
         }
-        delete[] buff;
     }
 
 
diff --git a/sal/osl/w32/procimpl.cxx b/sal/osl/w32/procimpl.cxx
old mode 100644
new mode 100755
index a2e6454..5a4188d
--- a/sal/osl/w32/procimpl.cxx
+++ b/sal/osl/w32/procimpl.cxx
@@ -299,7 +299,40 @@ namespace /* private */
             
         return quoted.makeStringAndClear();
     }
-    
+
+    //The parameter path must be a system path. If it is longer than 260 characters
+    //then it is shortened using the GetShortPathName function. This function only
+    //works if the path exists. Because "path" can be the path to an executable, it
+    //may not have the file extension ".exe". However, if the file on disk has the
+    //".exe" extension, then the function will fail. In this case a second attempt
+    //is started by adding the parameter "extension" to "path".
+    rtl::OUString getShortPath(rtl::OUString const & path, rtl::OUString const & extension)
+    {
+        rtl::OUString ret(path);
+        if (path.getLength() > 260)
+        {
+            std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec(path.getLength() + 1);
+            //GetShortPathNameW only works if the file can be found!
+            const DWORD len = GetShortPathNameW(
+                path.getStr(), vec.begin(), path.getLength() + 1);
+
+            if (!len && GetLastError() == ERROR_FILE_NOT_FOUND
+                && extension.getLength())
+            {
+                const rtl::OUString extPath(path + extension);
+                std::vector<sal_Unicode, rtl::Allocator<sal_Unicode> > vec2(
+                    extPath.getLength() + 1);
+                const DWORD len2 = GetShortPathNameW(
+                    extPath.getStr(), vec2.begin(), extPath.getLength() + 1);
+                ret = rtl::OUString(vec2.begin(), len2);
+            }
+            else
+            {
+                ret = rtl::OUString(vec.begin(), len);
+            }
+        }
+        return ret;
+    }
     //##########################################################  
     // Returns the system path of the executable which can either
     // be provided via the strImageName parameter or as first 
@@ -325,9 +358,11 @@ namespace /* private */
         rtl::OUString exe_path;
         if (osl_File_E_None != osl::FileBase::getSystemPathFromFileURL(exe_url, exe_path))
             return rtl::OUString();
+
+        exe_path = getShortPath(exe_path, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".exe")));
         
         if (exe_path.indexOf(' ') != -1)       
-            exe_path = quote_string(exe_path);            
+            exe_path = quote_string(exe_path);
         
         return exe_path;
     }
commit 75c7fcf9d5f8448e71a949ee10b6caf377b85d80
Merge: b49ffdd... 9542efb...
Author: Ivo Hinkelmann <ihi at openoffice.org>
Date:   Wed Mar 2 12:10:39 2011 +0100

    CWS-TOOLING: integrate CWS mhu21

commit 9542efbcf7e68a805a8d03b61044b40c2feb9404
Merge: 6686cc8... 918dda3...
Author: Matthias Huetsch [mhu] <matthias.huetsch at oracle.com>
Date:   Wed Mar 2 10:40:16 2011 +0100

    Update from sibling repository.

commit 918dda31e398e3280fdd5d18a4abe75da44348b8
Author: Matthias Huetsch [mhu] <matthias.huetsch at oracle.com>
Date:   Wed Mar 2 10:33:15 2011 +0100

    #i115784# sal/rtl/alloc: fix makefile define to match source.

diff --git a/sal/rtl/source/makefile.mk b/sal/rtl/source/makefile.mk
index 538a046..145aa50 100644
--- a/sal/rtl/source/makefile.mk
+++ b/sal/rtl/source/makefile.mk
@@ -48,7 +48,7 @@ TARGETTYPE=CUI
 
 .IF "$(VALGRIND_CFLAGS)" != ""
 CFLAGS += $(VALGRIND_CFLAGS)
-CDEFS  += -DHAVE_VALGRIND_MEMCHECK_H=1
+CDEFS  += -DHAVE_MEMCHECK_H=1
 .ENDIF # VALGRIND_CFLAGS
 
 .IF "$(ALLOC)" == "SYS_ALLOC" || "$(ALLOC)" == "TCMALLOC" || "$(ALLOC)" == "JEMALLOC"
commit 6686cc8fd9b374acf995c1dcb855c8d64c60fb97
Author: Matthias Huetsch [mhu] <matthias.huetsch at oracle.com>
Date:   Tue Mar 1 15:43:07 2011 +0100

    #i115784# configure: fix valgrind header check, use VALGRIND_CFLAGS.

diff --git a/sal/rtl/source/alloc_impl.h b/sal/rtl/source/alloc_impl.h
index a216c6e..8fa379c 100644
--- a/sal/rtl/source/alloc_impl.h
+++ b/sal/rtl/source/alloc_impl.h
@@ -242,11 +242,11 @@ typedef CRITICAL_SECTION rtl_memory_lock_type;
 
 /** Valgrind support macros.
  */
-#if !defined(HAVE_VALGRIND_MEMCHECK_H) || (OSL_DEBUG_LEVEL == 0)
+#if !defined(HAVE_MEMCHECK_H) || (OSL_DEBUG_LEVEL == 0)
 #if !defined(NVALGRIND)
 #define NVALGRIND 1
 #endif /* ! NVALGRIND */
-#endif /* ! HAVE_VALGRIND_MEMCHECK_H || (OSL_DEBUG_LEVEL == 0) */
+#endif /* ! HAVE_MEMCHECK_H || (OSL_DEBUG_LEVEL == 0) */
 
 #if defined(NVALGRIND)
 #define VALGRIND_MAKE_MEM_UNDEFINED(addr, size)
@@ -257,12 +257,12 @@ typedef CRITICAL_SECTION rtl_memory_lock_type;
 #define VALGRIND_DESTROY_MEMPOOL(pool)
 #define VALGRIND_MEMPOOL_ALLOC(pool, addr, size)
 #define VALGRIND_MEMPOOL_FREE(pool, addr)
-#elif defined(HAVE_VALGRIND_MEMCHECK_H)
-#include <valgrind/memcheck.h>
+#elif defined(HAVE_MEMCHECK_H)
+#include <memcheck.h>
 #if !defined(FORCE_SYSALLOC)
 #define FORCE_SYSALLOC 1
 #endif /* !FORCE_SYSALLOC */
-#endif /* NVALGRIND || HAVE_VALGRIND_MEMCHECK_H */
+#endif /* NVALGRIND || HAVE_MEMCHECK_H */
 
 #ifdef __cplusplus
 }
diff --git a/sal/rtl/source/makefile.mk b/sal/rtl/source/makefile.mk
index 80c8e73..538a046 100644
--- a/sal/rtl/source/makefile.mk
+++ b/sal/rtl/source/makefile.mk
@@ -46,9 +46,10 @@ TARGETTYPE=CUI
 
 .INCLUDE :  settings.mk
 
-.IF "$(HAVE_VALGRIND_MEMCHECK_H)" == "TRUE"
-CDEFS+= -DHAVE_VALGRIND_MEMCHECK_H=1
-.ENDIF
+.IF "$(VALGRIND_CFLAGS)" != ""
+CFLAGS += $(VALGRIND_CFLAGS)
+CDEFS  += -DHAVE_VALGRIND_MEMCHECK_H=1
+.ENDIF # VALGRIND_CFLAGS
 
 .IF "$(ALLOC)" == "SYS_ALLOC" || "$(ALLOC)" == "TCMALLOC" || "$(ALLOC)" == "JEMALLOC"
 CDEFS+= -DFORCE_SYSALLOC
commit bcc34756579af9d487d6095d257a7ff9a823e828
Author: Joachim Lingner <jl at openoffice.org>
Date:   Tue Mar 1 10:55:20 2011 +0100

    jl164 #i109096# osl_loadModules did not work with long paths.

diff --git a/sal/osl/w32/module.cxx b/sal/osl/w32/module.cxx
index be5a5b4..f303fd9 100644
--- a/sal/osl/w32/module.cxx
+++ b/sal/osl/w32/module.cxx
@@ -65,10 +65,31 @@ oslModule SAL_CALL osl_loadModule(rtl_uString *strModuleName, sal_Int32 nRtldMod
         rtl_uString_assign(&Module, strModuleName);
 
     hInstance = LoadLibraryW(reinterpret_cast<LPCWSTR>(Module->buffer));
+
     if (hInstance == NULL)
         hInstance = LoadLibraryExW(reinterpret_cast<LPCWSTR>(Module->buffer), NULL,
                                   LOAD_WITH_ALTERED_SEARCH_PATH);
 
+    //In case of long path names (\\?\c:\...) try to shorten the filename.
+    //LoadLibrary cannot handle file names which exceed 260 letters.
+    if (hInstance == NULL && GetLastError() == ERROR_FILENAME_EXCED_RANGE)
+    {
+        wchar_t * buff = new wchar_t[Module->length + 1];
+        DWORD len = GetShortPathNameW(reinterpret_cast<LPCWSTR>(Module->buffer), 
+            buff, Module->length + 1);
+        if (len )
+        {
+            hInstance = LoadLibraryW(buff);
+
+            if (hInstance == NULL)
+                hInstance = LoadLibraryExW(buff, NULL,
+                                  LOAD_WITH_ALTERED_SEARCH_PATH);
+
+        }
+        delete[] buff;
+    }
+
+
     if (hInstance <= (HINSTANCE)HINSTANCE_ERROR)
         hInstance = 0;
 
commit 31bf79303e7d8a05bc3a7943ed752eb5f8ab8787
Merge: b49ffdd... 0900ab3...
Author: Joachim Lingner <jl at openoffice.org>
Date:   Mon Feb 28 16:13:56 2011 +0100

    jl165 merging heads

commit 2e5c4d6df1939dfee06b16e5f6c47e73c54cf2e1
Author: sb <sb at openoffice.org>
Date:   Mon Feb 28 08:57:47 2011 +0100

    debuglevels: #i117073# Linux/GCC needs SAL_LOADMODULE_GLOBAL for exception handling to work

diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx
index ab3f61f..c89a350 100644
--- a/sal/cppunittester/cppunittester.cxx
+++ b/sal/cppunittester/cppunittester.cxx
@@ -115,7 +115,8 @@ SAL_IMPLEMENT_MAIN() {
         }
         rtl::OUString lib(getArgument(index + 1));
         rtl::OUString sym(getArgument(index + 2));
-        oslGenericFunction fn = (new osl::Module(lib))->getFunctionSymbol(sym);
+        oslGenericFunction fn = (new osl::Module(lib, SAL_LOADMODULE_GLOBAL))
+            ->getFunctionSymbol(sym);
         CppUnit::Protector * p = fn == 0
             ? 0
             : (*reinterpret_cast< cppunittester::ProtectorFactory * >(fn))();
commit 98f9dd19ec450216df9637dd09d6007843c11330
Author: Frank Schoenheit [fs] <frank.schoenheit at oracle.com>
Date:   Sat Feb 26 21:52:40 2011 +0100

    debuglevels: ooops - removed a line of code not intended to be committed

diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx
index 6aba6dc..ab3f61f 100644
--- a/sal/cppunittester/cppunittester.cxx
+++ b/sal/cppunittester/cppunittester.cxx
@@ -138,6 +138,5 @@ SAL_IMPLEMENT_MAIN() {
     result.addListener(&collector);
     runner.run(result);
     CppUnit::CompilerOutputter(&collector, CppUnit::stdCErr()).write();
-    fprintf( stderr, "-----\n" ); fflush( stderr );
     return collector.wasSuccessful() ? EXIT_SUCCESS : EXIT_FAILURE;
 }
commit 08fa174e76a4688ab12316f8c4a867f9cf120a8a
Author: Frank Schoenheit [fs] <frank.schoenheit at oracle.com>
Date:   Fri Feb 25 16:01:35 2011 +0100

    debuglevels: GCC WaE / replace cppunit's DynamicLibraryManager (which does not seem to be public API) with osl_loadModule

diff --git a/sal/cppunittester/cast.c b/sal/cppunittester/cast.c
deleted file mode 100644
index 38c081a..0000000
--- a/sal/cppunittester/cast.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2011 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 "osl/module.h"
-
-#include "cast.h"
-
-oslGenericFunction cast(void * fn) {
-    return (oslGenericFunction) fn;
-}
diff --git a/sal/cppunittester/cast.h b/sal/cppunittester/cast.h
deleted file mode 100644
index 4cfd411..0000000
--- a/sal/cppunittester/cast.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*************************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2011 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_SAL_CPPUNITTESTER_CAST_H
-#define INCLUDED_SAL_CPPUNITTESTER_CAST_H
-
-#include "sal/config.h"
-
-#include "osl/module.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif
-
-/* C++ compilers would warn about that cast, so it is done in C: */
-oslGenericFunction cast(void * fn);
-
-#if defined __cplusplus
-}
-#endif
-
-#endif
diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx
index e3ced72..6aba6dc 100644
--- a/sal/cppunittester/cppunittester.cxx
+++ b/sal/cppunittester/cppunittester.cxx
@@ -34,12 +34,16 @@
 #include <string>
 
 #include "cppunittester/protectorfactory.hxx"
+#include "osl/module.h"
+#include "osl/module.hxx"
 #include "osl/thread.h"
 #include "rtl/process.h"
+#include "rtl/string.h"
 #include "rtl/string.hxx"
 #include "rtl/textcvt.h"
 #include "rtl/ustring.hxx"
 #include "sal/main.h"
+#include "sal/types.h"
 
 #include "preextstl.h"
 #include "cppunit/CompilerOutputter.h"
@@ -47,14 +51,10 @@
 #include "cppunit/TestResultCollector.h"
 #include "cppunit/TestRunner.h"
 #include "cppunit/extensions/TestFactoryRegistry.h"
-#include "cppunit/plugin/DynamicLibraryManager.h"
-#include "cppunit/plugin/DynamicLibraryManagerException.h"
 #include "cppunit/plugin/PlugInManager.h"
 #include "cppunit/portability/Stream.h"
 #include "postextstl.h"
 
-#include "cast.h"
-
 namespace {
 
 void usageFailure() {
@@ -65,15 +65,29 @@ void usageFailure() {
     std::exit(EXIT_FAILURE);
 }
 
-std::string getArgument(sal_uInt32 index) {
-    rtl::OUString s16;
-    rtl_getAppCommandArg(index, &s16.pData);
+rtl::OUString getArgument(sal_Int32 index) {
+    rtl::OUString arg;
+    rtl_getAppCommandArg(index, &arg.pData);
+    return arg;
+}
+
+std::string convertLazy(rtl::OUString const & s16) {
+    rtl::OString s8(rtl::OUStringToOString(s16, osl_getThreadTextEncoding()));
+    return std::string(
+        s8.getStr(),
+        ((static_cast< sal_uInt32 >(s8.getLength())
+          > std::numeric_limits< std::string::size_type >::max())
+         ? std::numeric_limits< std::string::size_type >::max()
+         : static_cast< std::string::size_type >(s8.getLength())));
+}
+
+std::string convertStrict(rtl::OUString const & s16) {
     rtl::OString s8;
     if (!s16.convertToString(
             &s8, osl_getThreadTextEncoding(),
             (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
              | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR))
-        || (s8.getLength()
+        || (static_cast< sal_uInt32 >(s8.getLength())
             > std::numeric_limits< std::string::size_type >::max()))
     {
         std::cerr
@@ -91,38 +105,39 @@ SAL_IMPLEMENT_MAIN() {
     CppUnit::TestResult result;
     sal_uInt32 index = 0;
     for (; index < rtl_getAppCommandArgCount(); index += 3) {
-        std::string arg(getArgument(index));
-        if (arg.compare("--protector") != 0) {
+        if (!getArgument(index).equalsAsciiL(
+                RTL_CONSTASCII_STRINGPARAM("--protector")))
+        {
             break;
         }
         if (rtl_getAppCommandArgCount() - index < 3) {
             usageFailure();
         }
-        try {
-            result.pushProtector(
-                (*reinterpret_cast< cppunittester::ProtectorFactory * >(
-                    cast(
-                        (new CppUnit::DynamicLibraryManager(
-                            getArgument(index + 1)))
-                        ->findSymbol(getArgument(index + 2)))))());
-        } catch (CppUnit::DynamicLibraryManagerException & e) {
+        rtl::OUString lib(getArgument(index + 1));
+        rtl::OUString sym(getArgument(index + 2));
+        oslGenericFunction fn = (new osl::Module(lib))->getFunctionSymbol(sym);
+        CppUnit::Protector * p = fn == 0
+            ? 0
+            : (*reinterpret_cast< cppunittester::ProtectorFactory * >(fn))();
+        if (p == 0) {
             std::cerr
-                << "Failure instantiating protector \""
-                << getArgument(index + 1) << "\", \"" << getArgument(index + 2)
-                << "\": " << e.what() << std::endl;
+                << "Failure instantiating protector \"" << convertLazy(lib)
+                << "\", \"" << convertLazy(sym) << '"' << std::endl;
             std::exit(EXIT_FAILURE);
         }
+        result.pushProtector(p);
     }
     if (rtl_getAppCommandArgCount() - index != 1) {
         usageFailure();
     }
     CppUnit::PlugInManager manager;
-    manager.load(getArgument(index));
+    manager.load(convertStrict(getArgument(index)));
     CppUnit::TestRunner runner;
     runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
     CppUnit::TestResultCollector collector;
     result.addListener(&collector);
     runner.run(result);
     CppUnit::CompilerOutputter(&collector, CppUnit::stdCErr()).write();
+    fprintf( stderr, "-----\n" ); fflush( stderr );
     return collector.wasSuccessful() ? EXIT_SUCCESS : EXIT_FAILURE;
 }
diff --git a/sal/cppunittester/makefile.mk b/sal/cppunittester/makefile.mk
index 657b8f8..61fe786 100644
--- a/sal/cppunittester/makefile.mk
+++ b/sal/cppunittester/makefile.mk
@@ -44,7 +44,7 @@ CFLAGSCXX += $(CPPUNIT_CFLAGS)
 
 OBJFILES = $(APP1OBJS)
 
-APP1OBJS = $(OBJ)/cast.obj $(OBJ)/cppunittester.obj
+APP1OBJS = $(OBJ)/cppunittester.obj
 APP1RPATH = NONE
 APP1STDLIBS = $(CPPUNITLIB) $(SALLIB)
 APP1TARGET = cppunittester
commit ec1d1c8755792f97be5e73f6f027a357f57c3ed8
Author: sb <sb at openoffice.org>
Date:   Fri Feb 25 11:32:55 2011 +0100

    debuglevels: #i117073# added cppunittester --protector support; added unoexceptionprotector and use it in installationtest.mk; reverted changes to smoketest.cxx obsoleted by these additions

diff --git a/sal/cppunittester/cast.c b/sal/cppunittester/cast.c
new file mode 100644
index 0000000..38c081a
--- /dev/null
+++ b/sal/cppunittester/cast.c
@@ -0,0 +1,36 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2011 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 "osl/module.h"
+
+#include "cast.h"
+
+oslGenericFunction cast(void * fn) {
+    return (oslGenericFunction) fn;
+}
diff --git a/sal/cppunittester/cast.h b/sal/cppunittester/cast.h
new file mode 100644
index 0000000..4cfd411
--- /dev/null
+++ b/sal/cppunittester/cast.h
@@ -0,0 +1,46 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2011 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_SAL_CPPUNITTESTER_CAST_H
+#define INCLUDED_SAL_CPPUNITTESTER_CAST_H
+
+#include "sal/config.h"
+
+#include "osl/module.h"
+
+#if defined __cplusplus
+extern "C" {
+#endif
+
+/* C++ compilers would warn about that cast, so it is done in C: */
+oslGenericFunction cast(void * fn);
+
+#if defined __cplusplus
+}
+#endif
+
+#endif
diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx
index ac99601..e3ced72 100644
--- a/sal/cppunittester/cppunittester.cxx
+++ b/sal/cppunittester/cppunittester.cxx
@@ -30,6 +30,16 @@
 
 #include <cstdlib>
 #include <iostream>
+#include <limits>
+#include <string>
+
+#include "cppunittester/protectorfactory.hxx"
+#include "osl/thread.h"
+#include "rtl/process.h"
+#include "rtl/string.hxx"
+#include "rtl/textcvt.h"
+#include "rtl/ustring.hxx"
+#include "sal/main.h"
 
 #include "preextstl.h"
 #include "cppunit/CompilerOutputter.h"
@@ -37,28 +47,79 @@
 #include "cppunit/TestResultCollector.h"
 #include "cppunit/TestRunner.h"
 #include "cppunit/extensions/TestFactoryRegistry.h"
+#include "cppunit/plugin/DynamicLibraryManager.h"
+#include "cppunit/plugin/DynamicLibraryManagerException.h"
 #include "cppunit/plugin/PlugInManager.h"
 #include "cppunit/portability/Stream.h"
 #include "postextstl.h"
-#include "osl/thread.h"
-#include "rtl/process.h"
-#include "rtl/string.hxx"
-#include "rtl/ustring.hxx"
-#include "sal/main.h"
+
+#include "cast.h"
+
+namespace {
+
+void usageFailure() {
+    std::cerr
+        << ("Usage: cppunittester (--protector <shared-library-path>"
+            " <function-symbol>)* <shared-library-path>")
+        << std::endl;
+    std::exit(EXIT_FAILURE);
+}
+
+std::string getArgument(sal_uInt32 index) {

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list