[Libreoffice-commits] core.git: 71 commits - chart2/inc chart2/Library_chartcontroller.mk chart2/Library_chartcore.mk chart2/Library_chartopengl.mk chart2/source config_host/config_oauth2.h.in configure.ac desktop/source external/curl i18nlangtag/README i18npool/source include/comphelper officecfg/registry oox/source scp2/source setup_native/source svtools/source sw/inc sw/Library_sw.mk sw/qa sw/sdi sw/source ucb/source winaccessibility/inc winaccessibility/source writerfilter/source

Miklos Vajna vmiklos at collabora.co.uk
Tue Nov 19 09:06:09 PST 2013


 chart2/Library_chartcontroller.mk                                      |    1 
 chart2/Library_chartcore.mk                                            |    9 
 chart2/Library_chartopengl.mk                                          |   62 
 chart2/inc/ChartModel.hxx                                              |  590 
 chart2/inc/ChartView.hxx                                               |  244 
 chart2/inc/DataSeriesState.hxx                                         |   81 
 chart2/inc/GL/glew.h                                                   |18062 +++++++++
 chart2/inc/GL/glxew.h                                                  | 1669 
 chart2/inc/GL/wglew.h                                                  | 1421 
 chart2/inc/pch/precompiled_chartopengl.cxx                             |   18 
 chart2/inc/pch/precompiled_chartopengl.hxx                             |   12 
 chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx        |   22 
 chart2/source/controller/chartapiwrapper/Chart2ModelContact.hxx        |    5 
 chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx          |    4 
 chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx      |   20 
 chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx            |   16 
 chart2/source/controller/chartapiwrapper/TitleWrapper.cxx              |    2 
 chart2/source/controller/chartapiwrapper/WrappedStockProperties.cxx    |    2 
 chart2/source/controller/dialogs/ChartTypeDialogController.cxx         |    2 
 chart2/source/controller/dialogs/DataBrowserModel.cxx                  |   17 
 chart2/source/controller/dialogs/DialogModel.cxx                       |    8 
 chart2/source/controller/dialogs/ObjectNameProvider.cxx                |    3 
 chart2/source/controller/dialogs/RangeSelectionHelper.cxx              |    2 
 chart2/source/controller/dialogs/TimerTriggeredControllerLock.cxx      |    2 
 chart2/source/controller/dialogs/dlg_ObjectProperties.cxx              |    9 
 chart2/source/controller/dialogs/res_LegendPosition.cxx                |    4 
 chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx           |    6 
 chart2/source/controller/dialogs/tp_ChartType.cxx                      |    2 
 chart2/source/controller/dialogs/tp_DataSource.cxx                     |    2 
 chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.cxx        |    2 
 chart2/source/controller/inc/RangeSelectionListener.hxx                |    2 
 chart2/source/controller/inc/TimerTriggeredControllerLock.hxx          |    2 
 chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx |    5 
 chart2/source/controller/main/ChartController.cxx                      |    2 
 chart2/source/controller/main/ChartController_Insert.cxx               |   22 
 chart2/source/controller/main/ChartController_Position.cxx             |    5 
 chart2/source/controller/main/ChartController_Properties.cxx           |    2 
 chart2/source/controller/main/ChartController_TextEdit.cxx             |    2 
 chart2/source/controller/main/ChartController_Tools.cxx                |   16 
 chart2/source/controller/main/ChartController_Window.cxx               |    7 
 chart2/source/controller/main/ChartModelClone.cxx                      |    5 
 chart2/source/controller/main/PositionAndSizeHelper.cxx                |    2 
 chart2/source/glew/glew.cxx                                            |18123 ++++++++++
 chart2/source/inc/AxisHelper.hxx                                       |    4 
 chart2/source/inc/ChartModelHelper.hxx                                 |   13 
 chart2/source/inc/ControllerLockGuard.hxx                              |   18 
 chart2/source/inc/DataSourceHelper.hxx                                 |    6 
 chart2/source/inc/DiagramHelper.hxx                                    |    9 
 chart2/source/inc/ExplicitCategoriesProvider.hxx                       |   13 
 chart2/source/inc/LegendHelper.hxx                                     |   12 
 chart2/source/inc/ObjectIdentifier.hxx                                 |   21 
 chart2/source/inc/TitleHelper.hxx                                      |   14 
 chart2/source/inc/chartview/ExplicitValueProvider.hxx                  |    8 
 chart2/source/model/main/ChartModel.cxx                                |   31 
 chart2/source/model/main/ChartModel.hxx                                |  585 
 chart2/source/model/main/ChartModel_Persistence.cxx                    |    2 
 chart2/source/model/main/_serviceregistration_model.cxx                |    8 
 chart2/source/tools/AxisHelper.cxx                                     |   11 
 chart2/source/tools/ChartModelHelper.cxx                               |   44 
 chart2/source/tools/ControllerLockGuard.cxx                            |   22 
 chart2/source/tools/DataSourceHelper.cxx                               |   28 
 chart2/source/tools/DiagramHelper.cxx                                  |   46 
 chart2/source/tools/ExplicitCategoriesProvider.cxx                     |  123 
 chart2/source/tools/InternalDataProvider.cxx                           |    4 
 chart2/source/tools/LegendHelper.cxx                                   |   42 
 chart2/source/tools/ObjectIdentifier.cxx                               |  136 
 chart2/source/tools/TitleHelper.cxx                                    |   80 
 chart2/source/view/axes/VCartesianAxis.cxx                             |   16 
 chart2/source/view/axes/VCoordinateSystem.cxx                          |   16 
 chart2/source/view/axes/VPolarAngleAxis.cxx                            |   12 
 chart2/source/view/charttypes/AreaChart.cxx                            |  319 
 chart2/source/view/charttypes/AreaChart.hxx                            |   11 
 chart2/source/view/charttypes/BarChart.cxx                             |    2 
 chart2/source/view/charttypes/BubbleChart.cxx                          |   33 
 chart2/source/view/charttypes/CandleStickChart.cxx                     |   44 
 chart2/source/view/charttypes/NetChart.cxx                             |  704 
 chart2/source/view/charttypes/NetChart.hxx                             |   83 
 chart2/source/view/charttypes/PieChart.cxx                             |    6 
 chart2/source/view/charttypes/VSeriesPlotter.cxx                       |   38 
 chart2/source/view/diagram/VDiagram.cxx                                |   33 
 chart2/source/view/inc/AbstractShapeFactory.hxx                        |  288 
 chart2/source/view/inc/DummyXShape.hxx                                 |  461 
 chart2/source/view/inc/LabelPositionHelper.hxx                         |    6 
 chart2/source/view/inc/OpenglShapeFactory.hxx                          |  201 
 chart2/source/view/inc/PlotterBase.hxx                                 |    4 
 chart2/source/view/inc/PlottingPositionHelper.hxx                      |    4 
 chart2/source/view/inc/PolarLabelPositionHelper.hxx                    |    2 
 chart2/source/view/inc/PropertyMapper.hxx                              |    4 
 chart2/source/view/inc/ShapeFactory.hxx                                |  139 
 chart2/source/view/inc/VDataSeries.hxx                                 |    5 
 chart2/source/view/inc/VDiagram.hxx                                    |    6 
 chart2/source/view/main/AbstractShapeFactory.cxx                       |  347 
 chart2/source/view/main/ChartView.cxx                                  |  425 
 chart2/source/view/main/ChartView.hxx                                  |  240 
 chart2/source/view/main/DataPointSymbolSupplier.cxx                    |   15 
 chart2/source/view/main/DrawModelWrapper.cxx                           |    8 
 chart2/source/view/main/DummyXShape.cxx                                |  851 
 chart2/source/view/main/LabelPositionHelper.cxx                        |    4 
 chart2/source/view/main/OpenglShapeFactory.cxx                         |  433 
 chart2/source/view/main/PlotterBase.cxx                                |    5 
 chart2/source/view/main/PlottingPositionHelper.cxx                     |    4 
 chart2/source/view/main/PolarLabelPositionHelper.cxx                   |    2 
 chart2/source/view/main/ShapeFactory.cxx                               |  449 
 chart2/source/view/main/VDataSeries.cxx                                |   24 
 chart2/source/view/main/VLegend.cxx                                    |   95 
 chart2/source/view/main/VLegend.hxx                                    |   15 
 chart2/source/view/main/VLegendSymbolFactory.cxx                       |  144 
 chart2/source/view/main/VTitle.cxx                                     |  176 
 config_host/config_oauth2.h.in                                         |   10 
 configure.ac                                                           |   48 
 desktop/source/app/cmdlineargs.cxx                                     |  781 
 desktop/source/app/cmdlineargs.hxx                                     |    1 
 external/curl/NSS-support-for-CERTINFO-feature.patch                   |  391 
 external/curl/UnpackedTarball_curl.mk                                  |    1 
 i18nlangtag/README                                                     |   45 
 i18npool/source/localedata/data/en_CA.xml                              |    3 
 i18npool/source/localedata/data/fr_CA.xml                              |    3 
 i18npool/source/localedata/data/shs_CA.xml                             |    3 
 include/comphelper/string.hxx                                          |   23 
 officecfg/registry/data/org/openoffice/Office/Common.xcu               |    2 
 oox/source/shape/WpsContext.cxx                                        |    2 
 oox/source/token/tokens.txt                                            |    1 
 scp2/source/ooo/common_brand.scp                                       |    4 
 scp2/source/ooo/file_ooo.scp                                           |    4 
 scp2/source/ooo/module_ooo.scp                                         |    8 
 scp2/source/ooo/module_ooo.ulf                                         |    8 
 setup_native/source/packinfo/packinfo_office.txt                       |    8 
 svtools/source/dialogs/ServerDetailsControls.cxx                       |    5 
 sw/Library_sw.mk                                                       |    1 
 sw/inc/IDocumentContentOperations.hxx                                  |   67 
 sw/inc/crsrsh.hxx                                                      |   36 
 sw/inc/doc.hxx                                                         |   14 
 sw/inc/editsh.hxx                                                      |    5 
 sw/inc/expfld.hxx                                                      |   34 
 sw/inc/fldbas.hxx                                                      |    7 
 sw/inc/fmtfld.hxx                                                      |   33 
 sw/inc/hintids.hxx                                                     |   12 
 sw/inc/ndtxt.hxx                                                       |   53 
 sw/inc/txatbase.hxx                                                    |   16 
 sw/inc/txtfld.hxx                                                      |   76 
 sw/inc/txtrfmrk.hxx                                                    |    3 
 sw/inc/txttxmrk.hxx                                                    |    1 
 sw/inc/viscrs.hxx                                                      |   21 
 sw/qa/extras/ooxmlimport/data/wps-only.docx                            |binary
 sw/qa/extras/ooxmlimport/ooxmlimport.cxx                               |    7 
 sw/sdi/_textsh.sdi                                                     |   15 
 sw/sdi/_viewsh.sdi                                                     |   12 
 sw/source/core/access/accportions.cxx                                  |    1 
 sw/source/core/bastyp/init.cxx                                         |    6 
 sw/source/core/crsr/callnk.cxx                                         |    2 
 sw/source/core/crsr/crsrsh.cxx                                         |   27 
 sw/source/core/crsr/crstrvl.cxx                                        |  407 
 sw/source/core/crsr/findattr.cxx                                       |    4 
 sw/source/core/crsr/findtxt.cxx                                        |   12 
 sw/source/core/crsr/overlayrangesoutline.cxx                           |  109 
 sw/source/core/crsr/overlayrangesoutline.hxx                           |   64 
 sw/source/core/crsr/swcrsr.cxx                                         |   97 
 sw/source/core/crsr/viscrs.cxx                                         |  127 
 sw/source/core/doc/dbgoutsw.cxx                                        |    4 
 sw/source/core/doc/doc.cxx                                             |   13 
 sw/source/core/doc/docedt.cxx                                          |    4 
 sw/source/core/doc/docfld.cxx                                          |   22 
 sw/source/core/doc/docfmt.cxx                                          |   40 
 sw/source/core/doc/docnum.cxx                                          |   10 
 sw/source/core/doc/docredln.cxx                                        |    2 
 sw/source/core/doc/docruby.cxx                                         |    4 
 sw/source/core/doc/doctxm.cxx                                          |    4 
 sw/source/core/doc/visiturl.cxx                                        |    2 
 sw/source/core/docnode/nodes.cxx                                       |    4 
 sw/source/core/edit/acorrect.cxx                                       |    2 
 sw/source/core/edit/edatmisc.cxx                                       |    4 
 sw/source/core/edit/edattr.cxx                                         |    5 
 sw/source/core/edit/edfld.cxx                                          |   80 
 sw/source/core/edit/edfldexp.cxx                                       |    1 
 sw/source/core/edit/editsh.cxx                                         |    2 
 sw/source/core/edit/edlingu.cxx                                        |    6 
 sw/source/core/edit/ednumber.cxx                                       |    6 
 sw/source/core/edit/edtox.cxx                                          |    4 
 sw/source/core/fields/expfld.cxx                                       |  401 
 sw/source/core/fields/fldbas.cxx                                       |   29 
 sw/source/core/fields/reffld.cxx                                       |    1 
 sw/source/core/frmedt/fefly1.cxx                                       |   76 
 sw/source/core/inc/docfld.hxx                                          |    5 
 sw/source/core/inc/rolbck.hxx                                          |    9 
 sw/source/core/inc/rootfrm.hxx                                         |    5 
 sw/source/core/inc/swfont.hxx                                          |   19 
 sw/source/core/inc/txttypes.hxx                                        |    1 
 sw/source/core/layout/flycnt.cxx                                       |   14 
 sw/source/core/layout/trvlfrm.cxx                                      |    4 
 sw/source/core/text/atrhndl.hxx                                        |    2 
 sw/source/core/text/atrstck.cxx                                        |   21 
 sw/source/core/text/inftxt.cxx                                         |   58 
 sw/source/core/text/itrform2.cxx                                       |   26 
 sw/source/core/text/porfld.cxx                                         |    6 
 sw/source/core/text/porlay.cxx                                         |    4 
 sw/source/core/text/pormulti.cxx                                       |   36 
 sw/source/core/text/portxt.cxx                                         |  118 
 sw/source/core/text/portxt.hxx                                         |   18 
 sw/source/core/text/txtfld.cxx                                         |   14 
 sw/source/core/tox/tox.cxx                                             |    2 
 sw/source/core/tox/txmsrt.cxx                                          |   14 
 sw/source/core/txtnode/atrfld.cxx                                      |  284 
 sw/source/core/txtnode/ndhints.cxx                                     |   16 
 sw/source/core/txtnode/ndtxt.cxx                                       |  365 
 sw/source/core/txtnode/swfont.cxx                                      |    3 
 sw/source/core/txtnode/thints.cxx                                      |  230 
 sw/source/core/txtnode/txatbase.cxx                                    |    1 
 sw/source/core/txtnode/txatritr.cxx                                    |   10 
 sw/source/core/txtnode/txtedt.cxx                                      |   39 
 sw/source/core/undo/SwUndoField.cxx                                    |    8 
 sw/source/core/undo/rolbck.cxx                                         |   19 
 sw/source/core/undo/unsect.cxx                                         |    7 
 sw/source/core/undo/untbl.cxx                                          |    3 
 sw/source/core/undo/untblk.cxx                                         |    2 
 sw/source/core/unocore/unocrsrhelper.cxx                               |    8 
 sw/source/core/unocore/unodraw.cxx                                     |    3 
 sw/source/core/unocore/unofield.cxx                                    |   22 
 sw/source/core/unocore/unoframe.cxx                                    |   25 
 sw/source/core/unocore/unoidx.cxx                                      |   12 
 sw/source/core/unocore/unoportenum.cxx                                 |   64 
 sw/source/core/unocore/unorefmk.cxx                                    |   20 
 sw/source/core/view/vprint.cxx                                         |   17 
 sw/source/filter/ascii/ascatr.cxx                                      |   53 
 sw/source/filter/ascii/parasc.cxx                                      |    4 
 sw/source/filter/html/css1atr.cxx                                      |    2 
 sw/source/filter/html/htmlatr.cxx                                      |   12 
 sw/source/filter/html/swhtml.cxx                                       |    1 
 sw/source/filter/html/wrthtml.cxx                                      |    2 
 sw/source/filter/ww1/fltshell.cxx                                      |    4 
 sw/source/filter/ww1/w1filter.cxx                                      |    4 
 sw/source/filter/ww8/attributeoutputbase.hxx                           |    2 
 sw/source/filter/ww8/wrtw8esh.cxx                                      |    3 
 sw/source/filter/ww8/wrtw8nds.cxx                                      |   25 
 sw/source/filter/ww8/ww8atr.cxx                                        |    7 
 sw/source/filter/ww8/ww8par.cxx                                        |    9 
 sw/source/filter/ww8/ww8par3.cxx                                       |   74 
 sw/source/filter/ww8/ww8par5.cxx                                       |    6 
 sw/source/ui/app/docst.cxx                                             |    4 
 sw/source/ui/docvw/edtdd.cxx                                           |    4 
 sw/source/ui/docvw/edtwin.cxx                                          |  104 
 sw/source/ui/fldui/fldedt.cxx                                          |   16 
 sw/source/ui/fldui/fldmgr.cxx                                          |   12 
 sw/source/ui/inc/wrtsh.hxx                                             |    2 
 sw/source/ui/lingu/hhcwrp.cxx                                          |    6 
 sw/source/ui/misc/insfnote.cxx                                         |    2 
 sw/source/ui/misc/titlepage.cxx                                        |    8 
 sw/source/ui/shells/annotsh.cxx                                        |   36 
 sw/source/ui/shells/basesh.cxx                                         |   70 
 sw/source/ui/shells/drwtxtex.cxx                                       |   43 
 sw/source/ui/shells/frmsh.cxx                                          |   10 
 sw/source/ui/shells/grfsh.cxx                                          |   15 
 sw/source/ui/shells/langhelper.cxx                                     |    6 
 sw/source/ui/shells/listsh.cxx                                         |    7 
 sw/source/ui/shells/tabsh.cxx                                          |    6 
 sw/source/ui/shells/textfld.cxx                                        |  144 
 sw/source/ui/shells/textidx.cxx                                        |    9 
 sw/source/ui/shells/textsh.cxx                                         |  149 
 sw/source/ui/shells/textsh1.cxx                                        |  121 
 sw/source/ui/shells/txtattr.cxx                                        |   20 
 sw/source/ui/uiview/formatclipboard.cxx                                |    6 
 sw/source/ui/uiview/view2.cxx                                          |    2 
 sw/source/ui/uiview/viewmdi.cxx                                        |   28 
 sw/source/ui/uiview/viewsrch.cxx                                       |    2 
 sw/source/ui/uiview/viewstat.cxx                                       |   91 
 sw/source/ui/uiview/viewtab.cxx                                        |   10 
 sw/source/ui/wrtsh/delete.cxx                                          |    2 
 sw/source/ui/wrtsh/wrtsh1.cxx                                          |   24 
 sw/source/ui/wrtsh/wrtsh2.cxx                                          |   13 
 ucb/source/ucp/cmis/cmis_content.cxx                                   |    5 
 ucb/source/ucp/cmis/cmis_repo_content.cxx                              |   11 
 winaccessibility/inc/AccEventListener.hxx                              |   15 
 winaccessibility/inc/AccTopWindowListener.hxx                          |   13 
 winaccessibility/source/UAccCOM/AccTable.cxx                           |    5 
 winaccessibility/source/UAccCOM/AccTextBase.cxx                        |    4 
 winaccessibility/source/service/AccEventListener.cxx                   |   33 
 winaccessibility/source/service/AccTopWindowListener.cxx               |   30 
 winaccessibility/source/service/msaaservice_impl.cxx                   |    2 
 writerfilter/source/dmapper/GraphicImport.cxx                          |    6 
 278 files changed, 49239 insertions(+), 4393 deletions(-)

New commits:
commit 845893cd818cc0f3e0dfe54a0c6c061717c86d77
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Nov 19 17:42:13 2013 +0100

    oox: tokenize wps:cNvCnPr
    
    Change-Id: I4d7a962e01f5a41c3ea629f73433416195f2259c

diff --git a/oox/source/shape/WpsContext.cxx b/oox/source/shape/WpsContext.cxx
index 7b90770..8f4987a 100644
--- a/oox/source/shape/WpsContext.cxx
+++ b/oox/source/shape/WpsContext.cxx
@@ -36,6 +36,8 @@ oox::core::ContextHandlerRef WpsContext::onCreateContext(sal_Int32 nElementToken
     {
         case XML_wsp:
             break;
+        case XML_cNvCnPr:
+            break;
         case XML_cNvSpPr:
             break;
         case XML_spPr:
diff --git a/oox/source/token/tokens.txt b/oox/source/token/tokens.txt
index 952520f..9f67181 100644
--- a/oox/source/token/tokens.txt
+++ b/oox/source/token/tokens.txt
@@ -991,6 +991,7 @@ cBhvr
 cGp
 cGpRule
 cMediaNode
+cNvCnPr
 cNvCxnSpPr
 cNvGraphicFramePr
 cNvGrpSpPr
commit 2d8cac51c6d5205a27d90bd9237c8ed1e4b8deea
Author: Eike Rathke <erack at redhat.com>
Date:   Tue Nov 19 17:35:00 2013 +0100

    added date acceptance patterns to Canadian locales, fdo#71664
    
    Complete set is now Y-M-D;M-D;M/D/Y;M/D
    
    Change-Id: I42ed59fb325b391943608a10ded7ce74c80656e1

diff --git a/i18npool/source/localedata/data/en_CA.xml b/i18npool/source/localedata/data/en_CA.xml
index ebb3064..5321210 100644
--- a/i18npool/source/localedata/data/en_CA.xml
+++ b/i18npool/source/localedata/data/en_CA.xml
@@ -52,6 +52,9 @@
     <MeasurementSystem>metric</MeasurementSystem>
   </LC_CTYPE>
   <LC_FORMAT>
+    <DateAcceptancePattern>M-D</DateAcceptancePattern>
+    <DateAcceptancePattern>M/D/Y</DateAcceptancePattern>
+    <DateAcceptancePattern>M/D</DateAcceptancePattern>
     <FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER" formatindex="0">
       <FormatCode>General</FormatCode>
     </FormatElement>
diff --git a/i18npool/source/localedata/data/fr_CA.xml b/i18npool/source/localedata/data/fr_CA.xml
index cb31be9..2b8ddcf 100644
--- a/i18npool/source/localedata/data/fr_CA.xml
+++ b/i18npool/source/localedata/data/fr_CA.xml
@@ -52,6 +52,9 @@
     <MeasurementSystem>metric</MeasurementSystem>
   </LC_CTYPE>
   <LC_FORMAT>
+    <DateAcceptancePattern>M-D</DateAcceptancePattern>
+    <DateAcceptancePattern>M/D/Y</DateAcceptancePattern>
+    <DateAcceptancePattern>M/D</DateAcceptancePattern>
     <FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER" formatindex="0">
       <FormatCode>Standard</FormatCode>
     </FormatElement>
diff --git a/i18npool/source/localedata/data/shs_CA.xml b/i18npool/source/localedata/data/shs_CA.xml
index baece18..dac14e7 100644
--- a/i18npool/source/localedata/data/shs_CA.xml
+++ b/i18npool/source/localedata/data/shs_CA.xml
@@ -52,6 +52,9 @@
     <MeasurementSystem>metric</MeasurementSystem>
   </LC_CTYPE>
   <LC_FORMAT replaceFrom="[CURRENCY]" replaceTo="[$$-648]">
+    <DateAcceptancePattern>M-D</DateAcceptancePattern>
+    <DateAcceptancePattern>M/D/Y</DateAcceptancePattern>
+    <DateAcceptancePattern>M/D</DateAcceptancePattern>
     <FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER" formatindex="0">
       <FormatCode>General</FormatCode>
     </FormatElement>
commit 03fdec57762b287cb8e0b6b446f5e7ba1b187f88
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Nov 19 17:24:36 2013 +0100

    winaccessibility: use WeakImplHelper
    
    Change-Id: I5872e520ca009a0f9277827d72e72befe3323a06

diff --git a/winaccessibility/inc/AccEventListener.hxx b/winaccessibility/inc/AccEventListener.hxx
index 5978ddd..263e525 100644
--- a/winaccessibility/inc/AccEventListener.hxx
+++ b/winaccessibility/inc/AccEventListener.hxx
@@ -22,7 +22,9 @@
 
 #include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
 #include <com/sun/star/accessibility/XAccessible.hpp>
-#include <cppuhelper/weak.hxx>
+
+#include <cppuhelper/implbase1.hxx>
+
 #include <osl/mutex.hxx>
 
 class AccObjectManagerAgent;
@@ -32,12 +34,10 @@ using namespace ::com::sun::star::uno;
  * procedure of all the event handling and provides the basic support for some simple
  * methods.
  */
-class AccEventListener:
-            public com::sun::star::accessibility::XAccessibleEventListener,
-            public ::cppu::OWeakObject
+class AccEventListener
+    : public ::cppu::WeakImplHelper1<
+        com::sun::star::accessibility::XAccessibleEventListener>
 {
-private:
-    oslInterlockedCount m_refcount;
 protected:
     //accessible owner's pointer
     com::sun::star::accessibility::XAccessible* pAccessible;
@@ -74,9 +74,6 @@ public:
 
     //for interface
     virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
-    virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
-    virtual void SAL_CALL acquire() throw ();
-    virtual void SAL_CALL release() throw ();
     //get the accessible role of pAccessible
     virtual short SAL_CALL getRole();
     //get the accessible parent's role
diff --git a/winaccessibility/inc/AccTopWindowListener.hxx b/winaccessibility/inc/AccTopWindowListener.hxx
index 11a6d18..edf83b3 100644
--- a/winaccessibility/inc/AccTopWindowListener.hxx
+++ b/winaccessibility/inc/AccTopWindowListener.hxx
@@ -23,7 +23,8 @@
 #include <com/sun/star/awt/XTopWindowListener.hpp>
 #include <com/sun/star/awt/XExtendedToolkit.hpp>
 #include <com/sun/star/accessibility/XAccessibleContext.hpp>
-#include <cppuhelper/weak.hxx>
+
+#include <cppuhelper/implbase1.hxx>
 
 #include  "AccObjectManagerAgent.hxx"
 
@@ -34,14 +35,11 @@
  * In this method, all the accessible objects (including COM object and Uno objects) are created and
  * cached into bridge managers, and they are monitored by listeners for later accessible evnet handling.
  */
-class AccTopWindowListener:
-            public com::sun::star::awt::XTopWindowListener,
-            public ::cppu::OWeakObject
-
+class AccTopWindowListener
+    : public ::cppu::WeakImplHelper1<com::sun::star::awt::XTopWindowListener>
 {
 private:
     AccObjectManagerAgent accManagerAgent;
-    oslInterlockedCount m_refcount;
 public:
     AccTopWindowListener();
     virtual ~AccTopWindowListener();
@@ -53,9 +51,6 @@ public:
     virtual void SAL_CALL windowActivated( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
     virtual void SAL_CALL windowDeactivated( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
     virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
-    virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
-    virtual void SAL_CALL acquire(  ) throw ();
-    virtual void SAL_CALL release(  ) throw ();
     virtual void AddAllListeners(com::sun::star::accessibility::XAccessible* pAccessible,com::sun::star::accessibility::XAccessible* pParentXAcc,HWND pWND );
     //for On-Demand load.
     virtual void handleWindowOpened( com::sun::star::accessibility::XAccessible* pAccessible );
diff --git a/winaccessibility/source/service/AccEventListener.cxx b/winaccessibility/source/service/AccEventListener.cxx
index df2a42c7..de4d7b4 100644
--- a/winaccessibility/source/service/AccEventListener.cxx
+++ b/winaccessibility/source/service/AccEventListener.cxx
@@ -47,10 +47,9 @@ using namespace cppu;
 
 AccEventListener::AccEventListener(com::sun::star::accessibility::XAccessible* pAcc,
                                    AccObjectManagerAgent* Agent)
-        :pAccessible(pAcc),
-        pAgent(Agent),
-        m_isDisposed(false),
-        m_refcount(0)
+    : pAccessible(pAcc)
+    , pAgent(Agent)
+    , m_isDisposed(false)
 {}
 
 AccEventListener::~AccEventListener()
@@ -280,30 +279,4 @@ throw (::com::sun::star::uno::RuntimeException)
     removeMeFromBroadcaster();
 }
 
-//need to investigate further
-::com::sun::star::uno::Any SAL_CALL AccEventListener::queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException)
-{
-    if(aType.equals(::getCppuType( (Reference< com::sun::star::accessibility::XAccessibleEventListener> const *)0 ) ))
-    {
-        Reference< com::sun::star::accessibility::XAccessibleEventListener> xEventListener( static_cast< com::sun::star::accessibility::XAccessibleEventListener* >(this));
-        return makeAny(xEventListener);
-    }
-
-    return Any();
-}
-
-void AccEventListener::acquire(  ) throw ()
-{
-    ::osl_incrementInterlockedCount( &m_refcount );
-}
-
-void AccEventListener::release() throw ()
-{
-    // thread-safe decrementation of reference count
-    if (0 == ::osl_decrementInterlockedCount( &m_refcount ))
-    {
-        delete this; // shutdown this object
-    }
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/winaccessibility/source/service/AccTopWindowListener.cxx b/winaccessibility/source/service/AccTopWindowListener.cxx
index 5c55cbd..fac53d6 100644
--- a/winaccessibility/source/service/AccTopWindowListener.cxx
+++ b/winaccessibility/source/service/AccTopWindowListener.cxx
@@ -117,9 +117,8 @@ void AccTopWindowListener::handleWindowOpened( com::sun::star::accessibility::XA
     }
 }
 
-AccTopWindowListener::AccTopWindowListener():
-        accManagerAgent(),
-        m_refcount(1)
+AccTopWindowListener::AccTopWindowListener()
+    : accManagerAgent()
 {
 }
 
@@ -272,29 +271,4 @@ void AccTopWindowListener::disposing( const ::com::sun::star::lang::EventObject&
 {
 }
 
-//need to investigate further
-::com::sun::star::uno::Any SAL_CALL AccTopWindowListener::queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException)
-{
-    if (aType.equals( ::getCppuType( (Reference< com::sun::star::awt::XTopWindowListener> const *)0 ) ))
-    {
-        Reference< com::sun::star::awt::XTopWindowListener> xTopListener( static_cast< com::sun::star::awt::XTopWindowListener* >(this));
-        return makeAny(xTopListener);
-    }
-    return Any();
-}
-
-void AccTopWindowListener::acquire( ) throw ()
-{
-    ::osl_incrementInterlockedCount( &m_refcount );
-}
-
-void AccTopWindowListener::release() throw ()
-{
-    // thread-safe decrementation of reference count
-    if (0 == ::osl_decrementInterlockedCount( &m_refcount ))
-    {
-        delete this; // shutdown this object
-    }
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 76ff4c5366fd89f2736dfc7b58d5a38e43ad7062
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Nov 19 17:26:29 2013 +0100

    Disambiguate std::max call
    
    Change-Id: Ie389d52f5914f49dcd61d5543ed9413ab82101f9

diff --git a/sw/source/core/txtnode/atrfld.cxx b/sw/source/core/txtnode/atrfld.cxx
index 4307fc2..5810067 100644
--- a/sw/source/core/txtnode/atrfld.cxx
+++ b/sw/source/core/txtnode/atrfld.cxx
@@ -482,7 +482,7 @@ void SwTxtInputFld::UpdateFieldContent()
         // skip CH_TXT_ATR_INPUTFIELDSTART character
         const xub_StrLen nIdx = (*GetStart()) + 1;
         // skip CH_TXT_ATR_INPUTFIELDEND character
-        const xub_StrLen nLen = static_cast<xub_StrLen>(std::max( 0, ( (*End()) - 1 - nIdx ) ));
+        const xub_StrLen nLen = static_cast<xub_StrLen>(std::max<sal_Int32>( 0, ( (*End()) - 1 - nIdx ) ));
         const OUString aNewFieldContent = GetTxtNode().GetExpandTxt( nIdx, nLen );
 
         const SwInputField* pInputFld = dynamic_cast<const SwInputField*>(GetFmtFld().GetField());
commit 87e407f68876b196704e595ff841b2a01bf1bbb9
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Nov 19 15:43:37 2013 +0100

    Use startsWith rest parameter
    
    Change-Id: I5ec5f68c13ceb93b4e2cea83ec757b9427b8608d

diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index 936844f..047c01b 100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -163,18 +163,11 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
         {
             m_bEmpty = false;
             OUString oArg;
-            bool bDeprecated = false;
-            if (aArg.startsWith("--"))
-            {
-                oArg = OUString(aArg.getStr()+2, aArg.getLength()-2);
-            }
-            else if (aArg.startsWith("-"))
-            {
-                if ( aArg.getLength() > 2 ) // -h, -o, -n, -? are still valid
-                    bDeprecated = true;
-                oArg = OUString(aArg.getStr()+1, aArg.getLength()-1);
-            }
+            bool bDeprecated = !aArg.startsWith("--", &oArg)
+                && aArg.startsWith("-", &oArg) && aArg.getLength() > 2;
+                // -h, -?, -n, -o, -p are still valid
 
+            OUString rest;
             if ( oArg == "minimized" )
             {
                 m_minimized = true;
@@ -294,25 +287,25 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 bDeprecated = false;
             }
 #endif
-            else if ( oArg.startsWith("infilter="))
+            else if ( oArg.startsWith("infilter=", &rest))
             {
-                m_infilter.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("infilter=")));
+                m_infilter.push_back(rest);
             }
-            else if ( oArg.startsWith("accept="))
+            else if ( oArg.startsWith("accept=", &rest))
             {
-                m_accept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("accept=")));
+                m_accept.push_back(rest);
             }
-            else if ( oArg.startsWith("unaccept="))
+            else if ( oArg.startsWith("unaccept=", &rest))
             {
-                m_unaccept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("unaccept=")));
+                m_unaccept.push_back(rest);
             }
-            else if ( oArg.startsWith("language="))
+            else if ( oArg.startsWith("language=", &rest))
             {
-                m_language = oArg.copy(RTL_CONSTASCII_LENGTH("language="));
+                m_language = rest;
             }
-            else if ( oArg.startsWith("pidfile="))
+            else if ( oArg.startsWith("pidfile=", &rest))
             {
-                m_pidfile = oArg.copy(RTL_CONSTASCII_LENGTH("pidfile="));
+                m_pidfile = rest;
             }
             else if ( oArg == "writer" )
             {
commit 72c8db4987c1df7ca2673beb1dc43cf879102251
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Nov 19 15:28:44 2013 +0100

    Consistently accept all cmd line args only in lower case
    
    Change-Id: Ie57814f1e938ee9d909d69a518bed29026cb4963

diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index 3c666b7..936844f 100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -263,7 +263,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
             {
                 m_version = true;
             }
-            else if ( oArg.startsWithIgnoreAsciiCase("splash-pipe=") )
+            else if ( oArg.startsWith("splash-pipe=") )
             {
                 m_splashpipe = true;
             }
@@ -294,23 +294,23 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 bDeprecated = false;
             }
 #endif
-            else if ( oArg.startsWithIgnoreAsciiCase("infilter="))
+            else if ( oArg.startsWith("infilter="))
             {
                 m_infilter.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("infilter=")));
             }
-            else if ( oArg.startsWithIgnoreAsciiCase("accept="))
+            else if ( oArg.startsWith("accept="))
             {
                 m_accept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("accept=")));
             }
-            else if ( oArg.startsWithIgnoreAsciiCase("unaccept="))
+            else if ( oArg.startsWith("unaccept="))
             {
                 m_unaccept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("unaccept=")));
             }
-            else if ( oArg.startsWithIgnoreAsciiCase("language="))
+            else if ( oArg.startsWith("language="))
             {
                 m_language = oArg.copy(RTL_CONSTASCII_LENGTH("language="));
             }
-            else if ( oArg.startsWithIgnoreAsciiCase("pidfile="))
+            else if ( oArg.startsWith("pidfile="))
             {
                 m_pidfile = oArg.copy(RTL_CONSTASCII_LENGTH("pidfile="));
             }
@@ -354,7 +354,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 m_web = true;
                 m_bDocumentArgs = true;
             }
-            else if ( aArg.equalsIgnoreAsciiCase("-n"))
+            else if ( aArg == "-n" )
             {
                 // force new documents based on the following documents
                 bForceNewEvent  = true;
@@ -366,7 +366,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 bStartEvent     = false;
                 bDisplaySpec    = false;
             }
-            else if ( aArg.equalsIgnoreAsciiCase("-o"))
+            else if ( aArg == "-o" )
             {
                 // force open documents regardless if they are templates or not
                 bForceOpenEvent = true;
@@ -378,7 +378,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 bStartEvent     = false;
                 bDisplaySpec    = false;
             }
-            else if ( oArg.equalsIgnoreAsciiCase("pt"))
+            else if ( oArg == "pt" )
             {
                 // Print to special printer
                 bPrintToEvent   = true;
@@ -391,7 +391,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 bDisplaySpec    = false;
                 bForceOpenEvent = false;
             }
-            else if ( aArg.equalsIgnoreAsciiCase("-p"))
+            else if ( aArg == "-p" )
             {
                 // Print to default printer
                 bPrintEvent     = true;
@@ -403,7 +403,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 bStartEvent     = false;
                 bDisplaySpec    = false;
             }
-            else if ( oArg.equalsIgnoreAsciiCase("view"))
+            else if ( oArg == "view")
             {
                 // open in viewmode
                 bOpenEvent      = false;
@@ -415,7 +415,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 bStartEvent     = false;
                 bDisplaySpec    = false;
             }
-            else if ( oArg.equalsIgnoreAsciiCase("show"))
+            else if ( oArg == "show" )
             {
                 // open in viewmode
                 bOpenEvent      = false;
@@ -427,7 +427,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 bForceOpenEvent = false;
                 bDisplaySpec    = false;
             }
-            else if ( oArg.equalsIgnoreAsciiCase("display"))
+            else if ( oArg == "display" )
             {
                 // set display
                 bOpenEvent      = false;
@@ -439,7 +439,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 bStartEvent     = false;
                 bDisplaySpec    = true;
             }
-            else if ( oArg.equalsIgnoreAsciiCase("language"))
+            else if ( oArg == "language" )
             {
                 bOpenEvent      = false;
                 bPrintEvent     = false;
@@ -450,23 +450,22 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 bStartEvent     = false;
                 bDisplaySpec    = false;
             }
-            else if ( oArg.equalsIgnoreAsciiCase("convert-to"))
+            else if ( oArg == "convert-to" )
             {
                 bOpenEvent = false;
                 bConversionEvent = true;
                 bConversionParamsEvent = true;
             }
-            else if ( oArg.equalsIgnoreAsciiCase("print-to-file"))
+            else if ( oArg == "print-to-file" )
             {
                 bOpenEvent = false;
                 bBatchPrintEvent = true;
             }
-            else if ( oArg.equalsIgnoreAsciiCase("printer-name") &&
-                      bBatchPrintEvent )
+            else if ( oArg == "printer-name" && bBatchPrintEvent )
             {
                 bBatchPrinterNameEvent = true;
             }
-            else if ( oArg.equalsIgnoreAsciiCase("outdir") &&
+            else if ( oArg == "outdir" &&
                       (bConversionEvent || bBatchPrintEvent) )
             {
                 bConversionOutEvent = true;
@@ -478,15 +477,15 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                 // primitive tools that /bin/sh offers, ignore them here
                 if (
 #if defined UNX
-                    !oArg.equalsIgnoreAsciiCase("backtrace") &&
-                    !oArg.equalsIgnoreAsciiCase("strace") &&
-                    !oArg.equalsIgnoreAsciiCase("valgrind") &&
+                    oArg != "backtrace" &&
+                    oArg != "strace" &&
+                    oArg != "valgrind" &&
                     // for X Session Management, handled in
                     // vcl/unx/generic/app/sm.cxx:
-                    !oArg.startsWith("session=") &&
+                    oArg != "session=" &&
 #endif
                     //ignore additional legacy options that don't do anything anymore
-                    !oArg.equalsIgnoreAsciiCase("nocrashreport") &&
+                    oArg != "nocrashreport" &&
                     m_unknown.isEmpty())
                 {
                     m_unknown = aArg;
commit 5993dc79e84ef8f46a36ba78a84c6a645d704613
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Nov 19 14:38:04 2013 +0100

    Consistently warn about all deprecated cmd line args starting with a single -
    
    Change-Id: Ib4cb8939b0b12dd01af3bb845649e5ac5480352b

diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index 30417a7..3c666b7 100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -163,221 +163,414 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
         {
             m_bEmpty = false;
             OUString oArg;
-            if ( !InterpretCommandLineParameter( aArg, oArg ))
+            bool bDeprecated = false;
+            if (aArg.startsWith("--"))
             {
-                if ( aArg.startsWith("-") )
-                {
-                    // handle this argument as an option
-                    if ( aArg.equalsIgnoreAsciiCase("-n"))
-                    {
-                        // force new documents based on the following documents
-                        bForceNewEvent  = true;
-                        bOpenEvent      = false;
-                        bForceOpenEvent = false;
-                        bPrintToEvent   = false;
-                        bPrintEvent     = false;
-                        bViewEvent      = false;
-                        bStartEvent     = false;
-                        bDisplaySpec    = false;
-                    }
-                    else if ( aArg.equalsIgnoreAsciiCase("-o"))
-                    {
-                        // force open documents regardless if they are templates or not
-                        bForceOpenEvent = true;
-                        bOpenEvent      = false;
-                        bForceNewEvent  = false;
-                        bPrintToEvent   = false;
-                        bPrintEvent     = false;
-                        bViewEvent      = false;
-                        bStartEvent     = false;
-                        bDisplaySpec    = false;
-                    }
-                    else if ( oArg.equalsIgnoreAsciiCase("pt"))
-                    {
-                        // Print to special printer
-                        bPrintToEvent   = true;
-                        bPrinterName    = true;
-                        bPrintEvent     = false;
-                        bOpenEvent      = false;
-                        bForceNewEvent  = false;
-                        bViewEvent      = false;
-                        bStartEvent     = false;
-                        bDisplaySpec    = false;
-                        bForceOpenEvent = false;
-                   }
-                   else if ( aArg.equalsIgnoreAsciiCase("-p"))
-                   {
-                        // Print to default printer
-                        bPrintEvent     = true;
-                        bPrintToEvent   = false;
-                        bOpenEvent      = false;
-                        bForceNewEvent  = false;
-                        bForceOpenEvent = false;
-                        bViewEvent      = false;
-                        bStartEvent     = false;
-                        bDisplaySpec    = false;
-                   }
-                   else if ( oArg.equalsIgnoreAsciiCase("view"))
-                   {
-                        // open in viewmode
-                        bOpenEvent      = false;
-                        bPrintEvent     = false;
-                        bPrintToEvent   = false;
-                        bForceNewEvent  = false;
-                        bForceOpenEvent = false;
-                        bViewEvent      = true;
-                        bStartEvent     = false;
-                        bDisplaySpec    = false;
-                   }
-                   else if ( oArg.equalsIgnoreAsciiCase("show"))
-                   {
-                        // open in viewmode
-                        bOpenEvent      = false;
-                        bViewEvent      = false;
-                        bStartEvent     = true;
-                        bPrintEvent     = false;
-                        bPrintToEvent   = false;
-                        bForceNewEvent  = false;
-                        bForceOpenEvent = false;
-                        bDisplaySpec    = false;
-                    }
-                    else if ( oArg.equalsIgnoreAsciiCase("display"))
-                    {
-                        // set display
-                        bOpenEvent      = false;
-                        bPrintEvent     = false;
-                        bForceOpenEvent = false;
-                        bPrintToEvent   = false;
-                        bForceNewEvent  = false;
-                        bViewEvent      = false;
-                        bStartEvent     = false;
-                        bDisplaySpec    = true;
-                    }
-                    else if ( oArg.equalsIgnoreAsciiCase("language"))
-                    {
-                        bOpenEvent      = false;
-                        bPrintEvent     = false;
-                        bForceOpenEvent = false;
-                        bPrintToEvent   = false;
-                        bForceNewEvent  = false;
-                        bViewEvent      = false;
-                        bStartEvent     = false;
-                        bDisplaySpec    = false;
-                    }
-                    else if ( oArg.equalsIgnoreAsciiCase("convert-to"))
-                    {
-                        bOpenEvent = false;
-                        bConversionEvent = true;
-                        bConversionParamsEvent = true;
-                    }
-                    else if ( oArg.equalsIgnoreAsciiCase("print-to-file"))
-                    {
-                        bOpenEvent = false;
-                        bBatchPrintEvent = true;
-                    }
-                    else if ( oArg.equalsIgnoreAsciiCase("printer-name") &&
-                              bBatchPrintEvent )
-                    {
-                        bBatchPrinterNameEvent = true;
-                    }
-                    else if ( oArg.equalsIgnoreAsciiCase("outdir") &&
-                              (bConversionEvent || bBatchPrintEvent) )
-                    {
-                        bConversionOutEvent = true;
-                    }
-                    else
-                    // because it's impossible to filter these options that
-                    // are handled in the soffice shell script with the
-                    // primitive tools that /bin/sh offers, ignore them here
-                    if (
+                oArg = OUString(aArg.getStr()+2, aArg.getLength()-2);
+            }
+            else if (aArg.startsWith("-"))
+            {
+                if ( aArg.getLength() > 2 ) // -h, -o, -n, -? are still valid
+                    bDeprecated = true;
+                oArg = OUString(aArg.getStr()+1, aArg.getLength()-1);
+            }
+
+            if ( oArg == "minimized" )
+            {
+                m_minimized = true;
+            }
+            else if ( oArg == "invisible" )
+            {
+                m_invisible = true;
+            }
+            else if ( oArg == "norestore" )
+            {
+                m_norestore = true;
+            }
+            else if ( oArg == "nodefault" )
+            {
+                m_nodefault = true;
+            }
+            else if ( oArg == "headless" )
+            {
+                // Headless means also invisibile, so set this parameter to true!
+                m_headless = true;
+                m_invisible = true;
+            }
+            else if ( oArg == "quickstart" )
+            {
+#if defined(ENABLE_QUICKSTART_APPLET)
+                m_quickstart = true;
+#endif
+                m_noquickstart = false;
+            }
+            else if ( oArg == "quickstart=no" )
+            {
+                m_noquickstart = true;
+                m_quickstart = false;
+            }
+            else if ( oArg == "terminate_after_init" )
+            {
+                m_terminateafterinit = true;
+            }
+            else if ( oArg == "nofirststartwizard" )
+            {
+                m_nofirststartwizard = true;
+            }
+            else if ( oArg == "nologo" )
+            {
+                m_nologo = true;
+            }
+#if HAVE_FEATURE_MULTIUSER_ENVIRONMENT
+            else if ( oArg == "nolockcheck" )
+            {
+                m_nolockcheck = true;
+            }
+#endif
+            else if ( oArg == "help" || aArg == "-h" || aArg == "-?" )
+            {
+                m_help = true;
+            }
+            else if ( oArg == "helpwriter" )
+            {
+                m_helpwriter = true;
+            }
+            else if ( oArg == "helpcalc" )
+            {
+                m_helpcalc = true;
+            }
+            else if ( oArg == "helpdraw" )
+            {
+                m_helpdraw = true;
+            }
+            else if ( oArg == "helpimpress" )
+            {
+                m_helpimpress = true;
+            }
+            else if ( oArg == "helpbase" )
+            {
+                m_helpbase = true;
+            }
+            else if ( oArg == "helpbasic" )
+            {
+                m_helpbasic = true;
+            }
+            else if ( oArg == "helpmath" )
+            {
+                m_helpmath = true;
+            }
+            else if ( oArg == "version" )
+            {
+                m_version = true;
+            }
+            else if ( oArg.startsWithIgnoreAsciiCase("splash-pipe=") )
+            {
+                m_splashpipe = true;
+            }
+#ifdef MACOSX
+            /* #i84053# ignore -psn on Mac
+               Platform dependent #ifdef here is ugly, however this is currently
+               the only platform dependent parameter. Should more appear
+               we should find a better solution
+            */
+            else if ( aArg.startsWith("-psn") )
+            {
+                bDeprecated = false;
+            }
+#endif
+#if HAVE_FEATURE_MACOSX_SANDBOX
+            else if ( oArg == "nstemporarydirectory" )
+            {
+                printf("%s\n", [NSTemporaryDirectory() UTF8String]);
+                exit(0);
+            }
+#endif
+#ifdef WIN32
+            /* fdo#57203 ignore -Embedding on Windows
+               when LibreOffice is launched by COM+
+            */
+            else if ( oArg == "Embedding" )
+            {
+                bDeprecated = false;
+            }
+#endif
+            else if ( oArg.startsWithIgnoreAsciiCase("infilter="))
+            {
+                m_infilter.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("infilter=")));
+            }
+            else if ( oArg.startsWithIgnoreAsciiCase("accept="))
+            {
+                m_accept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("accept=")));
+            }
+            else if ( oArg.startsWithIgnoreAsciiCase("unaccept="))
+            {
+                m_unaccept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("unaccept=")));
+            }
+            else if ( oArg.startsWithIgnoreAsciiCase("language="))
+            {
+                m_language = oArg.copy(RTL_CONSTASCII_LENGTH("language="));
+            }
+            else if ( oArg.startsWithIgnoreAsciiCase("pidfile="))
+            {
+                m_pidfile = oArg.copy(RTL_CONSTASCII_LENGTH("pidfile="));
+            }
+            else if ( oArg == "writer" )
+            {
+                m_writer = true;
+                m_bDocumentArgs = true;
+            }
+            else if ( oArg == "calc" )
+            {
+                m_calc = true;
+                m_bDocumentArgs = true;
+            }
+            else if ( oArg == "draw" )
+            {
+                m_draw = true;
+                m_bDocumentArgs = true;
+            }
+            else if ( oArg == "impress" )
+            {
+                m_impress = true;
+                m_bDocumentArgs = true;
+            }
+            else if ( oArg == "base" )
+            {
+                m_base = true;
+                m_bDocumentArgs = true;
+            }
+            else if ( oArg == "global" )
+            {
+                m_global = true;
+                m_bDocumentArgs = true;
+            }
+            else if ( oArg == "math" )
+            {
+                m_math = true;
+                m_bDocumentArgs = true;
+            }
+            else if ( oArg == "web" )
+            {
+                m_web = true;
+                m_bDocumentArgs = true;
+            }
+            else if ( aArg.equalsIgnoreAsciiCase("-n"))
+            {
+                // force new documents based on the following documents
+                bForceNewEvent  = true;
+                bOpenEvent      = false;
+                bForceOpenEvent = false;
+                bPrintToEvent   = false;
+                bPrintEvent     = false;
+                bViewEvent      = false;
+                bStartEvent     = false;
+                bDisplaySpec    = false;
+            }
+            else if ( aArg.equalsIgnoreAsciiCase("-o"))
+            {
+                // force open documents regardless if they are templates or not
+                bForceOpenEvent = true;
+                bOpenEvent      = false;
+                bForceNewEvent  = false;
+                bPrintToEvent   = false;
+                bPrintEvent     = false;
+                bViewEvent      = false;
+                bStartEvent     = false;
+                bDisplaySpec    = false;
+            }
+            else if ( oArg.equalsIgnoreAsciiCase("pt"))
+            {
+                // Print to special printer
+                bPrintToEvent   = true;
+                bPrinterName    = true;
+                bPrintEvent     = false;
+                bOpenEvent      = false;
+                bForceNewEvent  = false;
+                bViewEvent      = false;
+                bStartEvent     = false;
+                bDisplaySpec    = false;
+                bForceOpenEvent = false;
+            }
+            else if ( aArg.equalsIgnoreAsciiCase("-p"))
+            {
+                // Print to default printer
+                bPrintEvent     = true;
+                bPrintToEvent   = false;
+                bOpenEvent      = false;
+                bForceNewEvent  = false;
+                bForceOpenEvent = false;
+                bViewEvent      = false;
+                bStartEvent     = false;
+                bDisplaySpec    = false;
+            }
+            else if ( oArg.equalsIgnoreAsciiCase("view"))
+            {
+                // open in viewmode
+                bOpenEvent      = false;
+                bPrintEvent     = false;
+                bPrintToEvent   = false;
+                bForceNewEvent  = false;
+                bForceOpenEvent = false;
+                bViewEvent      = true;
+                bStartEvent     = false;
+                bDisplaySpec    = false;
+            }
+            else if ( oArg.equalsIgnoreAsciiCase("show"))
+            {
+                // open in viewmode
+                bOpenEvent      = false;
+                bViewEvent      = false;
+                bStartEvent     = true;
+                bPrintEvent     = false;
+                bPrintToEvent   = false;
+                bForceNewEvent  = false;
+                bForceOpenEvent = false;
+                bDisplaySpec    = false;
+            }
+            else if ( oArg.equalsIgnoreAsciiCase("display"))
+            {
+                // set display
+                bOpenEvent      = false;
+                bPrintEvent     = false;
+                bForceOpenEvent = false;
+                bPrintToEvent   = false;
+                bForceNewEvent  = false;
+                bViewEvent      = false;
+                bStartEvent     = false;
+                bDisplaySpec    = true;
+            }
+            else if ( oArg.equalsIgnoreAsciiCase("language"))
+            {
+                bOpenEvent      = false;
+                bPrintEvent     = false;
+                bForceOpenEvent = false;
+                bPrintToEvent   = false;
+                bForceNewEvent  = false;
+                bViewEvent      = false;
+                bStartEvent     = false;
+                bDisplaySpec    = false;
+            }
+            else if ( oArg.equalsIgnoreAsciiCase("convert-to"))
+            {
+                bOpenEvent = false;
+                bConversionEvent = true;
+                bConversionParamsEvent = true;
+            }
+            else if ( oArg.equalsIgnoreAsciiCase("print-to-file"))
+            {
+                bOpenEvent = false;
+                bBatchPrintEvent = true;
+            }
+            else if ( oArg.equalsIgnoreAsciiCase("printer-name") &&
+                      bBatchPrintEvent )
+            {
+                bBatchPrinterNameEvent = true;
+            }
+            else if ( oArg.equalsIgnoreAsciiCase("outdir") &&
+                      (bConversionEvent || bBatchPrintEvent) )
+            {
+                bConversionOutEvent = true;
+            }
+            else if ( aArg.startsWith("-") )
+            {
+                // because it's impossible to filter these options that
+                // are handled in the soffice shell script with the
+                // primitive tools that /bin/sh offers, ignore them here
+                if (
 #if defined UNX
-                        !oArg.equalsIgnoreAsciiCase("backtrace") &&
-                        !oArg.equalsIgnoreAsciiCase("strace") &&
-                        !oArg.equalsIgnoreAsciiCase("valgrind") &&
+                    !oArg.equalsIgnoreAsciiCase("backtrace") &&
+                    !oArg.equalsIgnoreAsciiCase("strace") &&
+                    !oArg.equalsIgnoreAsciiCase("valgrind") &&
                     // for X Session Management, handled in
                     // vcl/unx/generic/app/sm.cxx:
-                        !oArg.startsWith("session=") &&
+                    !oArg.startsWith("session=") &&
 #endif
                     //ignore additional legacy options that don't do anything anymore
-                        !oArg.equalsIgnoreAsciiCase("nocrashreport") &&
-                        m_unknown.isEmpty())
-                    {
-                        m_unknown = aArg;
-                    }
+                    !oArg.equalsIgnoreAsciiCase("nocrashreport") &&
+                    m_unknown.isEmpty())
+                {
+                    m_unknown = aArg;
+                }
+                bDeprecated = false;
+            }
+            else
+            {
+                if ( bPrinterName && bPrintToEvent )
+                {
+                    // first argument after "-pt" this must be the printer name
+                    m_printername = aArg;
+                    bPrinterName = false;
+                }
+                else if ( bConversionParamsEvent && bConversionEvent )
+                {
+                    // first argument must be the params
+                    m_conversionparams = aArg;
+                    bConversionParamsEvent = false;
+                }
+                else if ( bBatchPrinterNameEvent && bBatchPrintEvent )
+                {
+                    // first argument is the printer name
+                    m_printername = aArg;
+                    bBatchPrinterNameEvent = false;
+                }
+                else if ( (bConversionEvent || bBatchPrintEvent) && bConversionOutEvent )
+                {
+                    m_conversionout = aArg;
+                    bConversionOutEvent = false;
                 }
                 else
                 {
-                    if ( bPrinterName && bPrintToEvent )
+                    // handle this argument as a filename
+                    if ( bOpenEvent )
+                    {
+                        m_openlist.push_back(aArg);
+                        bOpenDoc = true;
+                    }
+                    else if ( bViewEvent )
                     {
-                        // first argument after "-pt" this must be the printer name
-                        m_printername = aArg;
-                        bPrinterName = false;
+                        m_viewlist.push_back(aArg);
+                        bOpenDoc = true;
                     }
-                    else if ( bConversionParamsEvent && bConversionEvent )
+                    else if ( bStartEvent )
                     {
-                        // first argument must be the params
-                        m_conversionparams = aArg;
-                        bConversionParamsEvent = false;
+                        m_startlist.push_back(aArg);
+                        bOpenDoc = true;
                     }
-                    else if ( bBatchPrinterNameEvent && bBatchPrintEvent )
+                    else if ( bPrintEvent )
                     {
-                        // first argument is the printer name
-                        m_printername = aArg;
-                        bBatchPrinterNameEvent = false;
+                        m_printlist.push_back(aArg);
+                        bOpenDoc = true;
                     }
-                    else if ( (bConversionEvent || bBatchPrintEvent) && bConversionOutEvent )
+                    else if ( bPrintToEvent )
                     {
-                        m_conversionout = aArg;
-                        bConversionOutEvent = false;
+                        m_printtolist.push_back(aArg);
+                        bOpenDoc = true;
                     }
-                    else
+                    else if ( bForceNewEvent )
                     {
-                        // handle this argument as a filename
-                        if ( bOpenEvent )
-                        {
-                            m_openlist.push_back(aArg);
-                            bOpenDoc = true;
-                        }
-                        else if ( bViewEvent )
-                        {
-                            m_viewlist.push_back(aArg);
-                            bOpenDoc = true;
-                        }
-                        else if ( bStartEvent )
-                        {
-                            m_startlist.push_back(aArg);
-                            bOpenDoc = true;
-                        }
-                        else if ( bPrintEvent )
-                        {
-                            m_printlist.push_back(aArg);
-                            bOpenDoc = true;
-                        }
-                        else if ( bPrintToEvent )
-                        {
-                            m_printtolist.push_back(aArg);
-                            bOpenDoc = true;
-                        }
-                        else if ( bForceNewEvent )
-                        {
-                            m_forcenewlist.push_back(aArg);
-                            bOpenDoc = true;
-                        }
-                        else if ( bForceOpenEvent )
-                        {
-                            m_forceopenlist.push_back(aArg);
-                            bOpenDoc = true;
-                        }
-                        else if ( bDisplaySpec )
-                        {
-                            bDisplaySpec = false; // only one display, not a lsit
-                            bOpenEvent = true;    // set back to standard
-                        }
-                        else if ( bConversionEvent || bBatchPrintEvent )
-                            m_conversionlist.push_back(aArg);
+                        m_forcenewlist.push_back(aArg);
+                        bOpenDoc = true;
                     }
+                    else if ( bForceOpenEvent )
+                    {
+                        m_forceopenlist.push_back(aArg);
+                        bOpenDoc = true;
+                    }
+                    else if ( bDisplaySpec )
+                    {
+                        bDisplaySpec = false; // only one display, not a lsit
+                        bOpenEvent = true;    // set back to standard
+                    }
+                    else if ( bConversionEvent || bBatchPrintEvent )
+                        m_conversionlist.push_back(aArg);
                 }
             }
+
+            if (bDeprecated)
+            {
+                OString sArg(OUStringToOString(aArg, osl_getThreadTextEncoding()));
+                fprintf(stderr, "Warning: %s is deprecated.  Use -%s instead.\n", sArg.getStr(), sArg.getStr());
+            }
         }
     }
 
@@ -385,214 +578,6 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
         m_bDocumentArgs = true;
 }
 
-bool CommandLineArgs::InterpretCommandLineParameter( const OUString& aArg, OUString& oArg )
-{
-    bool bDeprecated = false;
-    if (aArg.startsWith("--"))
-    {
-        oArg = OUString(aArg.getStr()+2, aArg.getLength()-2);
-    }
-    else if (aArg.startsWith("-"))
-    {
-        if ( aArg.getLength() > 2 ) // -h, -o, -n, -? are still valid
-            bDeprecated = true;
-        oArg = OUString(aArg.getStr()+1, aArg.getLength()-1);
-    }
-    else
-    {
-        return false;
-    }
-
-    if ( oArg == "minimized" )
-    {
-        m_minimized = true;
-    }
-    else if ( oArg == "invisible" )
-    {
-        m_invisible = true;
-    }
-    else if ( oArg == "norestore" )
-    {
-        m_norestore = true;
-    }
-    else if ( oArg == "nodefault" )
-    {
-        m_nodefault = true;
-    }
-    else if ( oArg == "headless" )
-    {
-        // Headless means also invisibile, so set this parameter to true!
-        m_headless = true;
-        m_invisible = true;
-    }
-    else if ( oArg == "quickstart" )
-    {
-#if defined(ENABLE_QUICKSTART_APPLET)
-        m_quickstart = true;
-#endif
-        m_noquickstart = false;
-    }
-    else if ( oArg == "quickstart=no" )
-    {
-        m_noquickstart = true;
-        m_quickstart = false;
-    }
-    else if ( oArg == "terminate_after_init" )
-    {
-        m_terminateafterinit = true;
-    }
-    else if ( oArg == "nofirststartwizard" )
-    {
-        m_nofirststartwizard = true;
-    }
-    else if ( oArg == "nologo" )
-    {
-        m_nologo = true;
-    }
-#if HAVE_FEATURE_MULTIUSER_ENVIRONMENT
-    else if ( oArg == "nolockcheck" )
-    {
-        m_nolockcheck = true;
-    }
-#endif
-    else if ( oArg == "help" || aArg == "-h" || aArg == "-?" )
-    {
-        m_help = true;
-    }
-    else if ( oArg == "helpwriter" )
-    {
-        m_helpwriter = true;
-    }
-    else if ( oArg == "helpcalc" )
-    {
-        m_helpcalc = true;
-    }
-    else if ( oArg == "helpdraw" )
-    {
-        m_helpdraw = true;
-    }
-    else if ( oArg == "helpimpress" )
-    {
-        m_helpimpress = true;
-    }
-    else if ( oArg == "helpbase" )
-    {
-        m_helpbase = true;
-    }
-    else if ( oArg == "helpbasic" )
-    {
-        m_helpbasic = true;
-    }
-    else if ( oArg == "helpmath" )
-    {
-        m_helpmath = true;
-    }
-    else if ( oArg == "version" )
-    {
-        m_version = true;
-    }
-    else if ( oArg.startsWithIgnoreAsciiCase("splash-pipe=") )
-    {
-        m_splashpipe = true;
-    }
-#ifdef MACOSX
-    /* #i84053# ignore -psn on Mac
-       Platform dependent #ifdef here is ugly, however this is currently
-       the only platform dependent parameter. Should more appear
-       we should find a better solution
-    */
-    else if ( aArg.startsWith("-psn") )
-    {
-        return true;
-    }
-#endif
-#if HAVE_FEATURE_MACOSX_SANDBOX
-    else if ( oArg == "nstemporarydirectory" )
-    {
-        printf("%s\n", [NSTemporaryDirectory() UTF8String]);
-        exit(0);
-    }
-#endif
-#ifdef WIN32
-    /* fdo#57203 ignore -Embedding on Windows
-       when LibreOffice is launched by COM+
-     */
-    else if ( oArg == "Embedding" )
-    {
-        return true;
-    }
-#endif
-    else if ( oArg.startsWithIgnoreAsciiCase("infilter="))
-    {
-        m_infilter.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("infilter=")));
-    }
-    else if ( oArg.startsWithIgnoreAsciiCase("accept="))
-    {
-        m_accept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("accept=")));
-    }
-    else if ( oArg.startsWithIgnoreAsciiCase("unaccept="))
-    {
-        m_unaccept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("unaccept=")));
-    }
-    else if ( oArg.startsWithIgnoreAsciiCase("language="))
-    {
-        m_language = oArg.copy(RTL_CONSTASCII_LENGTH("language="));
-    }
-    else if ( oArg.startsWithIgnoreAsciiCase("pidfile="))
-    {
-        m_pidfile = oArg.copy(RTL_CONSTASCII_LENGTH("pidfile="));
-    }
-    else if ( oArg == "writer" )
-    {
-        m_writer = true;
-        m_bDocumentArgs = true;
-    }
-    else if ( oArg == "calc" )
-    {
-        m_calc = true;
-        m_bDocumentArgs = true;
-    }
-    else if ( oArg == "draw" )
-    {
-        m_draw = true;
-        m_bDocumentArgs = true;
-    }
-    else if ( oArg == "impress" )
-    {
-        m_impress = true;
-        m_bDocumentArgs = true;
-    }
-    else if ( oArg == "base" )
-    {
-        m_base = true;
-        m_bDocumentArgs = true;
-    }
-    else if ( oArg == "global" )
-    {
-        m_global = true;
-        m_bDocumentArgs = true;
-    }
-    else if ( oArg == "math" )
-    {
-        m_math = true;
-        m_bDocumentArgs = true;
-    }
-    else if ( oArg == "web" )
-    {
-        m_web = true;
-        m_bDocumentArgs = true;
-    }
-    else
-        return false;
-
-    if (bDeprecated)
-    {
-        OString sArg(OUStringToOString(aArg, osl_getThreadTextEncoding()));
-        fprintf(stderr, "Warning: %s is deprecated.  Use -%s instead.\n", sArg.getStr(), sArg.getStr());
-    }
-    return true;
-}
-
 void CommandLineArgs::InitParamValues()
 {
     m_minimized = false;
diff --git a/desktop/source/app/cmdlineargs.hxx b/desktop/source/app/cmdlineargs.hxx
index ad265c9..d2a503e 100644
--- a/desktop/source/app/cmdlineargs.hxx
+++ b/desktop/source/app/cmdlineargs.hxx
@@ -111,7 +111,6 @@ class CommandLineArgs: private boost::noncopyable
         bool IsEmpty() const;
 
     private:
-        bool                InterpretCommandLineParameter( const OUString&, OUString& );
         void                    ParseCommandLine_Impl( Supplier& supplier );
         void                    InitParamValues();
 
commit c471e148e210b7a71d0d5cf877e873350fe05bf7
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Nov 19 14:22:25 2013 +0100

    String function clean-up
    
    Change-Id: I0bb807748f67af3ee1210c6df649bc8ae506e090

diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index 55027f4..30417a7 100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -165,7 +165,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
             OUString oArg;
             if ( !InterpretCommandLineParameter( aArg, oArg ))
             {
-                if ( aArg.toChar() == '-' )
+                if ( aArg.startsWith("-") )
                 {
                     // handle this argument as an option
                     if ( aArg.equalsIgnoreAsciiCase("-n"))
@@ -296,7 +296,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
                         !oArg.equalsIgnoreAsciiCase("valgrind") &&
                     // for X Session Management, handled in
                     // vcl/unx/generic/app/sm.cxx:
-                        !oArg.match("session=") &&
+                        !oArg.startsWith("session=") &&
 #endif
                     //ignore additional legacy options that don't do anything anymore
                         !oArg.equalsIgnoreAsciiCase("nocrashreport") &&
@@ -388,11 +388,11 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
 bool CommandLineArgs::InterpretCommandLineParameter( const OUString& aArg, OUString& oArg )
 {
     bool bDeprecated = false;
-    if (aArg.matchIgnoreAsciiCase("--"))
+    if (aArg.startsWith("--"))
     {
         oArg = OUString(aArg.getStr()+2, aArg.getLength()-2);
     }
-    else if (aArg.toChar() == '-')
+    else if (aArg.startsWith("-"))
     {
         if ( aArg.getLength() > 2 ) // -h, -o, -n, -? are still valid
             bDeprecated = true;
@@ -491,7 +491,7 @@ bool CommandLineArgs::InterpretCommandLineParameter( const OUString& aArg, OUStr
     {
         m_version = true;
     }
-    else if ( oArg.matchIgnoreAsciiCase("splash-pipe=") )
+    else if ( oArg.startsWithIgnoreAsciiCase("splash-pipe=") )
     {
         m_splashpipe = true;
     }
@@ -501,7 +501,7 @@ bool CommandLineArgs::InterpretCommandLineParameter( const OUString& aArg, OUStr
        the only platform dependent parameter. Should more appear
        we should find a better solution
     */
-    else if ( aArg.match("-psn") )
+    else if ( aArg.startsWith("-psn") )
     {
         return true;
     }
@@ -522,23 +522,23 @@ bool CommandLineArgs::InterpretCommandLineParameter( const OUString& aArg, OUStr
         return true;
     }
 #endif
-    else if ( oArg.matchIgnoreAsciiCase("infilter="))
+    else if ( oArg.startsWithIgnoreAsciiCase("infilter="))
     {
         m_infilter.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("infilter=")));
     }
-    else if ( oArg.matchIgnoreAsciiCase("accept="))
+    else if ( oArg.startsWithIgnoreAsciiCase("accept="))
     {
         m_accept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("accept=")));
     }
-    else if ( oArg.matchIgnoreAsciiCase("unaccept="))
+    else if ( oArg.startsWithIgnoreAsciiCase("unaccept="))
     {
         m_unaccept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("unaccept=")));
     }
-    else if ( oArg.matchIgnoreAsciiCase("language="))
+    else if ( oArg.startsWithIgnoreAsciiCase("language="))
     {
         m_language = oArg.copy(RTL_CONSTASCII_LENGTH("language="));
     }
-    else if ( oArg.matchIgnoreAsciiCase("pidfile="))
+    else if ( oArg.startsWithIgnoreAsciiCase("pidfile="))
     {
         m_pidfile = oArg.copy(RTL_CONSTASCII_LENGTH("pidfile="));
     }
commit cc8f8ae55f681755f5da3bf64e4c30bb713f0383
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Nov 19 11:55:29 2013 +0100

    DOCX drawingML shape import: wp:anchor's behindDoc attribute
    
    Also, adapt anchoring to what we have in VML import as well: when the
    paragraph moves, the shape should stay at the same place. (This is a bit
    odd, as ideally Word does not support at-paragraph anchoring, but this
    change results in the behavior what Word does at the end.)
    
    Change-Id: I3b849b2898d303e48920e6056c472f08fbb43af1

diff --git a/sw/qa/extras/ooxmlimport/data/wps-only.docx b/sw/qa/extras/ooxmlimport/data/wps-only.docx
index 5b563b0..d45aa3e 100644
Binary files a/sw/qa/extras/ooxmlimport/data/wps-only.docx and b/sw/qa/extras/ooxmlimport/data/wps-only.docx differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index 14c8ba5..d8ca06f 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -1510,7 +1510,7 @@ DECLARE_OOXMLIMPORT_TEST(testWpsOnly, "wps-only.docx")
     // Document has wp:anchor, not wp:inline, so handle it accordingly.
     uno::Reference<drawing::XShape> xShape = getShape(1);
     text::TextContentAnchorType eValue = getProperty<text::TextContentAnchorType>(xShape, "AnchorType");
-    CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AT_CHARACTER, eValue);
+    CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AT_PARAGRAPH, eValue);
 
     // Check position, it was 0. This is a shape, so use getPosition(), not a property.
     CPPUNIT_ASSERT_EQUAL(sal_Int32(EMU_TO_MM100(671830)), xShape->getPosition().X);
@@ -1519,6 +1519,11 @@ DECLARE_OOXMLIMPORT_TEST(testWpsOnly, "wps-only.docx")
     CPPUNIT_ASSERT_EQUAL(sal_Int32(318), getProperty<sal_Int32>(xShape, "LeftMargin"));
     // Wrap type was PARALLEL.
     CPPUNIT_ASSERT_EQUAL(text::WrapTextMode_THROUGHT, getProperty<text::WrapTextMode>(xShape, "Surround"));
+
+    // This should be in front of text.
+    CPPUNIT_ASSERT_EQUAL(true, bool(getProperty<sal_Bool>(xShape, "Opaque")));
+    // And this should be behind the document.
+    CPPUNIT_ASSERT_EQUAL(false, bool(getProperty<sal_Bool>(getShape(2), "Opaque")));
 }
 
 DECLARE_OOXMLIMPORT_TEST(testFdo70457, "fdo70457.docx")
diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx
index da957ce..7c3de007 100644
--- a/writerfilter/source/dmapper/GraphicImport.cxx
+++ b/writerfilter/source/dmapper/GraphicImport.cxx
@@ -997,10 +997,14 @@ void GraphicImport::lcl_attribute(Id nName, Value & val)
                         // If we are here, this is a drawingML shape. For those, only dmapper (and not oox) knows the anchoring infos (just like for Writer pictures).
                         // But they aren't Writer pictures, either (which are already handled above).
                         uno::Reference< beans::XPropertySet > xShapeProps(m_xShape, uno::UNO_QUERY_THROW);
-                        xShapeProps->setPropertyValue("AnchorType", uno::makeAny(text::TextContentAnchorType_AT_CHARACTER));
+                        // This needs to be AT_PARAGRAPH and not AT_CHARACTER, otherwise shape will move when the user inserts a new paragraph.
+                        xShapeProps->setPropertyValue("AnchorType", uno::makeAny(text::TextContentAnchorType_AT_PARAGRAPH));
 
                         m_xShape->setPosition(awt::Point(m_pImpl->nLeftPosition, m_pImpl->nTopPosition));
                         m_pImpl->applyMargins(xShapeProps);
+                        bool bOpaque = m_pImpl->bOpaque && !m_pImpl->rDomainMapper.IsInHeaderFooter();
+                        if (!bOpaque)
+                            xShapeProps->setPropertyValue("Opaque", uno::makeAny(bOpaque));
                         xShapeProps->setPropertyValue("Surround", uno::makeAny(m_pImpl->nWrap));
                     }
                 }
commit a5d7813de1d2e9c3234c5c0c32987c137bdf3ca1
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Nov 19 13:04:48 2013 +0000

    don't panic on clicking inside input field
    
    Change-Id: I52b53da16784cc5650d362c3884d93ed16979ca2

diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx
index 6453617..5a45f43 100644
--- a/sw/source/ui/docvw/edtwin.cxx
+++ b/sw/source/ui/docvw/edtwin.cxx
@@ -3615,21 +3615,27 @@ void SwEditWin::MouseButtonDown(const MouseEvent& _rMEvt)
                 // Are we clicking on a field?
                 if (rSh.GetContentAtPos(aDocPos, aFieldAtPos))
                 {
-                    rSh.SetCursor(&aDocPos, bOnlyText);
-                    // Unfortunately the cursor may be on field
-                    // position or on position after field depending on which
-                    // half of the field was clicked on.
-                    SwTxtAttr const*const pTxtFld(aFieldAtPos.pFndTxtAttr);
-                    if (rSh.GetCurrentShellCursor().GetPoint()->nContent
-                            .GetIndex() != *pTxtFld->GetStart())
+                    bool bEditableField = (aFieldAtPos.pFndTxtAttr != NULL
+                        && aFieldAtPos.pFndTxtAttr->Which() == RES_TXTATR_INPUTFIELD);
+
+                    if (!bEditableField)
                     {
-                        assert(rSh.GetCurrentShellCursor().GetPoint()->nContent
-                                .GetIndex() == (*pTxtFld->GetStart() + 1));
-                        rSh.Left( CRSR_SKIP_CHARS, false, 1, false );
+                        rSh.SetCursor(&aDocPos, bOnlyText);
+                        // Unfortunately the cursor may be on field
+                        // position or on position after field depending on which
+                        // half of the field was clicked on.
+                        SwTxtAttr const*const pTxtFld(aFieldAtPos.pFndTxtAttr);
+                        if (rSh.GetCurrentShellCursor().GetPoint()->nContent
+                                .GetIndex() != *pTxtFld->GetStart())
+                        {
+                            assert(rSh.GetCurrentShellCursor().GetPoint()->nContent
+                                    .GetIndex() == (*pTxtFld->GetStart() + 1));
+                            rSh.Left( CRSR_SKIP_CHARS, false, 1, false );
+                        }
+                        // don't go into the !bOverSelect block below - it moves
+                        // the cursor
+                        break;
                     }
-                    // don't go into the !bOverSelect block below - it moves
-                    // the cursor
-                    break;
                 }
 
                 sal_Bool bOverSelect = rSh.ChgCurrPam( aDocPos ), bOverURLGrf = sal_False;
commit c2b5521921b806ff7b04cdacebde3834d2aafd4b
Author: Oliver-Rainer Wittmann <orw at apache.org>
Date:   Mon Nov 18 11:29:24 2013 +0000

    Resolves: #i33737# enable in-place editing of Input Fields
    
    (cherry picked from commit c2afeb1c3f11e8f420b59f3786eb8626c99ff595)
    
    Conflicts:
    	sw/inc/IDocumentContentOperations.hxx
    	sw/inc/crsrsh.hxx
    	sw/inc/doc.hxx
    	sw/inc/editsh.hxx
    	sw/inc/expfld.hxx
    	sw/inc/fldbas.hxx
    	sw/inc/fmtfld.hxx
    	sw/inc/hintids.hxx
    	sw/inc/ndtxt.hxx
    	sw/inc/txatbase.hxx
    	sw/inc/txtfld.hxx
    	sw/inc/txtrfmrk.hxx
    	sw/inc/txttxmrk.hxx
    	sw/inc/viscrs.hxx
    	sw/source/core/bastyp/init.cxx
    	sw/source/core/crsr/crsrsh.cxx
    	sw/source/core/crsr/crstrvl.cxx
    	sw/source/core/crsr/findattr.cxx
    	sw/source/core/crsr/findtxt.cxx
    	sw/source/core/crsr/swcrsr.cxx
    	sw/source/core/crsr/viscrs.cxx
    	sw/source/core/doc/dbgoutsw.cxx
    	sw/source/core/doc/doc.cxx
    	sw/source/core/doc/docfld.cxx
    	sw/source/core/doc/docfmt.cxx
    	sw/source/core/doc/docnum.cxx
    	sw/source/core/doc/docredln.cxx
    	sw/source/core/doc/docruby.cxx
    	sw/source/core/doc/doctxm.cxx
    	sw/source/core/doc/visiturl.cxx
    	sw/source/core/docnode/nodes.cxx
    	sw/source/core/edit/edatmisc.cxx
    	sw/source/core/edit/edattr.cxx
    	sw/source/core/edit/edfld.cxx
    	sw/source/core/edit/edfldexp.cxx
    	sw/source/core/edit/editsh.cxx
    	sw/source/core/edit/edlingu.cxx
    	sw/source/core/edit/ednumber.cxx
    	sw/source/core/fields/expfld.cxx
    	sw/source/core/fields/fldbas.cxx
    	sw/source/core/fields/reffld.cxx
    	sw/source/core/frmedt/fefly1.cxx
    	sw/source/core/inc/docfld.hxx
    	sw/source/core/inc/rolbck.hxx
    	sw/source/core/inc/swfont.hxx
    	sw/source/core/layout/flycnt.cxx
    	sw/source/core/layout/laycache.cxx
    	sw/source/core/layout/trvlfrm.cxx
    	sw/source/core/text/atrhndl.hxx
    	sw/source/core/text/atrstck.cxx
    	sw/source/core/text/inftxt.cxx
    	sw/source/core/text/porfld.cxx
    	sw/source/core/text/porfld.hxx
    	sw/source/core/text/txtfld.cxx
    	sw/source/core/tox/tox.cxx
    	sw/source/core/tox/txmsrt.cxx
    	sw/source/core/txtnode/atrfld.cxx
    	sw/source/core/txtnode/ndhints.cxx
    	sw/source/core/txtnode/ndtxt.cxx
    	sw/source/core/txtnode/thints.cxx
    	sw/source/core/txtnode/txatbase.cxx
    	sw/source/core/txtnode/txatritr.cxx
    	sw/source/core/txtnode/txtedt.cxx
    	sw/source/core/undo/SwUndoField.cxx
    	sw/source/core/undo/rolbck.cxx
    	sw/source/core/undo/unsect.cxx
    	sw/source/core/undo/untbl.cxx
    	sw/source/core/unocore/unocrsrhelper.cxx
    	sw/source/core/unocore/unofield.cxx
    	sw/source/core/unocore/unoframe.cxx
    	sw/source/core/unocore/unorefmk.cxx
    	sw/source/core/view/vprint.cxx
    	sw/source/filter/ascii/ascatr.cxx
    	sw/source/filter/html/htmlatr.cxx
    	sw/source/filter/rtf/rtffly.cxx
    	sw/source/filter/ww1/fltshell.cxx
    	sw/source/filter/ww1/w1filter.cxx
    	sw/source/filter/ww8/wrtw8esh.cxx
    	sw/source/filter/ww8/wrtw8nds.cxx
    	sw/source/filter/ww8/ww8atr.cxx
    	sw/source/filter/ww8/ww8par.cxx
    	sw/source/filter/ww8/ww8par3.cxx
    	sw/source/filter/ww8/ww8par5.cxx
    	sw/source/ui/app/applab.cxx
    	sw/source/ui/docvw/edtwin.cxx
    	sw/source/ui/docvw/edtwin2.cxx
    	sw/source/ui/envelp/envfmt.cxx
    	sw/source/ui/fldui/fldedt.cxx
    	sw/source/ui/fldui/fldmgr.cxx
    	sw/source/ui/inc/wrtsh.hxx
    	sw/source/ui/lingu/hhcwrp.cxx
    	sw/source/ui/shells/basesh.cxx
    	sw/source/ui/shells/drwtxtex.cxx
    	sw/source/ui/shells/grfsh.cxx
    	sw/source/ui/shells/tabsh.cxx
    	sw/source/ui/shells/textfld.cxx
    	sw/source/ui/shells/textidx.cxx
    	sw/source/ui/shells/textsh.cxx
    	sw/source/ui/shells/textsh1.cxx
    	sw/source/ui/shells/txtattr.cxx
    	sw/source/ui/uiview/formatclipboard.cxx
    	sw/source/ui/uiview/view.cxx
    	sw/source/ui/uiview/view2.cxx
    	sw/source/ui/uiview/viewsrch.cxx
    	sw/source/ui/uiview/viewstat.cxx
    	sw/source/ui/uiview/viewtab.cxx
    	sw/source/ui/wrtsh/wrtsh1.cxx
    	sw/source/ui/wrtsh/wrtsh2.cxx
    
    Change-Id: I6758d6719e1fd523797cc6ee2648ffcb47d52595

diff --git a/sw/Library_sw.mk b/sw/Library_sw.mk
index f1064ef..ead4148 100644
--- a/sw/Library_sw.mk
+++ b/sw/Library_sw.mk
@@ -154,6 +154,7 @@ $(eval $(call gb_Library_add_exception_objects,sw,\
     sw/source/core/crsr/trvltbl \
     sw/source/core/crsr/unocrsr \
     sw/source/core/crsr/viscrs \
+    sw/source/core/crsr/overlayrangesoutline \
     sw/source/core/doc/SwStyleNameMapper \
     sw/source/core/doc/acmplwrd \
     sw/source/core/doc/dbgoutsw \
diff --git a/sw/inc/IDocumentContentOperations.hxx b/sw/inc/IDocumentContentOperations.hxx
index 7bb156b..7fd45f7 100644
--- a/sw/inc/IDocumentContentOperations.hxx
+++ b/sw/inc/IDocumentContentOperations.hxx
@@ -17,33 +17,34 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
- #ifndef INCLUDED_SW_INC_IDOCUMENTCONTENTOPERATIONS_HXX
- #define INCLUDED_SW_INC_IDOCUMENTCONTENTOPERATIONS_HXX
-
- #include <sal/types.h>
-
- class SwPaM;
- struct SwPosition;
- class SwNode;
- class SwNodeRange;
- class Graphic;
- class SfxItemSet;
- class SfxPoolItem;
- class GraphicObject;
- class SdrObject;
- class SwFrmFmt;
- class SwDrawFrmFmt;
- class SwFlyFrmFmt;
- class SwNodeIndex;
-
- namespace utl { class TransliterationWrapper; }
- namespace svt { class EmbeddedObjectRef; }
-
- /** Text operation/manipulation interface
- */
- class IDocumentContentOperations
- {
- public:
+#ifndef INCLUDED_SW_INC_IDOCUMENTCONTENTOPERATIONS_HXX
+#define INCLUDED_SW_INC_IDOCUMENTCONTENTOPERATIONS_HXX
+
+#include <sal/types.h>
+
+class SwPaM;
+struct SwPosition;
+class SwNode;
+class SwNodeRange;
+class Graphic;
+class SfxItemSet;
+class SfxPoolItem;
+class GraphicObject;
+class SdrObject;
+class SwFrmFmt;
+class SwDrawFrmFmt;
+class SwFlyFrmFmt;
+class SwNodeIndex;
+class SwFmtFld;
+
+namespace utl { class TransliterationWrapper; }
+namespace svt { class EmbeddedObjectRef; }
+
+/** Text operation/manipulation interface
+*/
+class IDocumentContentOperations
+{
+public:
     enum SwMoveFlags
     {
         DOC_MOVEDEFAULT = 0x00,
@@ -61,7 +62,7 @@
     ,   INS_FORCEHINTEXPAND = 0x04 // expand all hints at insert position
     };
 
- public:
+public:
     /** Copying of a range within or to another document.
         The position can also be within the range!
      */
@@ -86,7 +87,7 @@
         Needed for hiding of deletion redlines
     */
     virtual bool DeleteAndJoin( SwPaM&,
-                                const bool bForceJoinNext = false ) = 0;
+        const bool bForceJoinNext = false ) = 0;
 
     virtual bool MoveRange(SwPaM&, SwPosition&, SwMoveFlags) = 0;
 
@@ -115,7 +116,7 @@
                         const SfxItemSet* pFlyAttrSet, const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
 
     virtual SwFlyFrmFmt* Insert(const SwPaM& rRg, const GraphicObject& rGrfObj, const SfxItemSet* pFlyAttrSet,
-                        const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
+        const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
 
     /** Transpose graphic (with undo)
      */
@@ -129,7 +130,7 @@
     /** Insert OLE-objects.
     */
     virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const svt::EmbeddedObjectRef& xObj, const SfxItemSet* pFlyAttrSet,
-                        const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
+        const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
 
     virtual SwFlyFrmFmt* InsertOLE(const SwPaM &rRg, const OUString& rObjName, sal_Int64 nAspect, const SfxItemSet* pFlyAttrSet,
                            const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
@@ -165,13 +166,13 @@
                                 const sal_uInt16 nFlags,bool bExpandCharToPara=false) = 0;
 
     virtual bool InsertItemSet (const SwPaM &rRg, const SfxItemSet&,
-                                const sal_uInt16 nFlags) = 0;
+        const sal_uInt16 nFlags) = 0;
 
     /** Removes any leading white space from the paragraph
     */
     virtual void RemoveLeadingWhiteSpace(const SwPosition & rPos ) = 0;
 
- protected:
+protected:
     virtual ~IDocumentContentOperations() {};
 };
 
diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx
index 47f41c7..8548d91 100644
--- a/sw/inc/crsrsh.hxx
+++ b/sw/inc/crsrsh.hxx
@@ -64,9 +64,8 @@ class SwTOXMark;
 class SwRedline;
 class IBlockCursor;
 class SwCntntNode;
-
 class SwPostItField;
-
+class SwTxtFld;
 struct SwPosition;
 
 namespace com { namespace sun { namespace star { namespace util {
@@ -232,9 +231,9 @@ private:
 
     bool m_bMacroExecAllowed : 1;
 
-    SW_DLLPRIVATE void UpdateCrsr( sal_uInt16 eFlags
-                            =SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE,
-                     sal_Bool bIdleEnd = sal_False );
+    SW_DLLPRIVATE void UpdateCrsr(
+        sal_uInt16 eFlags = SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE,
+        sal_Bool bIdleEnd = sal_False );
 
     SW_DLLPRIVATE void _ParkPams( SwPaM* pDelRg, SwShellCrsr** ppDelRing );
 
@@ -699,11 +698,27 @@ public:
     inline void UnSetVisCrsr();
 
     // jump to the next or previous field of the corresponding type
-    sal_Bool MoveFldType( const SwFieldType* pFldType, sal_Bool bNext,
-                                            sal_uInt16 nSubType = USHRT_MAX,
-                                            sal_uInt16 nResType = USHRT_MAX );
+    sal_Bool MoveFldType(
+        const SwFieldType* pFldType,
+        const bool bNext,
+        const sal_uInt16 nResType = USHRT_MAX,
+        const bool bAddSetExpressionFldsToInputFlds = true );
+
     sal_Bool GotoFld( const SwFmtFld& rFld );
 
+    SwTxtFld* GetTxtFldAtPos(
+        const SwPosition* pPos,
+        const bool bIncludeInputFldAtStart ) const;
+    SwField* GetFieldAtCrsr(
+        const SwPaM* pCrsr,
+        const bool bIncludeInputFldAtStart ) const;
+    SwField* GetCurFld( const bool bIncludeInputFldAtStart = false ) const;
+    bool CrsrInsideInputFld() const;
+    bool PosInsideInputFld( const SwPosition& rPos ) const;
+    bool DocPtInsideInputFld( const Point& rDocPt ) const;
+    xub_StrLen StartOfInputFldAtPos( const SwPosition& rPos ) const;
+    xub_StrLen EndOfInputFldAtPos( const SwPosition& rPos ) const;
+
     // Return number of cursors in ring (The flag indicates whether
     // only cursors containing selections are requested).
     sal_uInt16 GetCrsrCnt( sal_Bool bAll = sal_True ) const;
@@ -783,6 +798,9 @@ public:
     bool GotoINetAttr( const SwTxtINetFmt& rAttr );
     const SwFmtINetFmt* FindINetAttr( const OUString& rName ) const;
 
+    sal_Bool SelectTxt( const xub_StrLen nStart,
+                        const xub_StrLen nEnd );
+
     sal_Bool CheckTblBoxCntnt( const SwPosition* pPos = 0 );
     void SaveTblBoxCntnt( const SwPosition* pPos = 0 );
     void ClearTblBoxCntnt();
@@ -833,8 +851,6 @@ public:
        @return the textual description of the current selection
      */
     OUString GetCrsrDescr() const;
-
-    SwRect GetRectOfCurrentChar();
 };
 
 // Cursor Inlines:
diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index 2de669d..378c6b5 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -836,13 +836,13 @@ public:
        @param rPos position to search at
        @return pointer to field at the given position or NULL in case no field is found
     */
-    static SwField* GetField(const SwPosition& rPos);
+    static SwField* GetFieldAtPos(const SwPosition& rPos);
 
     /** Returns the field at a certain position.
        @param rPos position to search at
        @return pointer to field at the given position or NULL in case no field is found
     */
-    static SwTxtFld* GetTxtFld(const SwPosition& rPos);
+    static SwTxtFld* GetTxtFldAtPos(const SwPosition& rPos);
     bool containsUpdatableFields();
 
     /** IDocumentContentOperations
@@ -855,7 +855,6 @@ public:
     // Needed for hiding of deletion redlines
     virtual bool DeleteAndJoin( SwPaM&,
                                 const bool bForceJoinNext = false );
-
     virtual bool MoveRange(SwPaM&, SwPosition&, SwMoveFlags);
     virtual bool MoveNodeRange(SwNodeRange&, SwNodeIndex&, SwMoveFlags);
     virtual bool MoveAndJoin(SwPaM&, SwPosition&, SwMoveFlags);
@@ -871,9 +870,14 @@ public:
     virtual SwDrawFrmFmt* Insert(const SwPaM &rRg, SdrObject& rDrawObj, const SfxItemSet* pFlyAttrSet, SwFrmFmt*);
     virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const svt::EmbeddedObjectRef& xObj, const SfxItemSet* pFlyAttrSet,
                         const SfxItemSet* pGrfAttrSet, SwFrmFmt*);
+
     /// Add a para for the char attribute exp...
-    virtual bool InsertPoolItem(const SwPaM &rRg, const SfxPoolItem&,
-                                const SetAttrMode nFlags,bool bExpandCharToPara=false);
+    virtual bool InsertPoolItem(
+        const SwPaM &rRg,
+        const SfxPoolItem&,
+        const SetAttrMode nFlags,
+        const bool bExpandCharToPara=false);
+
     virtual bool InsertItemSet (const SwPaM &rRg, const SfxItemSet&,
                                 const SetAttrMode nFlags);
     virtual void ReRead(SwPaM&, const OUString& rGrfName, const OUString& rFltName, const Graphic* pGraphic, const GraphicObject* pGrfObj);
diff --git a/sw/inc/editsh.hxx b/sw/inc/editsh.hxx
index bbafef9..9991fd0 100644
--- a/sw/inc/editsh.hxx
+++ b/sw/inc/editsh.hxx
@@ -236,8 +236,8 @@ public:
                      const bool bMergeIndentValuesOfNumRule = false ) const;
     sal_Bool GetCurAttr( SfxItemSet& ,
                      const bool bMergeIndentValuesOfNumRule = false ) const;
-    void SetAttr( const SfxPoolItem&, sal_uInt16 nFlags = 0 );
-    void SetAttr( const SfxItemSet&, sal_uInt16 nFlags = 0, SwPaM* pCrsr = NULL );
+    void SetAttrItem( const SfxPoolItem&, sal_uInt16 nFlags = 0 );
+    void SetAttrSet( const SfxItemSet&, sal_uInt16 nFlags = 0, SwPaM* pCrsr = NULL );
 
     /**
      * Get the paragraph format attribute(s) of the current selection.
@@ -358,7 +358,6 @@ public:
         { return (SwCharFmt*)SwEditShell::GetFmtFromPool( nId ); }
 
     void Insert2(SwField&, const bool bForceExpandHints = false);
-    SwField* GetCurFld() const;
 
     void UpdateFlds( SwField & );   ///< One single field.
 
diff --git a/sw/inc/expfld.hxx b/sw/inc/expfld.hxx
index 4599911..2944589 100644
--- a/sw/inc/expfld.hxx
+++ b/sw/inc/expfld.hxx
@@ -293,20 +293,40 @@ public:
 
 class SW_DLLPUBLIC SwInputField : public SwField
 {
-    OUString aContent;
+    mutable OUString aContent;
     OUString aPText;
     OUString aHelp;
     OUString aToolTip;
-    sal_uInt16  nSubType;
+    sal_uInt16 nSubType;
+    bool mbIsFormField;
+
+    SwFmtFld* mpFmtFld; // attribute to which the <SwInputField> belongs to
 
     virtual OUString        Expand() const;
     virtual SwField*        Copy() const;
 
+    // Accessing Input Field's content
+    const OUString& getContent() const;
+
 public:
     /// Direct input via dialog; delete old value.
-    SwInputField(SwInputFieldType*, const OUString& rContent,
-                 const OUString& rPrompt, sal_uInt16 nSubType = 0,
-                 sal_uLong nFmt = 0);
+    SwInputField(
+        SwInputFieldType* pFieldType,
+        const OUString& rContent,
+        const OUString& rPrompt,
+        sal_uInt16 nSubType = 0,
+        sal_uLong nFmt = 0,
+        bool bIsFormField = true );
+    virtual ~SwInputField();
+
+    void SetFmtFld( SwFmtFld& rFmtFld );
+    SwFmtFld* GetFmtFld();
+
+    // Providing new Input Field's content:
+    // Fill Input Field's content depending on <nSupType>.
+    void applyFieldContent( const OUString& rNewFieldContent );
+
+    bool isFormField() const;
 
     virtual OUString        GetFieldName() const;
 
@@ -324,9 +344,7 @@ public:
     virtual OUString        GetToolTip() const;
     virtual void            SetToolTip(const OUString & rStr);
 
-    virtual sal_Bool            isFormField() const;
-
-    virtual sal_uInt16          GetSubType() const;
+    virtual sal_uInt16      GetSubType() const;
     virtual void            SetSubType(sal_uInt16 nSub);
     virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
     virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
diff --git a/sw/inc/fldbas.hxx b/sw/inc/fldbas.hxx
index 661dd78..453d246 100644
--- a/sw/inc/fldbas.hxx
+++ b/sw/inc/fldbas.hxx
@@ -276,6 +276,8 @@ class SW_DLLPUBLIC SwField
 {
 private:
     mutable OUString    m_Cache;     ///< Cached expansion (for clipboard).
+    bool m_bUseFieldValueCache; /// control the usage of the cached field value
+
     sal_uInt16              nLang;   ///< Always change via SetLanguage!
     sal_Bool                bIsAutomaticLanguage;
     sal_uInt32          nFormat;
@@ -288,7 +290,10 @@ private:
 protected:
     void                SetFormat(sal_uInt32 nSet) {nFormat = nSet;}
 
-    SwField(SwFieldType* pTyp, sal_uInt32 nFmt = 0, sal_uInt16 nLang = LANGUAGE_SYSTEM);
+    SwField( SwFieldType* pTyp,
+             sal_uInt32 nFmt = 0,
+             sal_uInt16 nLang = LANGUAGE_SYSTEM,
+             bool m_bUseFieldValueCache = true );
 
 public:
     virtual             ~SwField();
diff --git a/sw/inc/fmtfld.hxx b/sw/inc/fmtfld.hxx
index 56184d0..4782663 100644
--- a/sw/inc/fmtfld.hxx
+++ b/sw/inc/fmtfld.hxx
@@ -38,19 +38,16 @@ class SwFieldType;
 // ATT_FLD
 class SW_DLLPUBLIC SwFmtFld : public SfxPoolItem, public SwClient, public SfxBroadcaster
 {
-    friend class SwTxtFld;
     friend void _InitCore();
+    SwFmtFld( sal_uInt16 nWhich ); // for default-Attibute
 
     ::com::sun::star::uno::WeakReference<
         ::com::sun::star::text::XTextField> m_wXTextField;
 
-    SwField *pField;
-    SwTxtFld* pTxtAttr;
+    SwField* mpField;
+    SwTxtFld* mpTxtFld; // the TextAttribute
 
-    SwFmtFld(); ///< Default attibute.
-
-    /* Protected CopyCtor.
-     @@@ copy construction allowed, but copy assignment is not? @@@ */
+    // @@@ copy construction allowed, but copy assignment is not? @@@
     SwFmtFld& operator=(const SwFmtFld& rFld);
 
 protected:
@@ -76,11 +73,11 @@ public:
 
     const SwField* GetField() const
     {
-        return pField;
+        return mpField;
     }
     SwField* GetField()
     {
-        return pField;
+        return mpField;
     }
 
     /**
@@ -90,13 +87,23 @@ public:
 
        @attention The current field will be destroyed before setting the new field.
      */
-    void SetFld(SwField * pField);
+    void SetField( SwField * pField );
+
+
+    const SwTxtFld* GetTxtFld() const
+    {
+        return mpTxtFld;
+    }
+    SwTxtFld* GetTxtFld()
+    {
+        return mpTxtFld;
+    }
+    void SetTxtFld( SwTxtFld& rTxtFld );
+    void ClearTxtFld();
 
-    const SwTxtFld *GetTxtFld() const   { return pTxtAttr; }
-    SwTxtFld *GetTxtFld()               { return pTxtAttr; }
 
     void RegisterToFieldType( SwFieldType& );
-    sal_Bool IsFldInDoc() const;
+    bool IsFldInDoc() const;
     sal_Bool IsProtect() const;
 
     SW_DLLPRIVATE ::com::sun::star::uno::WeakReference<
diff --git a/sw/inc/hintids.hxx b/sw/inc/hintids.hxx
index 00d20c4..5773c2f 100644
--- a/sw/inc/hintids.hxx
+++ b/sw/inc/hintids.hxx
@@ -29,11 +29,15 @@
 #define CH_TXTATR_INWORD        ((sal_Unicode)0xFFF9)
 #define CH_TXTATR_TAB           ((sal_Unicode)'\t')
 #define CH_TXTATR_NEWLINE       ((sal_Unicode)'\n')
-#define CH_TXT_ATR_FIELDSTART ((sal_Unicode)0x04)
-#define CH_TXT_ATR_FIELDEND ((sal_Unicode)0x05)
+#define CH_TXT_ATR_INPUTFIELDSTART ((sal_Unicode)0x04)
+#define CH_TXT_ATR_INPUTFIELDEND ((sal_Unicode)0x05)
+
+#define CH_TXT_ATR_FORMELEMENT ((sal_Unicode)0x06)
+
+#define CH_TXT_ATR_FIELDSTART ((sal_Unicode)0x07)
+#define CH_TXT_ATR_FIELDEND ((sal_Unicode)0x08)
 #define CH_TXT_ATR_SUBST_FIELDSTART ("[")
 #define CH_TXT_ATR_SUBST_FIELDEND ("]")
-#define CH_TXT_ATR_FORMELEMENT ((sal_Unicode)0x06)
 
 /*
  * Enums for the hints
@@ -127,7 +131,7 @@ RES_TXTATR_WITHEND_BEGIN = RES_TXTATR_BEGIN ,
     RES_TXTATR_CHARFMT,                             // 51
     RES_TXTATR_CJK_RUBY,                            // 52
     RES_TXTATR_UNKNOWN_CONTAINER,                   // 53
-    RES_TXTATR_DUMMY5,                              // 54
+    RES_TXTATR_INPUTFIELD,                          // 54
 RES_TXTATR_WITHEND_END,
 
 // all TextAttributes without an end
diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx
index 516f9c7..d8b23ff 100644
--- a/sw/inc/ndtxt.hxx
+++ b/sw/inc/ndtxt.hxx
@@ -46,6 +46,8 @@ namespace utl {
 
 class SwTxtFmtColl;
 class SwCntntFrm;
+class SwTxtFld;
+class SwTxtInputFld;
 class SfxItemSet;
 class SwUndoTransliterate;
 struct SwSpellArgs;
@@ -179,6 +181,8 @@ class SW_DLLPUBLIC SwTxtNode: public SwCntntNode, public ::sfx2::Metadatable
 
     SW_DLLPRIVATE void impl_FmtToTxtAttr(const SfxItemSet& i_rAttrSet);
 
+    const SwTxtInputFld* GetOverlappingInputFld( const SwTxtAttr& rTxtAttr ) const;
+
 public:
     bool IsWordCountDirty() const;
     bool IsWrongDirty() const;
@@ -262,7 +266,7 @@ public:
             refmarks, toxmarks, and metas will be ignored unless this is true
         ATTENTION: setting bInclRefToxMark is only allowed from UNDO!
      */
-    void RstAttr(
+    void RstTxtAttr(
         const SwIndex &rIdx,
         const xub_StrLen nLen,
         const sal_uInt16 nWhich = 0,
@@ -350,8 +354,8 @@ public:
                         bool bFmtToTxtAttributes = true );
 
     enum GetTxtAttrMode {
-        DEFAULT,    /// DEFAULT: (Start <  nIndex <= End)
-        EXPAND,     /// EXPAND : (Start <= nIndex <  End)
+        DEFAULT,    /// DEFAULT: (Start <= nIndex <  End)
+        EXPAND,     /// EXPAND : (Start <  nIndex <= End)
         PARENT,     /// PARENT : (Start <  nIndex <  End)
     };
 
@@ -363,16 +367,19 @@ public:
         hints of which several may cover a single position, like
         RES_TXTATR_CHARFMT, RES_TXTATR_REFMARK, RES_TXTATR_TOXMARK
      */
-    SwTxtAttr *GetTxtAttrAt(xub_StrLen const nIndex, RES_TXTATR const nWhich,
-                            enum GetTxtAttrMode const eMode = DEFAULT) const;
+    SwTxtAttr *GetTxtAttrAt(
+        xub_StrLen const nIndex,
+        RES_TXTATR const nWhich,
+        enum GetTxtAttrMode const eMode = DEFAULT ) const;
 
     /** get the innermost text attributes covering position nIndex.
         @param nWhich   only attributes with this id are returned.
         @param eMode    the predicate for matching (@see GetTxtAttrMode).
      */
-    ::std::vector<SwTxtAttr *> GetTxtAttrsAt(xub_StrLen const nIndex,
-                            RES_TXTATR const nWhich,
-                            enum GetTxtAttrMode const eMode = DEFAULT) const;
+    ::std::vector<SwTxtAttr *> GetTxtAttrsAt(
+        xub_StrLen const nIndex,
+        RES_TXTATR const nWhich,
+        enum GetTxtAttrMode const eMode = DEFAULT ) const;
 
     /** get the text attribute at position nIndex which owns
         the dummy character CH_TXTATR_* at that position, if one exists.
@@ -381,8 +388,13 @@ public:
                         attribute with given which id
         @return the text attribute at nIndex of type nWhich, if it exists
     */
-    SwTxtAttr *GetTxtAttrForCharAt( const xub_StrLen nIndex,
-                       const RES_TXTATR nWhich = RES_TXTATR_END ) const;
+    SwTxtAttr *GetTxtAttrForCharAt(
+        const xub_StrLen nIndex,
+        const RES_TXTATR nWhich = RES_TXTATR_END ) const;
+
+    SwTxtFld* GetFldTxtAttrAt(
+        const xub_StrLen nIndex,
+        const bool bIncludeInputFldAtStart = false ) const;
 
     OUString GetCurWord(xub_StrLen) const;
     sal_uInt16 Spell(SwSpellArgs*);
@@ -398,8 +410,6 @@ public:
        (Method in ndcopy.cxx!!). */
     void CopyCollFmt( SwTxtNode& rDestNd );
 
-    //const SwNodeNum* _GetNodeNum() const { return pNdNum; }
-
     //
     // BEGIN OF BULLET/NUMBERING/OUTLINE STUFF:
     //
@@ -432,18 +442,6 @@ public:
 
     void UpdateOutlineState();
 
-    /** Returns if this text node may be numbered.
-
-        A text node may be numbered if
-          - it has no SwNodeNum
-          - it has a SwNodeNum and it has a numbering rule and the according
-            SwNumFmt defines a numbering type that is an enumeration.
-
-       @retval sal_True      this text node may be numbered
-       @retval sal_False     else
-     */
-    //sal_Bool MayBeNumbered() const;
-
     /**
        Notify this textnode that its numbering rule has changed.
      */
@@ -735,8 +733,11 @@ public:
     TYPEINFO(); // fuer rtti
 
     /// override SwIndexReg
-    virtual void Update( SwIndex const & rPos, const sal_Int32 nChangeLen,
-                 const bool bNegative = false, const bool bDelete = false );
+    virtual void Update(
+        SwIndex const & rPos,
+        const sal_Int32 nChangeLen,
+        const bool bNegative = false,
+        const bool bDelete = false );
 
     /// change text to Upper/Lower/Hiragana/Katagana/...
     void TransliterateText( utl::TransliterationWrapper& rTrans,
diff --git a/sw/inc/txatbase.hxx b/sw/inc/txatbase.hxx
index 234110a..266b205 100644
--- a/sw/inc/txatbase.hxx
+++ b/sw/inc/txatbase.hxx
@@ -57,6 +57,7 @@ private:
     bool m_bHasDummyChar        : 1;    // without end + meta
     bool m_bFormatIgnoreStart   : 1;    ///< text formatting should ignore start
     bool m_bFormatIgnoreEnd     : 1;    ///< text formatting should ignore end
+    bool m_bHasContent          : 1;    // text attribute with content
 
 protected:
     SwTxtAttr( SfxPoolItem& rAttr, sal_Int32 nStart );
@@ -69,6 +70,7 @@ protected:
     void SetDontExpandStartAttr(bool bFlag) { m_bDontExpandStart = bFlag; }
     void SetNesting(const bool bFlag)       { m_bNesting = bFlag; }
     void SetHasDummyChar(const bool bFlag)  { m_bHasDummyChar = bFlag; }
+    void SetHasContent( const bool bFlag )  { m_bHasContent = bFlag; }
 
 public:
 
@@ -80,8 +82,8 @@ public:
             const sal_Int32* GetStart() const  { return & m_nStart; }
 
     /// end position
-    virtual      sal_Int32* GetEnd();
-    inline const sal_Int32* GetEnd() const;
+    virtual      sal_Int32* GetEnd(); // also used to change the end position
+    inline const sal_Int32* End() const;
     /// end (if available), else start
     inline const sal_Int32* GetAnyEnd() const;
 
@@ -100,6 +102,7 @@ public:
     bool IsFormatIgnoreEnd  () const        { return m_bFormatIgnoreEnd  ; }
     void SetFormatIgnoreStart(bool bFlag)   { m_bFormatIgnoreStart = bFlag; }
     void SetFormatIgnoreEnd  (bool bFlag)   { m_bFormatIgnoreEnd   = bFlag; }
+    bool HasContent() const                 { return m_bHasContent; }
 
     inline const SfxPoolItem& GetAttr() const;
     inline       SfxPoolItem& GetAttr();
@@ -128,21 +131,20 @@ protected:
 public:
     SwTxtAttrEnd( SfxPoolItem& rAttr, sal_Int32 nStart, sal_Int32 nEnd );
 
-    using SwTxtAttr::GetEnd;
     virtual sal_Int32* GetEnd();
 };
 
 
 // --------------- Inline Implementations ------------------------
 
-inline const sal_Int32* SwTxtAttr::GetEnd() const
+inline const sal_Int32* SwTxtAttr::End() const
 {
     return const_cast<SwTxtAttr * >(this)->GetEnd();
 }
 
 inline const sal_Int32* SwTxtAttr::GetAnyEnd() const
 {
-    const sal_Int32* pEnd = GetEnd();
+    const sal_Int32* pEnd = End();
     return pEnd ? pEnd : GetStart();
 }
 
@@ -182,7 +184,9 @@ inline const SwFmtAutoFmt& SwTxtAttr::GetAutoFmt() const
 
 inline const SwFmtFld& SwTxtAttr::GetFmtFld() const
 {
-    assert( m_pAttr && m_pAttr->Which() == RES_TXTATR_FIELD );
+    assert( m_pAttr
+            && ( m_pAttr->Which() == RES_TXTATR_FIELD
+                 || m_pAttr->Which() == RES_TXTATR_INPUTFIELD ));
     return (const SwFmtFld&)(*m_pAttr);
 }
 
diff --git a/sw/inc/txtfld.hxx b/sw/inc/txtfld.hxx
index 3c98492..cfab932 100644
--- a/sw/inc/txtfld.hxx
+++ b/sw/inc/txtfld.hxx
@@ -28,43 +28,71 @@ class SwTxtNode;
 
 class SwTxtFld : public SwTxtAttr
 {
-    mutable   OUString m_aExpand;
+    mutable OUString m_aExpand; // only used to determine, if field content is changing in <ExpandTxtFld()>
     SwTxtNode * m_pTxtNode;
 
 public:
-    SwTxtFld(SwFmtFld & rAttr, sal_Int32 const nStart,
-            bool const bInClipboard);
+    SwTxtFld(
+        SwFmtFld & rAttr,
+        sal_Int32 const nStart,
+        bool const bInClipboard );
+
     virtual ~SwTxtFld();
 
-    void CopyFld( SwTxtFld *pDest ) const;
-    void Expand() const;
-    inline void ExpandAlways();
+    void CopyTxtFld( SwTxtFld *pDest ) const;
+
+    void ExpandTxtFld() const;
+    void ExpandAlways()
+    {
+        m_aExpand += " "; // changing current value to assure that <ExpandTxtFld()> changes the value.
+        ExpandTxtFld();
+    }
 
     // get and set TxtNode pointer
-    SwTxtNode* GetpTxtNode() const { return m_pTxtNode; }
-    inline SwTxtNode& GetTxtNode() const;
-    void ChgTxtNode( SwTxtNode* pNew ) { m_pTxtNode = pNew; }
-    // enable notification that field content has changed and needs reformatting
-    void NotifyContentChange(SwFmtFld& rFmtFld);
+    SwTxtNode* GetpTxtNode() const
+    {
+        return m_pTxtNode;
+    }
+    SwTxtNode& GetTxtNode() const
+    {
+        OSL_ENSURE( m_pTxtNode, "SwTxtFld:: where is my TxtNode?" );
+        return *m_pTxtNode;
+    }
+    void ChgTxtNode( SwTxtNode* pNew )
+    {
+        m_pTxtNode = pNew;
+    }
 
-    /**
-       Returns position of this field.
+    bool IsFldInDoc() const;
+
+    // enable notification that field content has changed and needs reformatting
+    virtual void NotifyContentChange( SwFmtFld& rFmtFld );
 
-       @return position of this field. Has to be deleted explicitly.
-    */
 };
 
-inline SwTxtNode& SwTxtFld::GetTxtNode() const
+class SwTxtInputFld : public SwTxtFld
 {
-    assert( m_pTxtNode );
-    return *m_pTxtNode;
-}
+public:
+    SwTxtInputFld(
+        SwFmtFld & rAttr,
+        sal_Int32 const nStart,
+        sal_Int32 const nEnd,
+        bool const bInClipboard );
 
-inline void SwTxtFld::ExpandAlways()
-{
-    m_aExpand += " ";
-    Expand();
-}
+    virtual ~SwTxtInputFld();
+
+    virtual sal_Int32* GetEnd();
+
+    virtual void NotifyContentChange( SwFmtFld& rFmtFld );
+
+    void UpdateTextNodeContent( const OUString& rNewContent );
+
+    const OUString GetFieldContent() const;
+    void UpdateFieldContent();
+
+private:
+    sal_Int32 m_nEnd;
+};
 
 #endif
 
diff --git a/sw/inc/txtrfmrk.hxx b/sw/inc/txtrfmrk.hxx
index ae944f9..b4f560c 100644
--- a/sw/inc/txtrfmrk.hxx
+++ b/sw/inc/txtrfmrk.hxx
@@ -35,8 +35,7 @@ public:
     SwTxtRefMark( SwFmtRefMark& rAttr,
             sal_Int32 const nStart, sal_Int32 const*const pEnd = 0);
 
-    virtual sal_Int32 * GetEnd();       // SwTxtAttr
-    inline const sal_Int32 * GetEnd() const { return m_pEnd; }
+    virtual sal_Int32* GetEnd();       // SwTxtAttr
 
     // get and set TxtNode pointer
     inline const SwTxtNode& GetTxtNode() const;
diff --git a/sw/inc/txttxmrk.hxx b/sw/inc/txttxmrk.hxx
index ccc8707..7559053 100644
--- a/sw/inc/txttxmrk.hxx
+++ b/sw/inc/txttxmrk.hxx
@@ -38,7 +38,6 @@ public:
     virtual ~SwTxtTOXMark();
 
     virtual sal_Int32 *GetEnd();     // SwTxtAttr
-    inline const sal_Int32* GetEnd() const { return m_pEnd; }
 
     void CopyTOXMark( SwDoc* pDestDoc );
 
diff --git a/sw/inc/viscrs.hxx b/sw/inc/viscrs.hxx
index 194efe4..b4010b9 100644
--- a/sw/inc/viscrs.hxx
+++ b/sw/inc/viscrs.hxx
@@ -28,6 +28,7 @@
 
 class SwCrsrShell;
 class SwShellCrsr;
+class SwTxtInputFld;
 
 // From here classes/methods for non-text cursor.
 
@@ -59,6 +60,7 @@ public:
 // From here classes/methods for selections.
 
 namespace sdr { namespace overlay { class OverlayObject; }}
+namespace sw { namespace overlay { class OverlayRangesOutline; }}
 
 class SwSelPaintRects : public SwRects
 {
@@ -71,7 +73,6 @@ class SwSelPaintRects : public SwRects
     const SwCrsrShell* pCShell;
 
     virtual void Paint( const Rectangle& rRect );
-    virtual void FillRects() = 0;
 
 #if HAVE_FEATURE_DESKTOP
     sdr::overlay::OverlayObject*    mpCursorOverlay;
@@ -81,11 +82,18 @@ class SwSelPaintRects : public SwRects
     void setCursorOverlay(sdr::overlay::OverlayObject* pNew) { mpCursorOverlay = pNew; }
 #endif
 
+    bool mbShowTxtInputFldOverlay;
+    sw::overlay::OverlayRangesOutline* mpTxtInputFldOverlay;
+
+    void HighlightInputFld();
+
 public:
     SwSelPaintRects( const SwCrsrShell& rCSh );
     virtual ~SwSelPaintRects();
 
-    // in SwCrsrShell::CreateCrsr() the content of SwSelPaintRects is exchanged. To
+    virtual void FillRects() = 0;
+
+    // #i75172# in SwCrsrShell::CreateCrsr() the content of SwSelPaintRects is exchanged. To
     // make a complete swap access to mpCursorOverlay is needed there
     void swapContent(SwSelPaintRects& rSwap);
 
@@ -93,6 +101,11 @@ public:
     void Hide();
     void Invalidate( const SwRect& rRect );
 
+    inline void SetShowTxtInputFldOverlay( const bool bShow )
+    {
+        mbShowTxtInputFldOverlay = bShow;
+    }
+
     const SwCrsrShell* GetShell() const { return pCShell; }
     // check current MapMode of the shell and set possibly the static members.
     // Optional set the parameters pX, pY
@@ -107,8 +120,6 @@ class SwShellCrsr : public virtual SwCursor, public SwSelPaintRects
     Point aMkPt, aPtPt;
     const SwPosition* pPt;      // For assignment of GetPoint() to aPtPt.
 
-    virtual void FillRects();   // For Table- und normal cursors.
-
     using SwCursor::UpDown;
 
 public:
@@ -118,6 +129,8 @@ public:
     SwShellCrsr( SwShellCrsr& );
     virtual ~SwShellCrsr();
 
+    virtual void FillRects();   // For Table- und normal cursors.
+
     void Show();            // Update and display all selections.
     void Hide();            // Hide all selections.
     void Invalidate( const SwRect& rRect );
diff --git a/sw/sdi/_textsh.sdi b/sw/sdi/_textsh.sdi
index 44f2b15..0fb5cdb 100644
--- a/sw/sdi/_textsh.sdi
+++ b/sw/sdi/_textsh.sdi
@@ -31,6 +31,7 @@ interface BaseText
     FN_INSERT_GLOSSARY // status(final|play|record)
     [
         ExecMethod = ExecGlossary ;
+        StateMethod = GetState ;
     ]
 
     FN_TXTATR_INET // status()
@@ -133,7 +134,7 @@ interface BaseText
     SID_INSERTDOC // status(final|play|rec)
     [
         ExecMethod = Execute ;
-        StateMethod = NoState ;
+        StateMethod = GetState ;
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
     FN_INSERT_BOOKMARK // status(final|play)
@@ -237,13 +238,13 @@ interface BaseText
     FN_INSERT_BREAK // status(final|play)
     [
         ExecMethod = ExecInsert ;
-        StateMethod = NoState ;
+        StateMethod = GetState ;
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
     FN_INSERT_PAGEBREAK // status(final|play)
     [
         ExecMethod = ExecInsert ;
-        StateMethod = NoState ;
+        StateMethod = GetState ;
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
     FN_INSERT_LINEBREAK  // status(final|play)
@@ -255,19 +256,19 @@ interface BaseText
     FN_INSERT_COLUMN_BREAK // status(final|play)
     [
         ExecMethod = ExecInsert ;
-        StateMethod = NoState ;
+        StateMethod = GetState ;
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
     FN_INSERT_BREAK_DLG // status(final|play)
     [
         ExecMethod = Execute ;
-        StateMethod = NoState ;
+        StateMethod = GetState ;
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
     SID_INSERT_AVMEDIA // status(final|play)
     [
         ExecMethod = ExecInsert;
-        StateMethod = NoState ;
+        StateMethod = StateInsert ;
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
     SID_INSERT_DIAGRAM // status(final|play)
@@ -330,6 +331,7 @@ interface BaseText
     FN_INSERT_HYPERLINK // status()
     [
         ExecMethod = Execute ;
+        StateMethod = GetState;
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
     SID_HYPERLINK_DIALOG
@@ -916,6 +918,7 @@ interface BaseText
     FN_EXPAND_GLOSSARY // status(final|play)
     [
         ExecMethod = ExecGlossary ;
+        StateMethod = GetState ;
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
     FN_POSTIT // status(final|play)
diff --git a/sw/sdi/_viewsh.sdi b/sw/sdi/_viewsh.sdi
index bd05db1..54152af 100644
--- a/sw/sdi/_viewsh.sdi
+++ b/sw/sdi/_viewsh.sdi
@@ -653,12 +653,12 @@ interface BaseTextEditView
         ExecMethod = Execute ;
         StateMethod = GetState ;
     ]
-        SID_INSERT_GRAPHIC // status(final|play)
-        [
-                ExecMethod = Execute ;
-                StateMethod = NoState ;
-                DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
-        ]
+    SID_INSERT_GRAPHIC // status(final|play)
+    [
+        ExecMethod = Execute ;
+        StateMethod = GetState ;
+        DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
+    ]
     SID_AUTOSPELL_CHECK
     [
         ExecMethod = ExecViewOptions ;

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list