[Libreoffice-commits] .: Branch 'feature/mork' - 157 commits - basctl/source bin/get-bugzilla-attachments-by-mimetype comphelper/inc comphelper/source config_host.mk.in configmgr/source configure.in connectivity/source cui/source desktop/inc desktop/source editeng/inc editeng/source filter/CppunitTest_filter_pict_test.mk filter/Module_filter.mk filter/qa forms/source framework/inc i18npool/CustomTarget_breakiterator.mk i18npool/CustomTarget_collator.mk i18npool/CustomTarget_indexentry.mk i18npool/qa i18npool/source icon-themes/tango icu/makefile.mk Library_merged.mk libvisio/libvisio-0.0.18.patch libvisio/makefile.mk lotuswordpro/qa Makefile Makefile.top more_fonts/fonts more_fonts/prj o3tl/inc offapi/com offapi/type_reference officecfg/registry ooo.lst.in oox/inc oox/source rsc/inc rsc/source sc/inc sc/source sd/source sfx2/inc sfx2/source solenv/bin solenv/gbuild starmath/inc starmath/Library_sm.mk starmath/qa starmath/source svtools/inc svtools/Library_svt.mk svtools/Package_inc.mk svt ools/qa svtools/source svx/inc svx/source sw/CppunitTest_sw_subsequent_odfexport.mk sw/CppunitTest_sw_subsequent_rtfexport.mk sw/CppunitTest_sw_subsequent_ww8export.mk sw/CppunitTest_sw_subsequent_ww8import.mk sw/inc sw/qa sw/source sysui/desktop tubes/CppunitTest_tubes_test.mk tubes/inc tubes/Library_tubes.mk tubes/Module_tubes.mk tubes/qa tubes/source unotest/inc unotest/source unusedcode.easy vcl/inc vcl/source vcl/unx writerfilter/qa writerfilter/source

David Ostrovsky davido at kemper.freedesktop.org
Fri Jul 27 08:20:50 PDT 2012


 Library_merged.mk                                                |    4 
 Makefile                                                         |    6 
 Makefile.top                                                     |   10 
 basctl/source/basicide/baside2b.cxx                              |    8 
 basctl/source/basicide/baside3.cxx                               |    4 
 basctl/source/basicide/basides1.cxx                              |   57 
 basctl/source/basicide/basides2.cxx                              |    8 
 basctl/source/basicide/basides3.cxx                              |    6 
 basctl/source/basicide/basidesh.cxx                              |   34 
 basctl/source/basicide/basobj2.cxx                               |    6 
 basctl/source/basicide/basobj3.cxx                               |   20 
 basctl/source/basicide/bastype2.cxx                              |   40 
 basctl/source/basicide/bastype2.hxx                              |    4 
 basctl/source/basicide/bastypes.cxx                              |    2 
 basctl/source/basicide/iderdll.cxx                               |    7 
 basctl/source/basicide/iderdll2.hxx                              |   11 
 basctl/source/basicide/localizationmgr.cxx                       |    2 
 basctl/source/basicide/macrodlg.cxx                              |   46 
 basctl/source/basicide/macrodlg.hxx                              |    8 
 basctl/source/inc/basidesh.hxx                                   |    6 
 basctl/source/inc/basobj.hxx                                     |    2 
 basctl/source/inc/bastypes.hxx                                   |    6 
 bin/get-bugzilla-attachments-by-mimetype                         |    4 
 comphelper/inc/comphelper/configuration.hxx                      |    2 
 comphelper/source/misc/configuration.cxx                         |  109 
 config_host.mk.in                                                |    4 
 configmgr/source/access.cxx                                      |   75 
 configmgr/source/childaccess.cxx                                 |   76 
 configmgr/source/configmgr.component                             |    2 
 configmgr/source/readonlyaccess.cxx                              |   64 
 configmgr/source/readwriteaccess.cxx                             |   74 
 configure.in                                                     |   40 
 connectivity/source/drivers/mork/MConnection.cxx                 |   12 
 connectivity/source/drivers/mork/MNSINIParser.cxx                |   15 
 connectivity/source/drivers/mork/MNSProfileDiscover.hxx          |    6 
 connectivity/source/drivers/mork/MorkParser.cxx                  |   26 
 connectivity/source/drivers/mork/MorkParser.hxx                  |    8 
 connectivity/source/drivers/mork/dllapi.h                        |   25 
 connectivity/source/drivers/mork/mork.xml                        |   85 
 connectivity/source/drivers/mork/mork_helper.cxx                 |   77 
 cui/source/customize/eventdlg.hxx                                |    1 
 cui/source/dialogs/SpellAttrib.hxx                               |    2 
 cui/source/dialogs/commonlingui.hxx                              |   21 
 cui/source/dialogs/thesdlg_impl.hxx                              |    6 
 cui/source/inc/about.hxx                                         |    2 
 cui/source/inc/acccfg.hxx                                        |    6 
 cui/source/inc/autocdlg.hxx                                      |   22 
 cui/source/inc/backgrnd.hxx                                      |   43 
 cui/source/inc/bbdlg.hxx                                         |    2 
 cui/source/inc/border.hxx                                        |   18 
 cui/source/inc/cfg.hxx                                           |   12 
 cui/source/inc/chardlg.hxx                                       |    8 
 cui/source/inc/treeopt.hxx                                       |    9 
 cui/source/options/treeopt.cxx                                   |  318 +-
 desktop/inc/app.hxx                                              |    3 
 desktop/source/app/app.cxx                                       |   11 
 editeng/inc/editeng/tstpitem.hxx                                 |   32 
 editeng/source/items/paraitem.cxx                                |   45 
 filter/CppunitTest_filter_pict_test.mk                           |   38 
 filter/Module_filter.mk                                          |    1 
 filter/qa/cppunit/data/pict/fail/CVE-2012-0277-1.pct             |binary
 filter/qa/cppunit/data/pict/pass/ooo25876-2.pict                 |binary
 filter/qa/cppunit/data/tiff/fail/CVE-2012-0276-1.tiff            |binary
 filter/qa/cppunit/data/tiff/fail/CVE-2012-0276-2.tiff            |binary
 filter/qa/cppunit/data/tiff/fail/CVE-2012-2027-1.tiff            |binary
 filter/qa/cppunit/filters-pict-test.cxx                          |   68 
 forms/source/component/clickableimage.cxx                        |   31 
 forms/source/component/clickableimage.hxx                        |    2 
 framework/inc/services/frameloaderfactory.hxx                    |  382 ---
 i18npool/CustomTarget_breakiterator.mk                           |   24 
 i18npool/CustomTarget_collator.mk                                |   23 
 i18npool/CustomTarget_indexentry.mk                              |   17 
 i18npool/qa/cppunit/test_breakiterator.cxx                       |   56 
 i18npool/source/breakiterator/data/README                        |   35 
 i18npool/source/breakiterator/data/dict_word_ca.txt              |  148 -
 icon-themes/tango/cmd/lc_sendmail.png                            |binary
 icon-themes/tango/cmd/sc_sendmail.png                            |binary
 icu/makefile.mk                                                  |    4 
 libvisio/libvisio-0.0.18.patch                                   |   10 
 libvisio/makefile.mk                                             |    7 
 lotuswordpro/qa/cppunit/data/fail/CVE-2012-1770-1.lwp            |binary
 more_fonts/fonts/ttf_liberation/makefile.mk                      |   44 
 more_fonts/fonts/ttf_liberation_narrow/makefile.mk               |   63 
 more_fonts/prj/build.lst                                         |    1 
 more_fonts/prj/d.lst                                             |    6 
 o3tl/inc/o3tl/sorted_vector.hxx                                  |   10 
 offapi/com/sun/star/configuration/ReadOnlyAccess.idl             |   15 
 offapi/com/sun/star/configuration/ReadWriteAccess.idl            |   15 
 offapi/type_reference/types.rdb                                  |binary
 officecfg/registry/data/org/openoffice/Office/Impress.xcu        |   22 
 officecfg/registry/schema/org/openoffice/Office/Impress.xcs      |   44 
 ooo.lst.in                                                       |    3 
 oox/inc/oox/mathml/export.hxx                                    |    2 
 oox/source/drawingml/table/tablecell.cxx                         |    3 
 rsc/inc/vclrsc.hxx                                               |    2 
 rsc/source/parser/rscicpx.cxx                                    |    2 
 sc/inc/document.hxx                                              |    3 
 sc/inc/scerrors.hxx                                              |    2 
 sc/inc/table.hxx                                                 |    2 
 sc/source/core/data/conditio.cxx                                 |   13 
 sc/source/core/data/document.cxx                                 |   15 
 sc/source/core/data/fillinfo.cxx                                 |    2 
 sc/source/core/data/table5.cxx                                   |    5 
 sc/source/core/inc/refupdat.hxx                                  |    2 
 sc/source/core/tool/rangelst.cxx                                 |   31 
 sc/source/core/tool/refupdat.cxx                                 |  142 -
 sc/source/filter/excel/xetable.cxx                               |   51 
 sc/source/filter/html/htmlpars.cxx                               |   60 
 sc/source/filter/inc/htmlpars.hxx                                |    3 
 sc/source/filter/inc/rtfparse.hxx                                |    3 
 sc/source/filter/rtf/rtfparse.cxx                                |   14 
 sc/source/filter/xml/xmlwrap.cxx                                 |    6 
 sc/source/ui/app/transobj.cxx                                    |    8 
 sc/source/ui/collab/contacts.cxx                                 |   10 
 sc/source/ui/collab/sendfunc.cxx                                 |   12 
 sc/source/ui/collab/sendfunc.hxx                                 |    3 
 sc/source/ui/docshell/externalrefmgr.cxx                         |    5 
 sc/source/ui/docshell/tablink.cxx                                |    2 
 sc/source/ui/unoobj/docuno.cxx                                   |    3 
 sd/source/core/sdpage2.cxx                                       |    2 
 sd/source/ui/dlg/navigatr.cxx                                    |    2 
 sd/source/ui/framework/configuration/ConfigurationController.cxx |   11 
 sd/source/ui/framework/module/ResourceManager.cxx                |   13 
 sd/source/ui/framework/module/ResourceManager.hxx                |    2 
 sd/source/ui/framework/module/SlideSorterModule.cxx              |   31 
 sd/source/ui/framework/module/SlideSorterModule.hxx              |    2 
 sd/source/ui/view/sdview2.cxx                                    |    6 
 sfx2/inc/sfx2/docfile.hxx                                        |   54 
 sfx2/inc/sfx2/objsh.hxx                                          |    1 
 sfx2/inc/sfx2/sfxhtml.hxx                                        |    2 
 sfx2/source/appl/fileobj.cxx                                     |   56 
 sfx2/source/appl/fileobj.hxx                                     |    1 
 sfx2/source/bastyp/sfxhtml.cxx                                   |   10 
 sfx2/source/dialog/dinfdlg.cxx                                   |    2 
 sfx2/source/doc/docfile.cxx                                      |  994 +++-----
 sfx2/source/doc/objembed.cxx                                     |    2 
 sfx2/source/doc/objmisc.cxx                                      |   26 
 sfx2/source/doc/objserv.cxx                                      |   10 
 sfx2/source/doc/objstor.cxx                                      |   17 
 sfx2/source/view/frame.cxx                                       |    2 
 sfx2/source/view/viewfrm.cxx                                     |    7 
 solenv/bin/make_installer.pl                                     |    2 
 solenv/gbuild/UnoApi.mk                                          |    2 
 starmath/Library_sm.mk                                           |    1 
 starmath/inc/document.hxx                                        |    2 
 starmath/inc/unomodel.hxx                                        |    2 
 starmath/qa/testdocuments/README                                 |    2 
 starmath/source/document.cxx                                     |    6 
 starmath/source/ooxmlexport.cxx                                  |  191 -
 starmath/source/ooxmlexport.hxx                                  |   36 
 starmath/source/rtfexport.cxx                                    |  411 ++-
 starmath/source/rtfexport.hxx                                    |   36 
 starmath/source/unomodel.cxx                                     |    4 
 starmath/source/wordexportbase.cxx                               |  212 +
 starmath/source/wordexportbase.hxx                               |   67 
 svtools/Library_svt.mk                                           |    1 
 svtools/Package_inc.mk                                           |    1 
 svtools/inc/svtools/rtfkeywd.hxx                                 |   55 
 svtools/inc/svtools/slidesorterbaropt.hxx                        |   83 
 svtools/inc/svtools/svtreebx.hxx                                 |    1 
 svtools/qa/cppunit/data/gif/pass/CVE-2012-0282-1.gif             |binary
 svtools/source/config/slidesorterbaropt.cxx                      |  496 ++++
 svtools/source/contnr/svimpbox.cxx                               |   55 
 svtools/source/filter/filter.cxx                                 |   83 
 svtools/source/filter/filter2.cxx                                |   23 
 svtools/source/graphic/grfmgr2.cxx                               |   41 
 svtools/source/inc/svimpbox.hxx                                  |    2 
 svtools/source/misc/embedhlp.cxx                                 |   25 
 svtools/source/misc/imagemgr.cxx                                 |    1 
 svx/inc/svx/srchdlg.hxx                                          |   18 
 svx/source/dialog/srchdlg.cxx                                    |   49 
 sw/CppunitTest_sw_subsequent_odfexport.mk                        |    2 
 sw/CppunitTest_sw_subsequent_rtfexport.mk                        |    3 
 sw/CppunitTest_sw_subsequent_ww8export.mk                        |    3 
 sw/CppunitTest_sw_subsequent_ww8import.mk                        |    3 
 sw/inc/docary.hxx                                                |   37 
 sw/inc/edimp.hxx                                                 |   14 
 sw/inc/ftnidx.hxx                                                |   11 
 sw/inc/modeltoviewhelper.hxx                                     |   33 
 sw/inc/ndtxt.hxx                                                 |    3 
 sw/inc/swcrsr.hxx                                                |    4 
 sw/inc/swregion.hxx                                              |    8 
 sw/inc/swscanner.hxx                                             |    4 
 sw/inc/tblsel.hxx                                                |   13 
 sw/inc/unoflatpara.hxx                                           |    2 
 sw/inc/unotextmarkup.hxx                                         |    7 
 sw/qa/core/swdoc-test.cxx                                        |    4 
 sw/qa/extras/rtfexport/data/math-accents.rtf                     |  189 +
 sw/qa/extras/rtfexport/data/math-d.rtf                           |  170 +
 sw/qa/extras/rtfexport/data/math-eqarray.rtf                     |   96 
 sw/qa/extras/rtfexport/data/math-escaping.rtf                    |   12 
 sw/qa/extras/rtfexport/data/math-lim.rtf                         |   48 
 sw/qa/extras/rtfexport/data/math-limupp.rtf                      |   77 
 sw/qa/extras/rtfexport/data/math-matrix.rtf                      |   66 
 sw/qa/extras/rtfexport/data/math-mbox.rtf                        |   23 
 sw/qa/extras/rtfexport/data/math-mso2007.rtf                     | 1218 ++++++++++
 sw/qa/extras/rtfexport/data/math-nary.rtf                        |   87 
 sw/qa/extras/rtfexport/data/math-placeholders.rtf                |   26 
 sw/qa/extras/rtfexport/data/math-rad.rtf                         |   48 
 sw/qa/extras/rtfexport/data/math-sepchr.rtf                      |   39 
 sw/qa/extras/rtfexport/data/math-strikeh.rtf                     |   26 
 sw/qa/extras/rtfexport/data/math-subscripts.rtf                  |  224 +
 sw/qa/extras/rtfexport/data/math-vertical-stacks.rtf             |  131 +
 sw/qa/extras/rtfexport/rtfexport.cxx                             |  199 +
 sw/qa/extras/swmodeltestbase.hxx                                 |   23 
 sw/source/core/access/acccell.cxx                                |    2 
 sw/source/core/access/acctable.cxx                               |    6 
 sw/source/core/access/parachangetrackinginfo.cxx                 |    4 
 sw/source/core/bastyp/swregion.cxx                               |   78 
 sw/source/core/crsr/crsrsh.cxx                                   |   12 
 sw/source/core/crsr/swcrsr.cxx                                   |   30 
 sw/source/core/crsr/trvlfnfl.cxx                                 |   10 
 sw/source/core/crsr/trvltbl.cxx                                  |   12 
 sw/source/core/crsr/unocrsr.cxx                                  |    2 
 sw/source/core/crsr/viscrs.cxx                                   |   57 
 sw/source/core/doc/doc.cxx                                       |    6 
 sw/source/core/doc/docbm.cxx                                     |    4 
 sw/source/core/doc/doccomp.cxx                                   |    6 
 sw/source/core/doc/doccorr.cxx                                   |    4 
 sw/source/core/doc/docdesc.cxx                                   |    2 
 sw/source/core/doc/docedt.cxx                                    |   74 
 sw/source/core/doc/docfmt.cxx                                    |   11 
 sw/source/core/doc/docftn.cxx                                    |    8 
 sw/source/core/doc/doclay.cxx                                    |    6 
 sw/source/core/doc/docnew.cxx                                    |    4 
 sw/source/core/doc/docnum.cxx                                    |   12 
 sw/source/core/doc/docredln.cxx                                  |  183 -
 sw/source/core/doc/docsort.cxx                                   |    8 
 sw/source/core/doc/ftnidx.cxx                                    |   63 
 sw/source/core/doc/notxtfrm.cxx                                  |    6 
 sw/source/core/doc/tblcpy.cxx                                    |   18 
 sw/source/core/doc/tblrwcl.cxx                                   |  114 
 sw/source/core/doc/visiturl.cxx                                  |    2 
 sw/source/core/docnode/ndcopy.cxx                                |   37 
 sw/source/core/docnode/ndsect.cxx                                |    8 
 sw/source/core/docnode/ndtbl.cxx                                 |   50 
 sw/source/core/docnode/ndtbl1.cxx                                |   12 
 sw/source/core/docnode/node.cxx                                  |    4 
 sw/source/core/edit/edattr.cxx                                   |    4 
 sw/source/core/edit/edglss.cxx                                   |    4 
 sw/source/core/edit/edlingu.cxx                                  |   21 
 sw/source/core/edit/ednumber.cxx                                 |   55 
 sw/source/core/edit/edredln.cxx                                  |    4 
 sw/source/core/edit/edtab.cxx                                    |    8 
 sw/source/core/fields/cellfml.cxx                                |   15 
 sw/source/core/fields/reffld.cxx                                 |    8 
 sw/source/core/frmedt/fecopy.cxx                                 |    6 
 sw/source/core/frmedt/fefly1.cxx                                 |    2 
 sw/source/core/frmedt/fetab.cxx                                  |   55 
 sw/source/core/frmedt/tblsel.cxx                                 |   98 
 sw/source/core/inc/swblocks.hxx                                  |    8 
 sw/source/core/inc/tblrwcl.hxx                                   |    8 
 sw/source/core/layout/frmtool.cxx                                |    2 
 sw/source/core/layout/ftnfrm.cxx                                 |   11 
 sw/source/core/layout/layact.cxx                                 |   17 
 sw/source/core/layout/pagechg.cxx                                |   14 
 sw/source/core/layout/paintfrm.cxx                               |   50 
 sw/source/core/layout/ssfrm.cxx                                  |    4 
 sw/source/core/layout/tabfrm.cxx                                 |    4 
 sw/source/core/layout/trvlfrm.cxx                                |    9 
 sw/source/core/swg/SwXMLTextBlocks.cxx                           |   18 
 sw/source/core/swg/SwXMLTextBlocks1.cxx                          |   14 
 sw/source/core/swg/swblocks.cxx                                  |   44 
 sw/source/core/table/swnewtable.cxx                              |   72 
 sw/source/core/table/swtable.cxx                                 |    2 
 sw/source/core/text/EnhancedPDFExportHelper.cxx                  |   18 
 sw/source/core/text/frmcrsr.cxx                                  |    2 
 sw/source/core/text/porlay.cxx                                   |    4 
 sw/source/core/text/redlnitr.cxx                                 |    4 
 sw/source/core/text/txtfly.cxx                                   |    6 
 sw/source/core/text/txttab.cxx                                   |    2 
 sw/source/core/txtnode/atrftn.cxx                                |   12 
 sw/source/core/txtnode/modeltoviewhelper.cxx                     |   21 
 sw/source/core/txtnode/ndtxt.cxx                                 |   34 
 sw/source/core/txtnode/thints.cxx                                |    6 
 sw/source/core/txtnode/txtedt.cxx                                |   43 
 sw/source/core/undo/undel.cxx                                    |    2 
 sw/source/core/undo/undobj.cxx                                   |   12 
 sw/source/core/undo/unins.cxx                                    |    8 
 sw/source/core/undo/unovwr.cxx                                   |    2 
 sw/source/core/undo/unredln.cxx                                  |    4 
 sw/source/core/undo/unsect.cxx                                   |    2 
 sw/source/core/undo/unspnd.cxx                                   |    2 
 sw/source/core/undo/untbl.cxx                                    |   18 
 sw/source/core/undo/untblk.cxx                                   |    2 
 sw/source/core/unocore/unochart.cxx                              |    6 
 sw/source/core/unocore/unocoll.cxx                               |    6 
 sw/source/core/unocore/unocrsrhelper.cxx                         |    1 
 sw/source/core/unocore/unoflatpara.cxx                           |   25 
 sw/source/core/unocore/unoftn.cxx                                |    2 
 sw/source/core/unocore/unoobj2.cxx                               |    2 
 sw/source/core/unocore/unoportenum.cxx                           |    2 
 sw/source/core/unocore/unoredline.cxx                            |    2 
 sw/source/core/unocore/unoredlines.cxx                           |   14 
 sw/source/core/unocore/unosect.cxx                               |    2 
 sw/source/core/unocore/unotbl.cxx                                |   12 
 sw/source/core/unocore/unotext.cxx                               |    2 
 sw/source/core/unocore/unotextmarkup.cxx                         |   29 
 sw/source/core/view/viewsh.cxx                                   |   26 
 sw/source/filter/html/css1atr.cxx                                |    2 
 sw/source/filter/html/htmlcss1.cxx                               |    6 
 sw/source/filter/rtf/swparrtf.cxx                                |    9 
 sw/source/filter/ww1/fltshell.cxx                                |    7 
 sw/source/filter/ww8/rtfattributeoutput.cxx                      |  119 
 sw/source/filter/ww8/rtfattributeoutput.hxx                      |    4 
 sw/source/filter/ww8/rtfexport.cxx                               |    4 
 sw/source/filter/ww8/wrtw8nds.cxx                                |   12 
 sw/source/filter/ww8/wrtw8sty.cxx                                |    2 
 sw/source/filter/ww8/wrtww8.cxx                                  |    2 
 sw/source/filter/ww8/ww8par2.cxx                                 |   16 
 sw/source/ui/app/docsh.cxx                                       |    2 
 sw/source/ui/uiview/srcview.cxx                                  |    8 
 sw/source/ui/uiview/view2.cxx                                    |    2 
 sysui/desktop/share/makefile.mk                                  |    4 
 sysui/desktop/share/translate.pl                                 |    2 
 tubes/CppunitTest_tubes_test.mk                                  |   20 
 tubes/Library_tubes.mk                                           |    1 
 tubes/Module_tubes.mk                                            |    6 
 tubes/inc/tubes/conference.hxx                                   |    2 
 tubes/inc/tubes/manager.hxx                                      |   41 
 tubes/qa/test_manager.cxx                                        |  286 --
 tubes/source/conference.cxx                                      |    4 
 tubes/source/manager.cxx                                         |  115 
 unotest/inc/unotest/filters-test.hxx                             |    5 
 unotest/source/cpp/filters-test.cxx                              |   15 
 unusedcode.easy                                                  |   57 
 vcl/inc/unx/gtk/gtkframe.hxx                                     |    1 
 vcl/inc/vcl/bitmapex.hxx                                         |    2 
 vcl/inc/vcl/button.hxx                                           |    5 
 vcl/inc/vcl/window.hxx                                           |    2 
 vcl/source/control/button.cxx                                    |   43 
 vcl/source/control/menubtn.cxx                                   |    5 
 vcl/source/gdi/bitmap3.cxx                                       |  255 --
 vcl/source/gdi/bitmapex.cxx                                      |  104 
 vcl/source/window/brdwin.cxx                                     |   59 
 vcl/unx/gtk/window/gtkframe.cxx                                  |   20 
 vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx                    |  175 -
 writerfilter/qa/cppunittests/rtftok/testrtftok.cxx               |   14 
 writerfilter/source/rtftok/rtfdocumentimpl.cxx                   |   17 
 339 files changed, 7465 insertions(+), 4788 deletions(-)

New commits:
commit 715c0e17dd4b381c654658af235a3f2e9e80561c
Author: David Ostrovsky <david at ostrovsky.org>
Date:   Thu Jul 26 19:36:35 2012 +0200

    mork driver: more verbose output
    
    Change-Id: I598490aa71b658844d912008c0cf14e225bda0db

diff --git a/connectivity/source/drivers/mork/MConnection.cxx b/connectivity/source/drivers/mork/MConnection.cxx
index 2d1cde8..a43665f 100644
--- a/connectivity/source/drivers/mork/MConnection.cxx
+++ b/connectivity/source/drivers/mork/MConnection.cxx
@@ -69,7 +69,7 @@ void SAL_CALL OConnection::release() throw()
 void OConnection::construct(const ::rtl::OUString& url,const Sequence< PropertyValue >& info)  throw(SQLException)
 {
     (void) info; // avoid warnings
-    SAL_INFO("mork", "IN OConnection::construct()" );
+    SAL_INFO("connectvity.mork", "IN OConnection::construct()" );
     //  open file
     setURL(url);
     //
@@ -103,8 +103,8 @@ void OConnection::construct(const ::rtl::OUString& url,const Sequence< PropertyV
         sAdditionalInfo = aAddrbookURI.copy( nLen + 1 );
     }
 
-    SAL_INFO("mork", "URI = " << ((OUtoCStr(aAddrbookURI)) ? (OUtoCStr(aAddrbookURI)):("NULL")) );
-    SAL_INFO("mork", "Scheme = " << ((OUtoCStr(aAddrbookScheme)) ?  (OUtoCStr(aAddrbookScheme)):("NULL")) );
+    SAL_INFO("connectvity.mork", "URI = " << ((OUtoCStr(aAddrbookURI)) ? (OUtoCStr(aAddrbookURI)):("NULL")) );
+    SAL_INFO("connectvity.mork", "Scheme = " << ((OUtoCStr(aAddrbookScheme)) ?  (OUtoCStr(aAddrbookScheme)):("NULL")) );
 
 }
 // XServiceInfo
@@ -130,7 +130,7 @@ Reference< XPreparedStatement > SAL_CALL OConnection::prepareStatement( const ::
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(OConnection_BASE::rBHelper.bDisposed);
 
-    SAL_INFO("mork", "OConnection::prepareStatement( " << OUtoCStr( _sSql ) << " )");
+    SAL_INFO("connectvity.mork", "OConnection::prepareStatement( " << OUtoCStr( _sSql ) << " )");
     return NULL;
 }
 // --------------------------------------------------------------------------------
@@ -138,7 +138,7 @@ Reference< XPreparedStatement > SAL_CALL OConnection::prepareCall( const ::rtl::
 {
     OSL_UNUSED( _sSql );
     ::dbtools::throwFeatureNotImplementedException( "XConnection::prepareCall", *this );
-    SAL_INFO("mork", "OConnection::prepareCall( " << OUtoCStr( _sSql ) << " )");
+    SAL_INFO("connectvity.mork", "OConnection::prepareCall( " << OUtoCStr( _sSql ) << " )");
     return NULL;
 }
 // --------------------------------------------------------------------------------
@@ -146,7 +146,7 @@ Reference< XPreparedStatement > SAL_CALL OConnection::prepareCall( const ::rtl::
 {
     ::osl::MutexGuard aGuard( m_aMutex );
     // when you need to transform SQL92 to you driver specific you can do it here
-    SAL_INFO("OConnection::nativeSQL( %s )", OUtoCStr( _sSql ) );
+    SAL_INFO("connectvity.mork", "OConnection::nativeSQL(" << _sSql << " )" );
 
     return _sSql;
 }
diff --git a/connectivity/source/drivers/mork/MNSINIParser.cxx b/connectivity/source/drivers/mork/MNSINIParser.cxx
index 55e57f5..c601213 100644
--- a/connectivity/source/drivers/mork/MNSINIParser.cxx
+++ b/connectivity/source/drivers/mork/MNSINIParser.cxx
@@ -26,11 +26,7 @@ IniParser::IniParser(OUString const & rIniName) throw(com::sun::star::io::IOExce
     if (osl_File_E_None != osl_getFileURLFromSystemPath(rIniName.pData, &iniUrl.pData))
         return;
 
-
-#if OSL_DEBUG_LEVEL > 0
-    OString sFile = OUStringToOString(iniUrl, RTL_TEXTENCODING_ASCII_US);
-    OSL_TRACE(__FILE__" -- parser() - %s\n", sFile.getStr());
-#endif
+    SAL_INFO("connectivity.mork", "IniParser: " << iniUrl);
     oslFileHandle handle=NULL;
     oslFileError fileError = osl_File_E_INVAL;
     try{
@@ -39,10 +35,8 @@ IniParser::IniParser(OUString const & rIniName) throw(com::sun::star::io::IOExce
     }
     catch(const ::com::sun::star::io::IOException&)
     {
-#if OSL_DEBUG_LEVEL > 0
-        OString file_tmp = OUStringToOString(iniUrl, RTL_TEXTENCODING_ASCII_US);
-        OSL_TRACE( __FILE__" -- couldn't open file: %s", file_tmp.getStr() );
-#endif
+        SAL_WARN("connectivity.mork", "IniParser -- couldn't open file: " << iniUrl);
+        return;
     }
 
     if (osl_File_E_None == fileError)
@@ -94,8 +88,7 @@ IniParser::IniParser(OUString const & rIniName) throw(com::sun::star::io::IOExce
 #if OSL_DEBUG_LEVEL > 0
     else
     {
-        OString file_tmp = OUStringToOString(iniUrl, RTL_TEXTENCODING_ASCII_US);
-        OSL_TRACE( __FILE__" -- couldn't open file: %s", file_tmp.getStr() );
+        SAL_WARN("connectivity.mork", "IniParser -- couldn't open file: " << iniUrl);
     }
 #endif
 }
diff --git a/connectivity/source/drivers/mork/MNSProfileDiscover.hxx b/connectivity/source/drivers/mork/MNSProfileDiscover.hxx
index 3e1468b..1cb44cd 100644
--- a/connectivity/source/drivers/mork/MNSProfileDiscover.hxx
+++ b/connectivity/source/drivers/mork/MNSProfileDiscover.hxx
@@ -31,11 +31,7 @@
 #include <vector>
 #include <map>
 
-#if defined LO_DLLIMPLEMENTATION_MORK
-#define LO_DLLPUBLIC_MORK SAL_DLLPUBLIC_EXPORT
-#else
-#define LO_DLLPUBLIC_MORK SAL_DLLPUBLIC_IMPORT
-#endif
+#include "dllapi.h"
 
 using namespace com::sun::star::mozilla;
 namespace connectivity
diff --git a/connectivity/source/drivers/mork/MorkParser.cxx b/connectivity/source/drivers/mork/MorkParser.cxx
index 07be7d1..bd37d66 100644
--- a/connectivity/source/drivers/mork/MorkParser.cxx
+++ b/connectivity/source/drivers/mork/MorkParser.cxx
@@ -576,3 +576,29 @@ std::string &MorkParser::getColumn( int oid )
 
     return foundIter->second;
 }
+
+void MorkParser::dumpColumns()
+{
+    for ( MorkDict::iterator cellsIter = columns_.begin();
+          cellsIter != columns_.end(); cellsIter++ )
+    {
+        char buffer[20];
+        sprintf( buffer, "%d", cellsIter->first );
+        std::string value = cellsIter->second;
+        //SAL_INFO("connectivity.mork", "dumpColumns: " << buffer << " => " << value);
+        std::cout << "dumpColumns: " << buffer << " => " << value << std::endl;
+    }
+}
+
+void MorkParser::dumpValues()
+{
+    for ( MorkDict::iterator cellsIter = values_.begin();
+          cellsIter != values_.end(); cellsIter++ )
+    {
+        char buffer[20];
+        sprintf( buffer, "%d", cellsIter->first );
+        std::string value = cellsIter->second;
+        //SAL_INFO("connectivity.mork", "dumpValues: " << buffer << " => " << value);
+        std::cout << "dumpValues: " << buffer << " => " << value << std::endl;
+    }
+}
diff --git a/connectivity/source/drivers/mork/MorkParser.hxx b/connectivity/source/drivers/mork/MorkParser.hxx
index dca4133..e26bef5 100644
--- a/connectivity/source/drivers/mork/MorkParser.hxx
+++ b/connectivity/source/drivers/mork/MorkParser.hxx
@@ -34,9 +34,13 @@
 #ifndef _MORK_PARSER_HXX_
 #define _MORK_PARSER_HXX_
 
+#include <sal/types.h>
+
 #include <string>
 #include <map>
 
+#include "dllapi.h"
+
 // Types
 
 typedef std::map< int, std::string > MorkDict;
@@ -76,7 +80,7 @@ enum MorkTerm
 
 /// Class MorkParser
 
-class MorkParser
+class LO_DLLPUBLIC_MORK MorkParser
 {
 public:
 
@@ -112,6 +116,8 @@ public:
 
     std::string &getColumn( int oid );
 
+    void dumpColumns();
+    void dumpValues();
 
 protected: // Members
 
diff --git a/connectivity/source/drivers/mork/dllapi.h b/connectivity/source/drivers/mork/dllapi.h
new file mode 100644
index 0000000..80f7cec
--- /dev/null
+++ b/connectivity/source/drivers/mork/dllapi.h
@@ -0,0 +1,25 @@
+
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef _MORK_DLLAPI_H
+#define _MORK_DLLAPI_H
+
+#include "sal/config.h"
+#include "sal/types.h"
+
+#if defined LO_DLLIMPLEMENTATION_MORK
+#define LO_DLLPUBLIC_MORK SAL_DLLPUBLIC_EXPORT
+#else
+#define LO_DLLPUBLIC_MORK SAL_DLLPUBLIC_IMPORT
+#endif
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/connectivity/source/drivers/mork/mork.xml b/connectivity/source/drivers/mork/mork.xml
new file mode 100644
index 0000000..cb1ce0b
--- /dev/null
+++ b/connectivity/source/drivers/mork/mork.xml
@@ -0,0 +1,85 @@
+<?xml version='1.0' encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//W3C//DTD HTML 3.2//EN" "module-description.dtd">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
+    <module-name> mork </module-name>
+    <component-description>
+        <Author>David Ostrovsky</Author>
+        <Name>com.sun.star.comp.sdbc.MorkDriver</Name>
+        <Description>
+            This is the implementation of the sdbc-mork bridge.
+        </Description>
+        <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
+        <language>c++</language>
+        <status value="final"/>
+        <supported-service> com.sun.star.sdbc.Driver    </supported-service>
+        <service-dependency>    ... </service-dependency>
+    </component-description>
+        <project-build-dependency>  cppuhelper  </project-build-dependency>
+        <project-build-dependency>  cppu        </project-build-dependency>
+        <project-build-dependency>  sal         </project-build-dependency>
+
+        <runtime-module-dependency> cppuhelper  </runtime-module-dependency>
+        <runtime-module-dependency> cppu1       </runtime-module-dependency>
+        <runtime-module-dependency> sal1        </runtime-module-dependency>
+
+
+
+        <type>  com.sun.star.util.XCancellable              </type>
+        <type>  com.sun.star.util.XNumberFormatter          </type>
+        <type>  com.sun.star.uno.TypeClass                  </type>
+        <type>  com.sun.star.uno.XWeak                      </type>
+        <type>  com.sun.star.uno.XAggregation               </type>
+        <type>  com.sun.star.beans.XPropertyState           </type>
+        <type>  com.sun.star.beans.XPropertySet             </type>
+        <type>  com.sun.star.beans.PropertyValue            </type>
+        <type>  com.sun.star.beans.XMultiPropertySet        </type>
+        <type>  com.sun.star.beans.XFastPropertySet         </type>
+        <type>  com.sun.star.lang.XTypeProvider             </type>
+        <type>  com.sun.star.lang.EventObject               </type>
+        <type>  com.sun.star.lang.XComponent                </type>
+        <type>  com.sun.star.lang.IllegalArgumentException  </type>
+        <type>  com.sun.star.lang.XMultiServiceFactory      </type>
+        <type>  com.sun.star.java.XJavaThreadRegister_11    </type>
+        <type>  com.sun.star.java.XJavaVM                   </type>
+        <type>  com.sun.star.sdbc.XConnection               </type>
+        <type>  com.sun.star.sdbc.XStatement                </type>
+        <type>  com.sun.star.sdbc.XResultSet                </type>
+        <type>  com.sun.star.sdbc.XResultSetMetaDataSupplier</type>
+        <type>  com.sun.star.sdbc.XColumnLocate             </type>
+        <type>  com.sun.star.sdbc.XResultSetUpdate          </type>
+        <type>  com.sun.star.sdbc.XWarningsSupplier         </type>
+        <type>  com.sun.star.sdbc.XRowUpdate                </type>
+        <type>  com.sun.star.sdbc.XMultipleResults          </type>
+        <type>  com.sun.star.sdbc.XBatchExecution           </type>
+        <type>  com.sun.star.sdbc.XPreparedBatchExecution   </type>
+        <type>  com.sun.star.sdbc.XParameters               </type>
+        <type>  com.sun.star.sdbc.XOutParameters            </type>
+        <type>  com.sun.star.sdbc.DriverPropertyInfo        </type>
+        <type>  com.sun.star.sdbc.XRow                      </type>
+        <type>  com.sun.star.sdb.XColumnUpdate              </type>
+        <type>  com.sun.star.sdb.XColumn                    </type>
+        <type> com.sun.star.sdbc.XResultSetUpdate   </type>
+        <type> com.sun.star.sdbc.XRowUpdate         </type>
+        <type> com.sun.star.sdbcx.XRowLocate            </type>
+        <type> com.sun.star.sdbcx.XDeleteRows       </type>
+
+</module-description>
+
+
diff --git a/connectivity/source/drivers/mork/mork_helper.cxx b/connectivity/source/drivers/mork/mork_helper.cxx
index 560592b..999d43e 100644
--- a/connectivity/source/drivers/mork/mork_helper.cxx
+++ b/connectivity/source/drivers/mork/mork_helper.cxx
@@ -1,12 +1,87 @@
 #include "MNSProfileDiscover.hxx"
+#include "MorkParser.hxx"
+
 
 using namespace connectivity::mork;
 
+bool openAddressBook(const std::string& path)
+{
+    MorkParser mork;
+    // Open and parse mork file
+    if (!mork.open(path))
+    {
+        return false;
+    }
+    const int defaultScope = 0x80;
+    MorkTableMap *Tables = 0;
+    MorkTableMap::iterator tableIter;
+    MorkRowMap::iterator rowIter;
+    Tables = mork.getTables( defaultScope );
+    if ( Tables )
+    {
+        // Iterate all tables
+        for ( tableIter = Tables->begin(); tableIter != Tables->end(); tableIter++ )
+        {
+            if ( 0 == tableIter->first ) continue;
+            SAL_INFO("connectivity.mork", "table->first : " << tableIter->first);
+            std::string column = mork.getColumn( tableIter->first );
+            std::string value = mork.getValue( tableIter->first );
+            SAL_INFO("connectivity.mork", "table.column : " << column);
+            SAL_INFO("connectivity.mork", "table.value : " << value);
+#if 0
+            MorkRowMap *Rows = 0;
+            // Get rows
+            Rows = mork.getRows( defaultScope, &tableIter->second );
+            if ( Rows ) {
+                // Iterate all rows
+                for ( rowIter = Rows->begin(); rowIter != Rows->end(); rowIter++ )
+                {
+                    if ( 0 == rowIter->first ) continue;
+                    RawAbeMap ram;
+                    std::string column;
+                    std::string value;
+                    char buffer[20];
+                    sprintf( buffer, "%d", rowIter->first );
+                    abe.id = std::string( buffer );
+                    // Get cells
+                    for ( MorkCells::iterator cellsIter = rowIter->second.begin();
+                          cellsIter != rowIter->second.end(); cellsIter++ )
+                    {
+                        column = mork.getColumn( cellsIter->first );
+                        value = mork.getValue( cellsIter->second );
+                        ram[ column ] = value;
+                    }
+                    AbeMap::iterator abeIter;
+                    abes_[ rowIter->first ] = abe;
+                    abeIter = abes_.find( rowIter->first );
+                    addEntry( ram, abeIter->second );
+                }
+            }
+#endif
+        }
+    }
+
+    mork.dumpColumns();
+    mork.dumpValues();
+
+    return true;
+}
+
 int main( int argc, const char* argv[] )
 {
   int x = argc;
   x++;
   argv++;
   ProfileAccess* access = new ProfileAccess();
-  ::rtl::OUString profile = access->getDefaultProfile(::com::sun::star::mozilla::MozillaProductType_Thunderbird);
+  ::rtl::OUString defaultProfile = access->getDefaultProfile(::com::sun::star::mozilla::MozillaProductType_Thunderbird);
+  SAL_INFO("connectivity.mork", "DefaultProfile: " << defaultProfile);
+
+  ::rtl::OUString profilePath = access->getProfilePath(::com::sun::star::mozilla::MozillaProductType_Thunderbird, defaultProfile);
+  SAL_INFO("connectivity.mork", "ProfilePath: " << profilePath);
+
+  profilePath += rtl::OUString( "/abook.mab" );
+
+  SAL_INFO("connectivity.mork", "abook.mab: " << profilePath);
+  rtl::OString aOString = ::rtl::OUStringToOString( profilePath, RTL_TEXTENCODING_UTF8 );
+  openAddressBook(aOString.getStr());
 }
commit 30583bca4b124bf45039beaa715607ae1494bbbb
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Jul 27 16:09:45 2012 +0100

    stray fprintf
    
    Change-Id: Icd10968e886be1d534e8037db6225e83712384ee

diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx
index 89b947f..38a1865 100644
--- a/i18npool/qa/cppunit/test_breakiterator.cxx
+++ b/i18npool/qa/cppunit/test_breakiterator.cxx
@@ -152,7 +152,6 @@ void TestBreakIterator::testLineBreaking()
             //Here we want the line break to move the whole lot to the next line
             i18n::LineBreakResults aResult = m_xBreak->getLineBreak(aTest, aTest.getLength()-2, aLocale, 0,
                 aHyphOptions, aUserOptions);
-            fprintf(stderr, "suggestion was %d\n", aResult.breakIndex);
             CPPUNIT_ASSERT_MESSAGE("Expected a break at the start of the line, not at ]", aResult.breakIndex == 0);
         }
     }
commit 2c0ea81b99289c373a7c2cc4817c8fcfb6620fa4
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Jul 27 15:44:32 2012 +0100

    disable building the icu samples
    
    Change-Id: I8e8fbb33bcb008d45f539a112b4bf210603286c9

diff --git a/icu/makefile.mk b/icu/makefile.mk
index d1051ac..08fa3c6 100644
--- a/icu/makefile.mk
+++ b/icu/makefile.mk
@@ -149,7 +149,7 @@ icu_LDFLAGS+=-lgnustl_shared
 .ENDIF
 
 CONFIGURE_ACTION+=sh -c 'CPPFLAGS="$(EXTRA_CDEFS)" CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS) $(LDFLAGSADD)" \
-./configure --enable-layout $(STATIC_OR_SHARED) $(BUILD_AND_HOST) $(DISABLE_64BIT) $(DISABLE_STRICT) $(DISABLE_DYLOAD) $(LIBRARY_SUFFIX)'
+./configure --enable-layout --disable-samples $(STATIC_OR_SHARED) $(BUILD_AND_HOST) $(DISABLE_64BIT) $(DISABLE_STRICT) $(DISABLE_DYLOAD) $(LIBRARY_SUFFIX)'
 
 .IF "$(OS)" == "MACOSX"
 CONFIGURE_ACTION += \
@@ -229,7 +229,7 @@ BUILD_AND_HOST=--build=i586-pc-mingw32 --enable-64bit-libs=no
 .ENDIF
 
 CONFIGURE_ACTION+=sh -c 'CFLAGS="-O -D_MT" CXXFLAGS="-O -D_MT" LDFLAGS="$(icu_LDFLAGS)" LIBS="$(icu_LIBS)" \
-./configure $(BUILD_AND_HOST) --enable-layout --disable-static --enable-shared'
+./configure $(BUILD_AND_HOST) --enable-layout --disable-static --enable-shared --disable-samples'
 
 CONFIGURE_FLAGS=
 
commit 64810915dcde7ec8d625bbfafae7b7a7c1a4178d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Jul 27 15:27:05 2012 +0100

    add regression test for #i19716#
    
    Change-Id: I11440667bdf73ed09ebc83771acf33e2d3e61f6c

diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx
index 23a4092..89b947f 100644
--- a/i18npool/qa/cppunit/test_breakiterator.cxx
+++ b/i18npool/qa/cppunit/test_breakiterator.cxx
@@ -140,6 +140,22 @@ void TestBreakIterator::testLineBreaking()
             CPPUNIT_ASSERT_MESSAGE("Expected a break at the first slash", aResult.breakIndex == 4);
         }
     }
+
+    //See https://issues.apache.org/ooo/show_bug.cgi?id=19716
+    {
+        rtl::OUString aTest(RTL_CONSTASCII_USTRINGPARAM("aaa]aaa"));
+
+        aLocale.Language = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en"));
+        aLocale.Country = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US"));
+
+        {
+            //Here we want the line break to move the whole lot to the next line
+            i18n::LineBreakResults aResult = m_xBreak->getLineBreak(aTest, aTest.getLength()-2, aLocale, 0,
+                aHyphOptions, aUserOptions);
+            fprintf(stderr, "suggestion was %d\n", aResult.breakIndex);
+            CPPUNIT_ASSERT_MESSAGE("Expected a break at the start of the line, not at ]", aResult.breakIndex == 0);
+        }
+    }
 }
 
 //See https://bugs.freedesktop.org/show_bug.cgi?id=49629
diff --git a/i18npool/source/breakiterator/data/README b/i18npool/source/breakiterator/data/README
index 6e26445..8967c73 100644
--- a/i18npool/source/breakiterator/data/README
+++ b/i18npool/source/breakiterator/data/README
@@ -586,24 +586,10 @@ Date:   Mon Mar 8 16:17:05 2004 +0000
     INTEGRATION: CWS i18n09 (1.2.2); FILE MERGED
     2003/12/04 23:45:37 khong 1.2.2.3: #i22602# make dot stick on beginning of a word when doing line break
     2003/12/04 23:12:37 khong 1.2.2.2: #i21392# change line break rule to match with MS office
-    2003/12/03 19:32:02 khong 1.2.2.1: #i19716# fix wrong line break on bracket characters
-
-commit 15f41851842866c9a486eb9cfa258907c472f69f
-Author: Jens-Heiner Rechtien <hr at openoffice.org>
-Date:   Mon Mar 8 16:16:53 2004 +0000
-
-    INTEGRATION: CWS i18n09 (1.2.2); FILE MERGED
-    2003/12/03 02:17:55 khong 1.2.2.1: #110105# Set word boundary between CJK and Latin script type
-
-commit a83ef0cbe99b66241615b238c1d287a6da04e51e
-Author: Jens-Heiner Rechtien <hr at openoffice.org>
-Date:   Mon Mar 8 16:16:16 2004 +0000
-
-    INTEGRATION: CWS i18n09 (1.2.2); FILE MERGED
-    2003/12/03 02:17:54 khong 1.2.2.1: #110105# Set word boundary between CJK and Latin script type
 
 done, regression tests added:
 
+#i19716# fix wrong line break on bracket characters
 #i21290# extend Greek script type
 #i21907# fix isBeginWord and isEndWord problem
 #i85411# Apply patch for ZWSP
commit a79891fca88d2bc0414c439208b81f4dfa47b99a
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Jul 27 15:06:51 2012 +0100

    add regression test for #i21290
    
    Change-Id: Ic60f440f8dc8fcfa76a023557e76fcf8e3c52476

diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx
index b04dc53..23a4092 100644
--- a/i18npool/qa/cppunit/test_breakiterator.cxx
+++ b/i18npool/qa/cppunit/test_breakiterator.cxx
@@ -435,6 +435,47 @@ void TestBreakIterator::testWordBoundaries()
         while (nPos++ < aTest.getLength());
         CPPUNIT_ASSERT(i == SAL_N_ELEMENTS(aExpected));
     }
+
+    //https://issues.apache.org/ooo/show_bug.cgi?id=21290
+    for (int j = 0; j < 2; ++j)
+    {
+        switch (j)
+        {
+            case 0:
+                aLocale.Language = rtl::OUString("en");
+                aLocale.Country = rtl::OUString("US");
+                break;
+            case 1:
+                aLocale.Language = rtl::OUString("grc");
+                aLocale.Country = rtl::OUString();
+                break;
+            default:
+                CPPUNIT_ASSERT(false);
+                break;
+        }
+
+        const sal_Unicode TEST[] =
+        {
+            0x1F0C, 0x03BD, 0x03B4, 0x03C1, 0x03B1, 0x0020, 0x1F00,
+            0x03C1, 0x03BD, 0x1F7B, 0x03BC, 0x03B5, 0x03BD, 0x03BF,
+            0x03C2, 0x0020, 0x1F00, 0x03BB, 0x03BB, 0x0020, 0x1F24,
+            0x03C3, 0x03B8, 0x03B9, 0x03BF, 0x03BD
+        };
+        rtl::OUString aTest(TEST, SAL_N_ELEMENTS(TEST));
+
+        sal_Int32 nPos = 0;
+        sal_Int32 aExpected[] = {5, 15, 19, 26};
+        size_t i = 0;
+        do
+        {
+            CPPUNIT_ASSERT(i < SAL_N_ELEMENTS(aExpected));
+            nPos = m_xBreak->getWordBoundary(aTest, nPos, aLocale,
+                i18n::WordType::DICTIONARY_WORD, true).endPos;
+            CPPUNIT_ASSERT(aExpected[i++] == nPos);
+        }
+        while (nPos++ < aTest.getLength());
+        CPPUNIT_ASSERT(i == SAL_N_ELEMENTS(aExpected));
+    }
 }
 
 //See http://qa.openoffice.org/issues/show_bug.cgi?id=111152
diff --git a/i18npool/source/breakiterator/data/README b/i18npool/source/breakiterator/data/README
index b058a2d..6e26445 100644
--- a/i18npool/source/breakiterator/data/README
+++ b/i18npool/source/breakiterator/data/README
@@ -602,25 +602,10 @@ Date:   Mon Mar 8 16:16:16 2004 +0000
     INTEGRATION: CWS i18n09 (1.2.2); FILE MERGED
     2003/12/03 02:17:54 khong 1.2.2.1: #110105# Set word boundary between CJK and Latin script type
 
-commit f0939f43315a21f5134cd631773ddae7cfef4493
-Author: Jens-Heiner Rechtien <hr at openoffice.org>
-Date:   Mon Mar 8 16:16:04 2004 +0000
-
-    INTEGRATION: CWS i18n09 (1.12.2); FILE MERGED
-    2003/12/09 19:35:48 khong 1.12.2.4: #112021# fix word boundary problem on begining and end of the string
-    2003/12/08 23:47:26 khong 1.12.2.3: #i21907# fix isBeginWord and isEndWord problem
-    2003/11/18 22:55:08 khong 1.12.2.2: #i21290# #i22530# #i14640# extend CTL script support, extend Greek script type
-    2003/11/18 22:31:59 khong 1.12.2.1: #i21290# #i22530# #i14640# extend CTL script support, extend Greek script type
-
-commit 8311f89a42e6a4b8147191880470da415c9d7483
-Author: Rüdiger Timm <rt at openoffice.org>
-Date:   Tue Jan 20 12:20:28 2004 +0000
-
-    INTEGRATION: CWS i18n10 (1.12.4); FILE MERGED
-    2003/12/17 20:15:43 khong 1.12.4.1: #i22138# #112506# migrate to ICU collator and remove link to tool library
-
 done, regression tests added:
 
+#i21290# extend Greek script type
+#i21907# fix isBeginWord and isEndWord problem
 #i85411# Apply patch for ZWSP
 #i17155# fix line breakiterator rule to make slash and hyphen as part of word when doing line break
 #i13451# add '-' as midLetter for Catalan dictionary word breakiterator
commit b79080a919949743b108922e9b73aaa39189b888
Author: Michael Meeks <michael.meeks at suse.com>
Date:   Fri Jul 27 15:27:46 2012 +0100

    gtk3: ensure we re-render native commits
    
    If we blit pixels to the back-buffer, we need to remember to get them
    to gtk3 at idle.
    
    Change-Id: Ic37660e963fbbcdd132cfba0ce739174d64148d2

diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index 50258e0..17d3e12 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -329,6 +329,7 @@ public:
     // only for gtk3 ...
     void pushIgnoreDamage();
     void popIgnoreDamage();
+    bool isDuringRender();
     void renderArea( cairo_t *cr, cairo_rectangle_t *src );
 #endif
     virtual ~GtkSalFrame();
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index 36be0b2..d45a8f6 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -2990,6 +2990,12 @@ void GtkSalFrame::popIgnoreDamage()
 {
     m_nDuringRender--;
 }
+
+bool GtkSalFrame::isDuringRender()
+{
+    return m_nDuringRender;
+}
+
 #endif
 
 void GtkSalFrame::damaged (const basegfx::B2IBox& rDamageRect)
@@ -2997,27 +3003,29 @@ void GtkSalFrame::damaged (const basegfx::B2IBox& rDamageRect)
 #if !GTK_CHECK_VERSION(3,0,0)
     (void)rDamageRect;
 #else
-    if (m_nDuringRender)
+    if ( isDuringRender() )
         return;
 #if OSL_DEBUG_LEVEL > 1
     long long area = rDamageRect.getWidth() * rDamageRect.getHeight();
     if( area > 32 * 1024 )
-        fprintf( stderr, "bitmap damaged  %d %d (%dx%d) area %lld\n",
+    {
+        fprintf( stderr, "bitmap damaged  %d %d (%dx%d) area %lld widget\n",
                  (int) rDamageRect.getMinX(),
                  (int) rDamageRect.getMinY(),
                  (int) rDamageRect.getWidth(),
                  (int) rDamageRect.getHeight(),
                  area );
+    }
 #endif
     /* FIXME: this is a dirty hack, to render buttons correctly, we
      * should of course remove the -100 and + 200, but the whole area
      * won't be rendered then.
      */
     gtk_widget_queue_draw_area( m_pWindow,
-                                rDamageRect.getMinX() - 100,
-                                rDamageRect.getMinY() - 100,
-                                rDamageRect.getWidth() + 200,
-                                rDamageRect.getHeight() + 200 );
+                                rDamageRect.getMinX() - 1,
+                                rDamageRect.getMinY() - 1,
+                                rDamageRect.getWidth() + 2,
+                                rDamageRect.getHeight() + 2 );
 #endif
 }
 
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 64dc0bc..5e0972f 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -979,7 +979,10 @@ void GtkSalGraphics::renderAreaToPix( cairo_t *cr,
         src += nStride;
         cairo_data += cairo_stride;
     }
+    if ( !mpFrame->isDuringRender() )
+        gtk_widget_queue_draw_area( mpFrame->getWindow(), ax, ay, awidth, aheight );
 }
+
 sal_Bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState,
                                                 const ImplControlValue&, const rtl::OUString&,
                                                 Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion )
@@ -1551,6 +1554,7 @@ void GtkSalGraphics::copyArea( long nDestX, long nDestY,
                                long nSrcWidth, long nSrcHeight,
                                sal_uInt16 nFlags )
 {
+#ifndef DISABLE_CLEVER_COPYAREA
     mpFrame->pushIgnoreDamage();
     SvpSalGraphics::copyArea( nDestX, nDestY, nSrcX, nSrcY, nSrcWidth, nSrcHeight, nFlags );
     mpFrame->popIgnoreDamage();
@@ -1595,10 +1599,12 @@ void GtkSalGraphics::copyArea( long nDestX, long nDestY,
     // FIXME: this will queue (duplicate) gtk+ re-rendering for the exposed area, c'est la vie
     gdk_window_move_region( gtk_widget_get_window( mpFrame->getWindow() ),
                             region, nDestX - nSrcX, nDestY - nSrcY );
-
     print_update_area( gtk_widget_get_window( mpFrame->getWindow() ), "after copy area" );
     cairo_region_destroy( clip_region );
     cairo_region_destroy( region );
+#else
+    SvpSalGraphics::copyArea( nDestX, nDestY, nSrcX, nSrcY, nSrcWidth, nSrcHeight, nFlags );
+#endif
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 9478dab8104fefb409e99f52d3ec09960eee6fe8
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Fri Jul 27 15:49:14 2012 +0200

    add RtfAttributeOutput::FlyFrameOLEReplacement
    
    This extracts ole replacement code from FlyFrameOLEMath() and makes
    FlyFrameOLE() use it as well, as the later didn't write png replacement,
    just wmf one. Also remove FlyFrameOLEData(), which is now unused (it was
    only used by math, but math export returns earlier).
    
    Change-Id: I5e88708cdad1468ccbc5c3c8bb77521785822832

diff --git a/svtools/inc/svtools/rtfkeywd.hxx b/svtools/inc/svtools/rtfkeywd.hxx
index ba26d76..6a4b73f 100644
--- a/svtools/inc/svtools/rtfkeywd.hxx
+++ b/svtools/inc/svtools/rtfkeywd.hxx
@@ -1201,6 +1201,8 @@
 #define LO_STRING_SVTOOLS_RTF_MSUP "\\msup"
 #define LO_STRING_SVTOOLS_RTF_MTYPE "\\mtype"
 #define LO_STRING_SVTOOLS_RTF_MVERTJC "\\mvertJc"
+#define LO_STRING_SVTOOLS_RTF_MMATH "\\mmath"
+#define LO_STRING_SVTOOLS_RTF_MMATHPICT "\\mmathPict"
 
 #endif // _RTFKEYWD_HXX
 
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 73daf80..a02d407 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -3331,75 +3331,8 @@ static OString ExportPICT( const SwFlyFrmFmt* pFlyFrmFmt, const Size &rOrig, con
     return aRet.makeStringAndClear();
 }
 
-void RtfAttributeOutput::FlyFrameOLEData( SwOLENode& rOLENode )
+void RtfAttributeOutput::FlyFrameOLEReplacement(const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize)
 {
-    SAL_INFO("sw.rtf", OSL_THIS_FUNC);
-
-    uno::Reference < embed::XEmbeddedObject > xObj(const_cast<SwOLENode&>(rOLENode).GetOLEObj().GetOleRef());
-    sal_Int64 nAspect = rOLENode.GetAspect();
-    svt::EmbeddedObjectRef aObjRef( xObj, nAspect );
-    SvGlobalName aObjName(aObjRef->getClassID());
-
-    if (SotExchange::IsMath(aObjName))
-    {
-        // ObjectHeader
-        m_aRunText->append(WriteHex(0x00000501)); // OLEVersion
-        m_aRunText->append(WriteHex(0x00000002)); // FormatID
-        m_aRunText->append(WriteHex(OString("Equation.3"))); // ClassName
-        m_aRunText->append(WriteHex(0x00000000)); // TopicName
-        m_aRunText->append(WriteHex(0x00000000)); // ItemName
-
-        // NativeData
-        SvMemoryStream *pStream = new SvMemoryStream;
-        SvStorage* pStorage = new SvStorage(*pStream);
-        m_rExport.pOLEExp->ExportOLEObject( aObjRef, *pStorage );
-        pStream->Seek(STREAM_SEEK_TO_END);
-        sal_uInt32 nNativeDataSize = pStream->Tell();
-        const sal_uInt8* pNativeData = (sal_uInt8*)pStream->GetData();
-        m_aRunText->append(WriteHex(nNativeDataSize));
-        m_aRunText->append(RtfExport::sNewLine);
-        m_aRunText->append(RtfAttributeOutput::WriteHex(pNativeData, nNativeDataSize, 0, 126));
-        m_aRunText->append(RtfExport::sNewLine);
-        delete pStream;
-
-        // MetaFilePresentationObject
-        pStream = new SvMemoryStream;
-        Graphic* pGraphic = rOLENode.GetGraphic();
-        if (GraphicConverter::Export(*pStream, *pGraphic, CVT_WMF) != ERRCODE_NONE)
-            OSL_FAIL("failed to export the presentation data");
-        pStream->Seek(STREAM_SEEK_TO_END);
-        sal_uInt32 nPresentationDataSize = pStream->Tell();
-        const sal_uInt8* pPresentationData = (sal_uInt8*)pStream->GetData();
-        m_aRunText->append(WriteHex(pPresentationData, nPresentationDataSize, 0, 126));
-    }
-}
-
-bool RtfAttributeOutput::FlyFrameOLEMath(const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize)
-{
-    SAL_INFO("sw.rtf", OSL_THIS_FUNC);
-
-    uno::Reference <embed::XEmbeddedObject> xObj(const_cast<SwOLENode&>(rOLENode).GetOLEObj().GetOleRef());
-    sal_Int64 nAspect = rOLENode.GetAspect();
-    svt::EmbeddedObjectRef aObjRef(xObj, nAspect);
-    SvGlobalName aObjName(aObjRef->getClassID());
-
-    if (!SotExchange::IsMath(aObjName))
-        return false;
-
-    m_aRunText->append("{\\mmath");
-    uno::Reference<util::XCloseable> xClosable(xObj->getComponent(), uno::UNO_QUERY);
-    oox::FormulaExportBase* pBase = dynamic_cast<oox::FormulaExportBase*>(xClosable.get());
-    SAL_WARN_IF(!pBase, "sw.rtf", "Math OLE object cannot write out RTF");
-    if (pBase)
-    {
-        OStringBuffer aBuf;
-        pBase->writeFormulaRtf(aBuf, m_rExport.eCurrentEncoding);
-        m_aRunText->append(aBuf.makeStringAndClear());
-    }
-
-    // Replacement graphic.
-    m_aRunText->append("{\\mmathPict");
-
     m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_SHPPICT);
     Size aSize(sw::util::GetSwappedInSize(rOLENode));
     Size aRendered(aSize);
@@ -3428,7 +3361,34 @@ bool RtfAttributeOutput::FlyFrameOLEMath(const SwFlyFrmFmt* pFlyFrmFmt, SwOLENod
     pGraphicAry = (sal_uInt8*)aStream.GetData();
     m_aRunText->append(ExportPICT( pFlyFrmFmt, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, m_rExport ));
     m_aRunText->append("}"); // nonshppict
+}
+
+bool RtfAttributeOutput::FlyFrameOLEMath(const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize)
+{
+    SAL_INFO("sw.rtf", OSL_THIS_FUNC);
+
+    uno::Reference <embed::XEmbeddedObject> xObj(const_cast<SwOLENode&>(rOLENode).GetOLEObj().GetOleRef());
+    sal_Int64 nAspect = rOLENode.GetAspect();
+    svt::EmbeddedObjectRef aObjRef(xObj, nAspect);
+    SvGlobalName aObjName(aObjRef->getClassID());
+
+    if (!SotExchange::IsMath(aObjName))
+        return false;
 
+    m_aRunText->append("{" LO_STRING_SVTOOLS_RTF_MMATH " ");
+    uno::Reference<util::XCloseable> xClosable(xObj->getComponent(), uno::UNO_QUERY);
+    oox::FormulaExportBase* pBase = dynamic_cast<oox::FormulaExportBase*>(xClosable.get());
+    SAL_WARN_IF(!pBase, "sw.rtf", "Math OLE object cannot write out RTF");
+    if (pBase)
+    {
+        OStringBuffer aBuf;
+        pBase->writeFormulaRtf(aBuf, m_rExport.eCurrentEncoding);
+        m_aRunText->append(aBuf.makeStringAndClear());
+    }
+
+    // Replacement graphic.
+    m_aRunText->append("{" LO_STRING_SVTOOLS_RTF_MMATHPICT " ");
+    FlyFrameOLEReplacement(pFlyFrmFmt, rOLENode, rSize);
     m_aRunText->append("}"); // mmathPict
     m_aRunText->append("}"); // mmath
 
@@ -3442,40 +3402,7 @@ void RtfAttributeOutput::FlyFrameOLE( const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode&
     if (FlyFrameOLEMath(pFlyFrmFmt, rOLENode, rSize))
         return;
 
-    SvMemoryStream aStream;
-    const sal_uInt8* pGraphicAry = 0;
-    sal_uInt32 nSize = 0;
-    Graphic* pGraphic = rOLENode.GetGraphic();
-
-    Size aSize(sw::util::GetSwappedInSize(rOLENode));
-    Size aRendered(aSize);
-    aRendered.Width() = rSize.Width();
-    aRendered.Height() = rSize.Height();
-    Size aMapped(pGraphic->GetPrefSize());
-    const SwCropGrf &rCr = (const SwCropGrf &)rOLENode.GetAttr(RES_GRFATR_CROPGRF);
-    const sal_Char* pBLIPType = OOO_STRING_SVTOOLS_RTF_WMETAFILE;
-
-    if (GraphicConverter::Export(aStream, *pGraphic, CVT_WMF) != ERRCODE_NONE)
-        OSL_FAIL("failed to export the graphic");
-    aStream.Seek(STREAM_SEEK_TO_END);
-    nSize = aStream.Tell();
-    pGraphicAry = (sal_uInt8*)aStream.GetData();
-
-    m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_OBJECT OOO_STRING_SVTOOLS_RTF_OBJEMB);
-
-    // export the object data in the appropriate format; RTF requires the usage of the OLE 1.0 format
-    m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_OBJDATA " ");
-    FlyFrameOLEData(rOLENode);
-    m_aRunText->append("}{" OOO_STRING_SVTOOLS_RTF_RESULT);
-
-    SwTwips nHeight = aSize.Height();
-    nHeight/=20; //nHeight was in twips, want it in half points, but then half of total height.
-    long nFontHeight = ((const SvxFontHeightItem&)m_rExport.GetItem(RES_CHRATR_FONTSIZE)).GetHeight();
-    nHeight-=nFontHeight/20;
-    m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_DN).append(nHeight);
-    m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_SHPPICT);
-    m_aRunText->append(ExportPICT( pFlyFrmFmt, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, m_rExport ));
-    m_aRunText->append("}}}}");
+    FlyFrameOLEReplacement(pFlyFrmFmt, rOLENode, rSize);
 }
 
 void RtfAttributeOutput::FlyFrameGraphic( const SwFlyFrmFmt* pFlyFrmFmt, const SwGrfNode* pGrfNode)
diff --git a/sw/source/filter/ww8/rtfattributeoutput.hxx b/sw/source/filter/ww8/rtfattributeoutput.hxx
index dc97001..14e59f3 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.hxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.hxx
@@ -419,7 +419,7 @@ private:
     /// Output graphic fly frames.
     void FlyFrameGraphic( const SwFlyFrmFmt* pFlyFrmFmt, const SwGrfNode* pGrfNode );
     void FlyFrameOLE( const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize );
-    void FlyFrameOLEData( SwOLENode& rOLENode );
+    void FlyFrameOLEReplacement(const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize);
     /// Math export.
     bool FlyFrameOLEMath(const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize);
 
commit 3a0d0027b85b3de571bc844fabb74ceee46b682b
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Fri Jul 27 15:38:54 2012 +0200

    implement import/export of RTF_MMATHPICT
    
    to be compatible with readers not understanding RTF_MOMATH
    
    Change-Id: I8d6a28b03b740da372558f7aa245592be6ac70b9

diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx
index eceb6e0..73daf80 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -3374,7 +3374,7 @@ void RtfAttributeOutput::FlyFrameOLEData( SwOLENode& rOLENode )
     }
 }
 
-bool RtfAttributeOutput::FlyFrameOLEMath(SwOLENode& rOLENode)
+bool RtfAttributeOutput::FlyFrameOLEMath(const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize)
 {
     SAL_INFO("sw.rtf", OSL_THIS_FUNC);
 
@@ -3386,18 +3386,52 @@ bool RtfAttributeOutput::FlyFrameOLEMath(SwOLENode& rOLENode)
     if (!SotExchange::IsMath(aObjName))
         return false;
 
+    m_aRunText->append("{\\mmath");
     uno::Reference<util::XCloseable> xClosable(xObj->getComponent(), uno::UNO_QUERY);
     oox::FormulaExportBase* pBase = dynamic_cast<oox::FormulaExportBase*>(xClosable.get());
     SAL_WARN_IF(!pBase, "sw.rtf", "Math OLE object cannot write out RTF");
     if (pBase)
     {
-        m_aRunText->append("{\\mmath");
         OStringBuffer aBuf;
         pBase->writeFormulaRtf(aBuf, m_rExport.eCurrentEncoding);
         m_aRunText->append(aBuf.makeStringAndClear());
-        m_aRunText->append("}");
     }
 
+    // Replacement graphic.
+    m_aRunText->append("{\\mmathPict");
+
+    m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_SHPPICT);
+    Size aSize(sw::util::GetSwappedInSize(rOLENode));
+    Size aRendered(aSize);
+    aRendered.Width() = rSize.Width();
+    aRendered.Height() = rSize.Height();
+    Graphic* pGraphic = rOLENode.GetGraphic();
+    Size aMapped(pGraphic->GetPrefSize());
+    const SwCropGrf &rCr = (const SwCropGrf &)rOLENode.GetAttr(RES_GRFATR_CROPGRF);
+    const sal_Char* pBLIPType = OOO_STRING_SVTOOLS_RTF_PNGBLIP;
+    const sal_uInt8* pGraphicAry = 0;
+    SvMemoryStream aStream;
+    if (GraphicConverter::Export(aStream, *pGraphic, CVT_PNG) != ERRCODE_NONE)
+        OSL_FAIL("failed to export the graphic");
+    aStream.Seek(STREAM_SEEK_TO_END);
+    sal_uInt32 nSize = aStream.Tell();
+    pGraphicAry = (sal_uInt8*)aStream.GetData();
+    m_aRunText->append(ExportPICT( pFlyFrmFmt, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, m_rExport ));
+    m_aRunText->append("}"); // shppict
+    m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_NONSHPPICT);
+    pBLIPType = OOO_STRING_SVTOOLS_RTF_WMETAFILE;
+    SvMemoryStream aWmfStream;
+    if (GraphicConverter::Export(aWmfStream, *pGraphic, CVT_WMF) != ERRCODE_NONE)
+        OSL_FAIL("failed to export the graphic");
+    aWmfStream.Seek(STREAM_SEEK_TO_END);
+    nSize = aWmfStream.Tell();
+    pGraphicAry = (sal_uInt8*)aStream.GetData();
+    m_aRunText->append(ExportPICT( pFlyFrmFmt, aSize, aRendered, aMapped, rCr, pBLIPType, pGraphicAry, nSize, m_rExport ));
+    m_aRunText->append("}"); // nonshppict
+
+    m_aRunText->append("}"); // mmathPict
+    m_aRunText->append("}"); // mmath
+
     return true;
 }
 
@@ -3405,7 +3439,7 @@ void RtfAttributeOutput::FlyFrameOLE( const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode&
 {
     SAL_INFO("sw.rtf", OSL_THIS_FUNC);
 
-    if (FlyFrameOLEMath(rOLENode))
+    if (FlyFrameOLEMath(pFlyFrmFmt, rOLENode, rSize))
         return;
 
     SvMemoryStream aStream;
diff --git a/sw/source/filter/ww8/rtfattributeoutput.hxx b/sw/source/filter/ww8/rtfattributeoutput.hxx
index aa2d85d..dc97001 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.hxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.hxx
@@ -421,7 +421,7 @@ private:
     void FlyFrameOLE( const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize );
     void FlyFrameOLEData( SwOLENode& rOLENode );
     /// Math export.
-    bool FlyFrameOLEMath(SwOLENode& rOLENode);
+    bool FlyFrameOLEMath(const SwFlyFrmFmt* pFlyFrmFmt, SwOLENode& rOLENode, const Size& rSize);
 
     /*
      * Table methods.
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index e41ec9e..bece052 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -2018,6 +2018,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword)
             }
             break;
         case RTF_NONSHPPICT:
+        case RTF_MMATHPICT: // Picture group used by readers not understanding \moMath group
             m_aStates.top().nDestinationState = DESTINATION_SKIP;
             break;
         case RTF_CLBRDRT:
commit 743e1c634d029d24cf2d556cb5cae41e1ad8a902
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Fri Jul 27 14:12:42 2012 +0200

    SmRtfExport: get current encoding from Writer instead of assuming the default
    
    Change-Id: Ia8bdf83f36d986ca45ddad985aca827224c194f4

diff --git a/oox/inc/oox/mathml/export.hxx b/oox/inc/oox/mathml/export.hxx
index 7d6a7db..84914a5 100644
--- a/oox/inc/oox/mathml/export.hxx
+++ b/oox/inc/oox/mathml/export.hxx
@@ -44,7 +44,7 @@ class OOX_DLLPUBLIC FormulaExportBase
 {
 public:
     virtual void writeFormulaOoxml( ::sax_fastparser::FSHelperPtr m_pSerializer, oox::core::OoxmlVersion version ) = 0;
-    virtual void writeFormulaRtf( OStringBuffer& rBuffer ) = 0;
+    virtual void writeFormulaRtf( OStringBuffer& rBuffer, rtl_TextEncoding nEncoding ) = 0;
 
 protected:
     FormulaExportBase();
diff --git a/starmath/inc/document.hxx b/starmath/inc/document.hxx
index 43aefaa..e9b4a95 100644
--- a/starmath/inc/document.hxx
+++ b/starmath/inc/document.hxx
@@ -156,7 +156,7 @@ class SmDocShell : public SfxObjectShell, public SfxListener
     void                InvalidateCursor();
 
     bool writeFormulaOoxml( ::sax_fastparser::FSHelperPtr m_pSerializer, oox::core::OoxmlVersion version );
-    void writeFormulaRtf(OStringBuffer& rBuffer);
+    void writeFormulaRtf(OStringBuffer& rBuffer, rtl_TextEncoding nEncoding);
     bool readFormulaOoxml( oox::formulaimport::XmlStream& stream );
 
 public:
diff --git a/starmath/inc/unomodel.hxx b/starmath/inc/unomodel.hxx
index fc68089..dbf4b1f 100644
--- a/starmath/inc/unomodel.hxx
+++ b/starmath/inc/unomodel.hxx
@@ -93,7 +93,7 @@ public:
 
     // oox::FormulaExportBase
     virtual void writeFormulaOoxml( ::sax_fastparser::FSHelperPtr m_pSerializer, oox::core::OoxmlVersion version );
-    virtual void writeFormulaRtf(OStringBuffer& rBuffer);
+    virtual void writeFormulaRtf(OStringBuffer& rBuffer, rtl_TextEncoding nEncoding);
     // oox::FormulaImportBase
     virtual void readFormulaOoxml( oox::formulaimport::XmlStream& stream );
     virtual Size getFormulaSize() const;
diff --git a/starmath/source/document.cxx b/starmath/source/document.cxx
index 5a41f97..6cc719e 100644
--- a/starmath/source/document.cxx
+++ b/starmath/source/document.cxx
@@ -987,14 +987,14 @@ bool SmDocShell::writeFormulaOoxml( ::sax_fastparser::FSHelperPtr m_pSerializer,
     return aEquation.ConvertFromStarMath( m_pSerializer );
 }
 
-void SmDocShell::writeFormulaRtf(OStringBuffer& rBuffer)
+void SmDocShell::writeFormulaRtf(OStringBuffer& rBuffer, rtl_TextEncoding nEncoding)
 {
     if (!pTree)
         Parse();
     if (pTree && !IsFormulaArranged())
         ArrangeFormula();
     SmRtfExport aEquation(pTree);
-    aEquation.ConvertFromStarMath(rBuffer);
+    aEquation.ConvertFromStarMath(rBuffer, nEncoding);
 }
 
 bool SmDocShell::readFormulaOoxml( oox::formulaimport::XmlStream& stream )
diff --git a/starmath/source/rtfexport.cxx b/starmath/source/rtfexport.cxx
index 3e1fa3d..6f4d0a2 100644
--- a/starmath/source/rtfexport.cxx
+++ b/starmath/source/rtfexport.cxx
@@ -39,11 +39,12 @@ SmRtfExport::SmRtfExport(const SmNode* pIn)
 {
 }
 
-bool SmRtfExport::ConvertFromStarMath(OStringBuffer& rBuffer)
+bool SmRtfExport::ConvertFromStarMath(OStringBuffer& rBuffer, rtl_TextEncoding nEncoding)
 {
     if (!m_pTree)
         return false;
     m_pBuffer = &rBuffer;
+    m_nEncoding = nEncoding;
     m_pBuffer->append("{" OOO_STRING_SVTOOLS_RTF_IGNORE LO_STRING_SVTOOLS_RTF_MOMATH " ");
     HandleNode(m_pTree, 0);
     m_pBuffer->append("}"); // moMath
@@ -76,7 +77,7 @@ void SmRtfExport::HandleText(const SmNode* pNode, int /*nLevel*/)
     {
         sal_uInt16 nChar = pTemp->GetText().GetChar(i);
         OUString aValue(SmTextNode::ConvertSymbolToUnicode(nChar));
-        m_pBuffer->append(msfilter::rtfutil::OutString(aValue, RTL_TEXTENCODING_MS_1252));
+        m_pBuffer->append(msfilter::rtfutil::OutString(aValue, m_nEncoding));
     }
 
     m_pBuffer->append("}"); // mr
@@ -127,7 +128,7 @@ void SmRtfExport::HandleAttribute(const SmAttributNode* pNode, int nLevel)
             m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MACCPR " ");
             m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MCHR " ");
             OUString aValue(pNode->Attribute()->GetToken().cMathChar);
-            m_pBuffer->append(msfilter::rtfutil::OutString(aValue, RTL_TEXTENCODING_MS_1252));
+            m_pBuffer->append(msfilter::rtfutil::OutString(aValue, m_nEncoding));
             m_pBuffer->append("}"); // mchr
             m_pBuffer->append("}"); // maccPr
             m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_ME " ");
@@ -192,7 +193,7 @@ void SmRtfExport::HandleRoot(const SmRootNode* pNode, int nLevel)
 }
 
 namespace {
-OString mathSymbolToString(const SmNode* node)
+OString mathSymbolToString(const SmNode* node, rtl_TextEncoding nEncoding)
 {
     assert(node->GetType() == NMATH);
     const SmTextNode* txtnode = static_cast<const SmTextNode*>(node);
@@ -201,7 +202,7 @@ OString mathSymbolToString(const SmNode* node)
     assert(txtnode->GetText().Len() == 1);
     sal_Unicode chr = SmTextNode::ConvertSymbolToUnicode(txtnode->GetText().GetChar(0));
     OUString aValue(chr);
-    return msfilter::rtfutil::OutString(aValue, RTL_TEXTENCODING_MS_1252);
+    return msfilter::rtfutil::OutString(aValue, nEncoding);
 }
 }
 
@@ -225,7 +226,7 @@ void SmRtfExport::HandleOperator(const SmOperNode* pNode, int nLevel)
             m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MNARY " ");
             m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MNARYPR " ");
             m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MCHR " ");
-            m_pBuffer->append(mathSymbolToString(operation));
+            m_pBuffer->append(mathSymbolToString(operation, m_nEncoding));
             m_pBuffer->append("}"); // mchr
             if (!subsup || !subsup->GetSubSup(CSUB))
                 m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MSUBHIDE " 1}");
@@ -408,7 +409,7 @@ void SmRtfExport::HandleBrace(const SmBraceNode* pNode, int nLevel)
     m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MD " ");
     m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MDPR " ");
     m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MBEGCHR " ");
-    m_pBuffer->append(mathSymbolToString(pNode->OpeningBrace()));
+    m_pBuffer->append(mathSymbolToString(pNode->OpeningBrace(), m_nEncoding));
     m_pBuffer->append("}"); // mbegChr
     std::vector< const SmNode* > subnodes;
     if (pNode->Body()->GetType() == NBRACEBODY)
@@ -424,7 +425,7 @@ void SmRtfExport::HandleBrace(const SmBraceNode* pNode, int nLevel)
                 if(!separatorWritten)
                 {
                     m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MSEPCHR " ");
-                    m_pBuffer->append(mathSymbolToString(math));
+                    m_pBuffer->append(mathSymbolToString(math, m_nEncoding));
                     m_pBuffer->append("}"); // msepChr
                     separatorWritten = true;
                 }
@@ -436,7 +437,7 @@ void SmRtfExport::HandleBrace(const SmBraceNode* pNode, int nLevel)
     else
         subnodes.push_back(pNode->Body());
     m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MENDCHR " ");
-    m_pBuffer->append(mathSymbolToString(pNode->ClosingBrace()));
+    m_pBuffer->append(mathSymbolToString(pNode->ClosingBrace(), m_nEncoding));
     m_pBuffer->append("}"); // mendChr
     m_pBuffer->append("}"); // mdPr
     for (unsigned int i = 0; i < subnodes.size(); ++i)
@@ -465,7 +466,7 @@ void SmRtfExport::HandleVerticalBrace(const SmVerticalBraceNode* pNode, int nLev
             m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MGROUPCHR " ");
             m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MGROUPCHRPR " ");
             m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MCHR " ");
-            m_pBuffer->append(mathSymbolToString(pNode->Brace()));
+            m_pBuffer->append(mathSymbolToString(pNode->Brace(), m_nEncoding));
             m_pBuffer->append("}"); // mchr
             // TODO not sure if pos and vertJc are correct
             m_pBuffer->append("{" LO_STRING_SVTOOLS_RTF_MPOS " ").append(top ? "top" : "bot").append("}");
diff --git a/starmath/source/rtfexport.hxx b/starmath/source/rtfexport.hxx
index bf12b64..2183d39 100644
--- a/starmath/source/rtfexport.hxx
+++ b/starmath/source/rtfexport.hxx
@@ -40,7 +40,7 @@ class SmRtfExport : public SmWordExportBase
 {
 public:
     SmRtfExport(const SmNode* pIn);
-    bool ConvertFromStarMath(OStringBuffer& rBuffer);
+    bool ConvertFromStarMath(OStringBuffer& rBuffer, rtl_TextEncoding nEncoding);
 private:
     virtual void HandleVerticalStack(const SmNode* pNode, int nLevel);
     virtual void HandleText(const SmNode* pNode, int nLevel);
@@ -55,6 +55,7 @@ private:
     virtual void HandleBlank();
 
     OStringBuffer* m_pBuffer;
+    rtl_TextEncoding m_nEncoding;
 };
 
 
diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx
index dadb8f3..40fa0eb 100644
--- a/starmath/source/unomodel.cxx
+++ b/starmath/source/unomodel.cxx
@@ -1123,9 +1123,9 @@ void SmModel::writeFormulaOoxml( ::sax_fastparser::FSHelperPtr m_pSerializer, oo
     static_cast< SmDocShell* >( GetObjectShell())->writeFormulaOoxml( m_pSerializer, version );
 }
 
-void SmModel::writeFormulaRtf(OStringBuffer& rBuffer)
+void SmModel::writeFormulaRtf(OStringBuffer& rBuffer, rtl_TextEncoding nEncoding)
 {
-    static_cast<SmDocShell*>(GetObjectShell())->writeFormulaRtf(rBuffer);
+    static_cast<SmDocShell*>(GetObjectShell())->writeFormulaRtf(rBuffer, nEncoding);
 }
 
 void SmModel::readFormulaOoxml( oox::formulaimport::XmlStream& stream )
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx
index c804ee8..eceb6e0 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -3393,7 +3393,7 @@ bool RtfAttributeOutput::FlyFrameOLEMath(SwOLENode& rOLENode)
     {
         m_aRunText->append("{\\mmath");
         OStringBuffer aBuf;
-        pBase->writeFormulaRtf(aBuf);
+        pBase->writeFormulaRtf(aBuf, m_rExport.eCurrentEncoding);
         m_aRunText->append(aBuf.makeStringAndClear());
         m_aRunText->append("}");
     }
commit 2f88dacf9d5d78efebaf8bc96a931d6dde401f05
Author: Cosimo Cecchi <cosimoc at gnome.org>
Date:   Fri Jul 27 14:38:58 2012 +0100

    gtk3: remove obsolete forced background rendering
    
    Change-Id: I3fabfcee9166d2b32dbadaedba6d364ae1a7559e

diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index b948ac7..64dc0bc 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -765,8 +765,6 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart
     GtkShadowType shadow;
     gint renderType = RENDER_BACKGROUND_AND_FRAME;
     GtkStyleContext *context = NULL;
-    GtkStyleContext *additionalContext = NULL;
-    bool renderWindowBackground = true;
     const gchar *styleClass = NULL;
 
     NWConvertVCLStateToGTKState(nState, &flags, &shadow);
@@ -808,24 +806,20 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart
             styleClass = GTK_STYLE_CLASS_CHECK;
             context = mpMenuItemStyle;
             renderType = RENDER_CHECK;
-            renderWindowBackground = false;
             break;
         case PART_MENU_ITEM_RADIO_MARK:
             styleClass = GTK_STYLE_CLASS_RADIO;
             context = mpMenuItemStyle;
             renderType = RENDER_RADIO;
-            renderWindowBackground = false;
             break;
         case PART_MENU_SEPARATOR:
             styleClass = GTK_STYLE_CLASS_SEPARATOR;
             context = mpMenuItemStyle;
             renderType = RENDER_LINE;
-            additionalContext = mpMenuStyle;
             break;
         case PART_MENU_SUBMENU_ARROW:
             context = mpMenuStyle;
             renderType = RENDER_ARROW;
-            renderWindowBackground = false;
             break;
         }
         break;
@@ -840,7 +834,6 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart
             flags = (GtkStateFlags)(flags |
                     ( (aValue.getTristateVal() == BUTTONVALUE_ON) ? GTK_STATE_FLAG_ACTIVE : GTK_STATE_FLAG_NORMAL));
             context = mpToolButtonStyle;
-            additionalContext = mpToolbarStyle;
             break;
         default:
             return sal_False;
@@ -852,7 +845,6 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart
         context = mpCheckButtonStyle;
         styleClass = GTK_STYLE_CLASS_CHECK;
         renderType = RENDER_CHECK;
-        renderWindowBackground = false;
         break;
     case CTRL_RADIOBUTTON:
         flags = (GtkStateFlags)(flags |
@@ -860,7 +852,6 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart
         context = mpCheckButtonStyle;
         styleClass = GTK_STYLE_CLASS_RADIO;
         renderType = RENDER_RADIO;
-        renderWindowBackground = false;
         break;
     case CTRL_PUSHBUTTON:
         context = mpButtonStyle;
@@ -872,7 +863,6 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart
         case PART_DRAW_BACKGROUND_HORZ:
             context = mpScrollbarStyle;
             renderType = RENDER_SCROLLBAR;
-            renderWindowBackground = false;
             break;
         }
         break;
@@ -885,22 +875,7 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart
     cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
                                                           translatedRegion.width, translatedRegion.height);
     cairo_t *cr = cairo_create(surface);
-    cairo_surface_destroy(surface);
-
-    if (!additionalContext && renderWindowBackground)
-        additionalContext = gtk_widget_get_style_context(mpWindow);
-
-    if (additionalContext)
-    {
-        gtk_style_context_save(additionalContext);
-        gtk_style_context_set_state(additionalContext, flags);
-
-        gtk_render_background(additionalContext, cr,
-                              0, 0,
-                              translatedRegion.width, translatedRegion.height);
-
-        gtk_style_context_restore(additionalContext);
-    }
+    cairo_surface_destroy(surface); // unref
 
     gtk_style_context_save(context);
     gtk_style_context_set_state(context, flags);
@@ -957,7 +932,7 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart
     gtk_style_context_restore(context);
 
     renderAreaToPix(cr, &translatedRegion);
-    cairo_destroy(cr);
+    cairo_destroy(cr); // unref
 
     return sal_True;
 }
commit 936dcf883ec746518ce1d5dc6a318df95057ac84
Author: Cosimo Cecchi <cosimoc at gnome.org>
Date:   Thu May 10 23:00:19 2012 -0400

    gtk3: fix colors for menubar and menu items
    
    Change-Id: Iea44b34fbfc189c21267e095860c3bab3217bcfb

diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 11bf0c8..b948ac7 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -825,7 +825,7 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart
         case PART_MENU_SUBMENU_ARROW:
             context = mpMenuStyle;
             renderType = RENDER_ARROW;
-            additionalContext = mpMenuStyle;
+            renderWindowBackground = false;
             break;
         }
         break;
@@ -1206,7 +1206,7 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
     aStyleSet.SetMenuBarTextColor( aTextColor );
 
     // menu items
-    gtk_style_context_get_color( mpMenuItemStyle, GTK_STATE_FLAG_NORMAL, &color );
+    gtk_style_context_get_color( mpMenuStyle, GTK_STATE_FLAG_NORMAL, &color );
     aTextColor = getColor( color );
     aStyleSet.SetMenuTextColor( aTextColor );
 
@@ -1521,6 +1521,7 @@ GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow )
 
     /* Menu bar */
     getStyleContext(&mpMenuBarStyle, gtk_menu_bar_new());
+    gtk_style_context_add_class(mpMenuBarStyle, GTK_STYLE_CLASS_MENU);
 
     /* Menu items in a menu bar */
     path = gtk_widget_path_new();
commit 9b03b7b466603a9a001252c55aff9757de5090c6
Author: Cosimo Cecchi <cosimoc at gnome.org>
Date:   Thu May 10 22:54:56 2012 -0400

    gtk3: simplify code
    
    Change-Id: Iad78f62bedb93c456830b2133b67e081ab035b5e

diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index e5bd3d0..11bf0c8 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -1013,29 +1013,22 @@ sal_Bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart
     Rectangle aEditRect = rControlRegion;
     gint indicator_size, point;
 
-    if( nPart == PART_ENTIRE_CONTROL)
+    if(((nType == CTRL_CHECKBOX) || (nType == CTRL_RADIOBUTTON)) &&
+       nPart == PART_ENTIRE_CONTROL)
     {
-        switch(nType)
-        {
-        case CTRL_CHECKBOX:
-        case CTRL_RADIOBUTTON:
-            gtk_style_context_get_style( mpCheckButtonStyle,
-                                         "indicator-size", &indicator_size,
-                                         (char *)NULL );
+        gtk_style_context_get_style( mpCheckButtonStyle,
+                                     "indicator-size", &indicator_size,
+                                     (char *)NULL );
 
-            point = MAX(0, rControlRegion.GetHeight() - indicator_size);
-            aEditRect = Rectangle( Point( 0, point / 2),
-                                   Size( indicator_size, indicator_size ) );
-            break;
-        default:
-            return sal_False;
-        }
+        point = MAX(0, rControlRegion.GetHeight() - indicator_size);
+        aEditRect = Rectangle( Point( 0, point / 2),
+                               Size( indicator_size, indicator_size ) );
     }
-    else if( (nPart == PART_MENU_ITEM_CHECK_MARK) ||
-             (nPart == PART_MENU_ITEM_RADIO_MARK) )  {
-        switch (nType)
+    else if( nType == CTRL_MENU_POPUP)
+    {
+        if (((nPart == PART_MENU_ITEM_CHECK_MARK) ||
+              (nPart == PART_MENU_ITEM_RADIO_MARK) ))
         {
-        case CTRL_MENU_POPUP:
             indicator_size = 0;
 
             gtk_style_context_get_style( mpMenuItemStyle,
@@ -1046,12 +1039,8 @@ sal_Bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart
             aEditRect = Rectangle( Point( 0, point / 2),
                                    Size( indicator_size, indicator_size ) );
         }
-    }
-    else if (nPart == PART_MENU_SEPARATOR)
-    {
-        switch (nType)
+        else if (nPart == PART_MENU_SEPARATOR)
         {
-        case CTRL_MENU_POPUP:
             gint separator_height, separator_width, wide_separators;
 
             gtk_style_context_get_style (mpMenuItemStyle,
@@ -1063,12 +1052,8 @@ sal_Bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart
             aEditRect = Rectangle( aEditRect.TopLeft(),
                                    Size( aEditRect.GetWidth(), wide_separators ? separator_height : 1 ) );
         }
-    }
-    else if (nPart == PART_MENU_SUBMENU_ARROW)
-    {
-        switch (nType)
+        else if (nPart == PART_MENU_SUBMENU_ARROW)
         {
-        case CTRL_MENU_POPUP:
             gfloat arrow_scaling, arrow_size;
 
             arrow_scaling = 0;
commit 68456747d780fbedc7c6b785132f1ba1e25d9f76
Author: Cosimo Cecchi <cosimoc at gnome.org>
Date:   Thu May 10 20:50:36 2012 -0400

    gtk3: fix tooltip colors
    
    Change-Id: Iacd8578ee71c5e0403c3398cb1f8d427be27d603

diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 73e9e5d..e5bd3d0 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -1153,18 +1153,6 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
     aStyleSet.SetButtonRolloverTextColor( aTextColor );
     aStyleSet.SetFieldRolloverTextColor( aTextColor );
 
-    // FIXME: each gtk3 theme needs to define a set of well-known
-    // color names for LibreOffice eg.
-    // @define-color tooltip_bg_color #343434;
-    GdkRGBA tooltip_bg_color;
-    if( gtk_style_context_lookup_color( pStyle, "tooltip_bg_color", &tooltip_bg_color ) )
-    {
-        aStyleSet.SetHelpTextColor( getColor( tooltip_bg_color ) );
-        fprintf (stderr, "Set tooltip bg color %g %g %g %g\n",
-                 tooltip_bg_color.red, tooltip_bg_color.green,
-                 tooltip_bg_color.blue, tooltip_bg_color.alpha );
-    }
-
     // background colors
     GdkRGBA background_color;
     gtk_style_context_get_background_color(pStyle, GTK_STATE_FLAG_NORMAL, &background_color);
@@ -1176,6 +1164,25 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
     aStyleSet.SetWorkspaceColor( aBackColor );
     aStyleSet.SetCheckedColorSpecialCase( );
 
+    // highlighting colors
+    gtk_style_context_get_background_color(pStyle, GTK_STATE_FLAG_SELECTED, &text_color);
+    ::Color aHighlightColor = getColor( text_color );
+    gtk_style_context_get_color(pStyle, GTK_STATE_FLAG_SELECTED, &text_color);
+    ::Color aHighlightTextColor = getColor( text_color );
+    aStyleSet.SetHighlightColor( aHighlightColor );
+    aStyleSet.SetHighlightTextColor( aHighlightTextColor );
+
+    // tooltip colors
+    GdkRGBA tooltip_bg_color, tooltip_fg_color;
+    gtk_style_context_save (pStyle);
+    gtk_style_context_add_class (pStyle, GTK_STYLE_CLASS_TOOLTIP);
+    gtk_style_context_get_color (pStyle, GTK_STATE_FLAG_NORMAL, &tooltip_fg_color);
+    gtk_style_context_get_background_color (pStyle, GTK_STATE_FLAG_NORMAL, &tooltip_bg_color);
+    gtk_style_context_restore (pStyle);
+
+    aStyleSet.SetHelpColor( getColor( tooltip_bg_color ));
+    aStyleSet.SetHelpTextColor( getColor( tooltip_fg_color ));
+
 { // FIXME: turn me into a helper function ...
     // construct style context for text view
     GtkStyleContext *pCStyle = gtk_style_context_new();
@@ -1195,14 +1202,6 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
     aStyleSet.SetWindowColor( aBackFieldColor );
 }
 
-    // highlighting colors
-    gtk_style_context_get_background_color(pStyle, GTK_STATE_FLAG_SELECTED, &text_color);
-    ::Color aHighlightColor = getColor( text_color );
-    gtk_style_context_get_color(pStyle, GTK_STATE_FLAG_SELECTED, &text_color);
-    ::Color aHighlightTextColor = getColor( text_color );
-    aStyleSet.SetHighlightColor( aHighlightColor );
-    aStyleSet.SetHighlightTextColor( aHighlightTextColor );
-
     // menu disabled entries handling
     aStyleSet.SetSkipDisabledInMenus( sal_True );
     aStyleSet.SetAcceleratorsInContextMenus( sal_False );
commit 5b7723574821791dce184b82041cefac18f8dc70
Author: Cosimo Cecchi <cosimoc at gnome.org>
Date:   Thu May 10 20:39:28 2012 -0400

    gtk3: fix rendering for scrollbars
    
    Change-Id: Ibcdc3b73b845954817f08a3f50900d96a25a8e3d

diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 726821d..73e9e5d 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -284,9 +284,6 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context,
     gint            stepper_spacing = 0;
     gint            trough_border = 0;
     gint            min_slider_length = 0;
-    gint            vShim = 0;
-    gint            hShim = 0;
-    gint            x,y,w,h;
 
     // make controlvalue rectangles relative to area
     thumbRect.Move( -rControlRectangle.Left(), -rControlRectangle.Top() );
@@ -322,17 +319,15 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context,
                                  "has-secondary-backward-stepper", &has_backward2, (char *)NULL );
     gint magic = trough_border ? 1 : 0;
     gint nFirst = 0;
+    gint slider_side = slider_width + (trough_border * 2);
 
     if ( has_backward )  nFirst  += 1;
     if ( has_forward2 )  nFirst  += 1;
 
     if ( nPart == PART_DRAW_BACKGROUND_HORZ )
     {
-        unsigned int sliderHeight = slider_width + (trough_border * 2);
-        vShim = (scrollbarRect.GetHeight() - sliderHeight) / 2;
-
-        scrollbarRect.Move( 0, vShim );
-        scrollbarRect.SetSize( Size( scrollbarRect.GetWidth(), sliderHeight ) );
+        scrollbarRect.Move( 0, (scrollbarRect.GetHeight() - slider_side) / 2 );
+        scrollbarRect.SetSize( Size( scrollbarRect.GetWidth(), slider_side ) );
 
         scrollbarOrientation = GTK_ORIENTATION_HORIZONTAL;
         arrow1Angle = G_PI * 3 / 2;
@@ -371,11 +366,8 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context,
     }
     else
     {
-        unsigned int sliderWidth = slider_width + (trough_border * 2);
-        hShim = (scrollbarRect.GetWidth() - sliderWidth) / 2;
-
-        scrollbarRect.Move( hShim, 0 );
-        scrollbarRect.SetSize( Size( sliderWidth, scrollbarRect.GetHeight() ) );
+        scrollbarRect.Move( (scrollbarRect.GetWidth() - slider_side) / 2, 0 );
+        scrollbarRect.SetSize( Size( slider_side, scrollbarRect.GetHeight() ) );
 
         scrollbarOrientation = GTK_ORIENTATION_VERTICAL;
         arrow1Angle = 0;
@@ -411,18 +403,13 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context,
     }
 
     sal_Bool has_slider = ( thumbRect.GetWidth() > 0 && thumbRect.GetHeight() > 0 );
-    x = y = 0;
-    w = scrollbarRect.GetWidth();
-    h = scrollbarRect.GetHeight();
 
     // ----------------- TROUGH
-    gtk_render_background(context, cr, x, y, w, h);
-
     gtk_style_context_save(context);
     gtk_style_context_add_class(context, GTK_STYLE_CLASS_TROUGH);
-    gtk_render_background(context, cr, x, y,
+    gtk_render_background(context, cr, 0, 0,
                           scrollbarRect.GetWidth(), scrollbarRect.GetHeight() );
-    gtk_render_frame(context, cr, x, y,
+    gtk_render_frame(context, cr, 0, 0,
                      scrollbarRect.GetWidth(), scrollbarRect.GetHeight() );
 
     gtk_style_context_restore(context);
@@ -439,7 +426,7 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context,
         gtk_style_context_add_class(context, GTK_STYLE_CLASS_SLIDER);
 
         gtk_render_slider(context, cr,
-                          x+hShim+thumbRect.Left(), y+vShim+thumbRect.Top(),
+                          thumbRect.Left(), thumbRect.Top(),
                           thumbRect.GetWidth(), thumbRect.GetHeight(), scrollbarOrientation);
 
         gtk_style_context_restore(context);
@@ -454,17 +441,17 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context,
         gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON);
 
         gtk_render_background(context, cr,
-                              x+hShim+button11BoundRect.Left(), y+vShim+button11BoundRect.Top(),
+                              button11BoundRect.Left(), button11BoundRect.Top(),
                               button11BoundRect.GetWidth(), button11BoundRect.GetHeight() );
         gtk_render_frame(context, cr,
-                         x+hShim+button11BoundRect.Left(), y+vShim+button11BoundRect.Top(),
+                         button11BoundRect.Left(), button11BoundRect.Top(),
                          button11BoundRect.GetWidth(), button11BoundRect.GetHeight() );
 
         // ----------------- ARROW 1
         NWCalcArrowRect( button11BoundRect, arrowRect );
         gtk_render_arrow(context, cr,
                          arrow1Angle,
-                         x+hShim+arrowRect.Left(), y+vShim+arrowRect.Top(),
+                         arrowRect.Left(), arrowRect.Top(),
                          MIN(arrowRect.GetWidth(), arrowRect.GetHeight()) );
 
         gtk_style_context_restore(context);
@@ -478,17 +465,17 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context,
         gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON);
 
         gtk_render_background(context, cr,
-                              x+hShim+button12BoundRect.Left(), y+vShim+button12BoundRect.Top(),
+                              button12BoundRect.Left(), button12BoundRect.Top(),
                               button12BoundRect.GetWidth(), button12BoundRect.GetHeight() );
         gtk_render_frame(context, cr,
-                         x+hShim+button12BoundRect.Left(), y+vShim+button12BoundRect.Top(),
+                         button12BoundRect.Left(), button12BoundRect.Top(),
                          button12BoundRect.GetWidth(), button12BoundRect.GetHeight() );
 
         // ----------------- ARROW 1
         NWCalcArrowRect( button12BoundRect, arrowRect );
         gtk_render_arrow(context, cr,
                          arrow2Angle,
-                         x+hShim+arrowRect.Left(), y+vShim+arrowRect.Top(),
+                         arrowRect.Left(), arrowRect.Top(),
                          MIN(arrowRect.GetWidth(), arrowRect.GetHeight()) );
 
         gtk_style_context_restore(context);
@@ -503,17 +490,17 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context,
         gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON);
 
         gtk_render_background(context, cr,
-                              x+hShim+button21BoundRect.Left(), y+vShim+button21BoundRect.Top(),
+                              button21BoundRect.Left(), button21BoundRect.Top(),
                               button21BoundRect.GetWidth(), button21BoundRect.GetHeight() );
         gtk_render_frame(context, cr,
-                         x+hShim+button21BoundRect.Left(), y+vShim+button21BoundRect.Top(),
+                         button21BoundRect.Left(), button21BoundRect.Top(),
                          button21BoundRect.GetWidth(), button21BoundRect.GetHeight() );
 
         // ----------------- ARROW 2
         NWCalcArrowRect( button21BoundRect, arrowRect );
         gtk_render_arrow(context, cr,
                          arrow1Angle,
-                         x+hShim+arrowRect.Left(), y+vShim+arrowRect.Top(),
+                         arrowRect.Left(), arrowRect.Top(),
                          MIN(arrowRect.GetWidth(), arrowRect.GetHeight()) );
 
         gtk_style_context_restore(context);
@@ -527,17 +514,17 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context,
         gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON);
 
         gtk_render_background(context, cr,
-                       x+hShim+button22BoundRect.Left(), y+vShim+button22BoundRect.Top(),
+                       button22BoundRect.Left(), button22BoundRect.Top(),
                        button22BoundRect.GetWidth(), button22BoundRect.GetHeight() );
         gtk_render_frame(context, cr,
-                       x+hShim+button22BoundRect.Left(), y+vShim+button22BoundRect.Top(),
+                       button22BoundRect.Left(), button22BoundRect.Top(),
                        button22BoundRect.GetWidth(), button22BoundRect.GetHeight() );
 
         // ----------------- ARROW 2
         NWCalcArrowRect( button22BoundRect, arrowRect );
         gtk_render_arrow(context, cr,
                          arrow2Angle,
-                         x+hShim+arrowRect.Left(), y+vShim+arrowRect.Top(),
+                         arrowRect.Left(), arrowRect.Top(),
                          MIN(arrowRect.GetWidth(), arrowRect.GetHeight()) );
 
         gtk_style_context_restore(context);
commit 903565a922f5610adac33f48947a6a17e7eaac3e
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Jul 27 13:29:44 2012 +0100

    drop hopefully unnecessary catalan word breaking rules
    
    various regression tests for the issues that prompted its inclusion all now
    pass in its absence
    
    Change-Id: Ia375322335b4272aa6c3d626b2d98bc64465bf1c

diff --git a/i18npool/CustomTarget_breakiterator.mk b/i18npool/CustomTarget_breakiterator.mk
index 621e8f1..f7df926 100644
--- a/i18npool/CustomTarget_breakiterator.mk
+++ b/i18npool/CustomTarget_breakiterator.mk
@@ -70,7 +70,6 @@ i18npool_BRKTXTS := \
     char.brk \
     count_word_fi.brk \
     count_word.brk \
-    dict_word_ca.brk \
     dict_word_fi.brk \
     dict_word_he.brk \
     dict_word_hu.brk \
diff --git a/i18npool/source/breakiterator/data/dict_word_ca.txt b/i18npool/source/breakiterator/data/dict_word_ca.txt
deleted file mode 100644
index b1666f4..0000000
--- a/i18npool/source/breakiterator/data/dict_word_ca.txt
+++ /dev/null
@@ -1,148 +0,0 @@
-#
-#   Copyright (C) 2002-2003, International Business Machines Corporation and others.
-#       All Rights Reserved.
-#
-#   file:  dict_word.txt   
-#
-#   ICU Word Break Rules
-#      See Unicode Standard Annex #29.
-#      These rules are based on Version 4.0.0, dated 2003-04-17
-#
-
-
-
-####################################################################################
-#
-#  Character class definitions from TR 29
-#
-####################################################################################
-$Katakana  = [[:Script = KATAKANA:] [:name = KATAKANA-HIRAGANA PROLONGED SOUND MARK:] 
-                                   [:name = HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK:]
-                                   [:name = HALFWIDTH KATAKANA VOICED SOUND MARK:]
-                                   [:name = HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK:]];
-
-$Ideographic = [:Ideographic:];
-$Hangul = [:Script = HANGUL:];
-
-$ALetter   = [[:Alphabetic:] [:name= COMMERCIAL AT:] [:name= HEBREW PUNCTUATION GERESH:]
-                           - $Ideographic
-                           - $Katakana
-                           - $Hangul
-                           - [:Script = Thai:]
-                           - [:Script = Lao:]
-                           - [:Script = Hiragana:]];
-                           
-$MidLetter = [[:name = APOSTROPHE:] [:name = GRAVE ACCENT:] \u0084 [:name = SOFT HYPHEN:] [:name = MIDDLE DOT:] [:name = GREEK TONOS:] [:name= FULL STOP:] 
-              [:name = HEBREW PUNCTUATION GERSHAYIM:] [:name = DOUBLE VERTICAL LINE:] [:name = LEFT SINGLE QUOTATION MARK:]
-              [:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:] [:name = PRIME:] 
-              [:name = HYPHEN-MINUS:] ];
-
-$SufixLetter = [:name= FULL STOP:];
-              
-
-$MidNum    = [[:LineBreak = Infix_Numeric:] [:name= COMMERCIAL AT:] \u0084 [:name = GREEK TONOS:] [:name = ARABIC DECIMAL SEPARATOR:]
-             [:name = LEFT SINGLE QUOTATION MARK:] [:name = RIGHT SINGLE QUOTATION MARK:] [:name = SINGLE HIGH-REVERSED-9 QUOTATION MARK:]
-             [:name = PRIME:]];
-$Numeric   = [:LineBreak = Numeric:];
-
-
-$TheZWSP = \u200b;
-
-#
-#  Character Class Definitions.
-#    The names are those from TR29.
-#
-$CR         = \u000d;
-$LF         = \u000a;
-$Control    = [[[:Zl:] [:Zp:] [:Cc:] [:Cf:]] - $TheZWSP];
-$Extend     = [[:Grapheme_Extend = TRUE:]]; 
-
-
-
-
-####################################################################################
-#
-#  Word Break Rules.    Definitions and Rules specific to word break begin Here. 
-#
-####################################################################################
-
-$Format    = [[:Cf:] - $TheZWSP];
-
-
-
-# Rule 3:  Treat a grapheme cluster as if it were a single character.
-#          Hangul Syllables are easier to deal with here than they are in Grapheme Clusters
-#          because we don't need to find the boundaries between adjacent syllables -
-#          they won't be word boundaries.
-#
-
-
-#
-#  "Extended"  definitions.  Grapheme Cluster + Format Chars, treated like the base char.
-#
-$ALetterEx    = $ALetter   $Extend*; 
-$NumericEx    = $Numeric   $Extend*;
-$MidNumEx     = $MidNum    $Extend*;
-$MidLetterEx  = $MidLetter $Extend*;
-$SufixLetterEx= $SufixLetter $Extend*;
-$KatakanaEx   = $Katakana  $Extend*;
-$IdeographicEx= $Ideographic  $Extend*;
-$HangulEx = $Hangul  $Extend*;
-$FormatEx     = $Format    $Extend*;
-
-
-#
-#  Numbers.  Rules 8, 11, 12 form the TR.
-#
-$NumberSequence = $NumericEx ($FormatEx* $MidNumEx? $FormatEx* $NumericEx)*;
-$NumberSequence {100};
-
-#
-#  Words.  Alpha-numerics.  Rule 5, 6, 7, 9, 10
-#     - must include at least one letter. 
-#     - may include both letters and numbers.
-#     - may include  MideLetter, MidNumber punctuation.
-#
-$LetterSequence = $ALetterEx ($FormatEx* $MidLetterEx? $FormatEx* $ALetterEx)*;     # rules #6, #7
-($NumberSequence $FormatEx*)? $LetterSequence ($FormatEx* ($NumberSequence | $LetterSequence))* $SufixLetterEx? {200};
-
-[[:P:][:S:]]*;
-
-#
-#  Do not break between Katakana.   Rule #13.
-#
-$KatakanaEx ($FormatEx* $KatakanaEx)* {300};
-[:Hiragana:] $Extend* {300};
-
-#
-#  Ideographic Characters.  Stand by themselves as words.
-#                           Separated from the "Everything Else" rule, below, only so that they
-#                           can be tagged with a return value.   TODO:  is this what we want?
-#
-$IdeographicEx ($FormatEx* $IdeographicEx)* {400};
-$HangulEx ($FormatEx* $HangulEx)* {400};
-
-#
-#  Everything Else, with no tag.
-#                   Non-Control chars combine with $Extend (combining) chars.
-#                   Controls are do not.
-#
-[^$Control [:Ideographic:]] $Extend*;
-$CR $LF;
-
-#
-#  Reverse Rules.   Back up over any of the chars that can group together.
-#                   (Reverse rules do not need to be exact; they can back up  too far,
-#                   but must back up at least enough, and must stop on a boundary.)
-#
-
-# NonStarters are the set of all characters that can appear at the 2nd - nth position of
-#    a word.   (They may also be the first.)   The reverse rule skips over these, until it
-#    reaches something that can only be the start (and probably only) char in a "word".
-#    A space or punctuation meets the test.
-#
-$NonStarters = [$Numeric $ALetter $Katakana $Ideographic $Hangul [:P:] [:S:] $MidLetter $MidNum $SufixLetter $Extend $Format];
-
-#!.*;
-! ($NonStarters* | \n \r) .;
-
commit 074afcf7adec4131c8ae3a6968f06a21f0552d51
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Jul 27 14:11:08 2012 +0100

    list dependencies explicitly
    
    and make the list (by its makefile proxy) a dependency of the output
    so that removing an entry will trigger a rebuild of the target and
    incremental builds are possible
    
    Change-Id: I18c8d5ea2140e61b2ef78e256871402be94b79e2

diff --git a/i18npool/CustomTarget_breakiterator.mk b/i18npool/CustomTarget_breakiterator.mk
index 3e0df9e..621e8f1 100644
--- a/i18npool/CustomTarget_breakiterator.mk
+++ b/i18npool/CustomTarget_breakiterator.mk
@@ -65,20 +65,35 @@ i18npool_GENCMNTARGET :=
 i18npool_GENCMN := $(SYSTEM_GENCMN)
 endif
 
-i18npool_BRKFILES := $(subst .txt,.brk,$(notdir \
-	$(wildcard $(SRCDIR)/i18npool/source/breakiterator/data/*.txt)))
+i18npool_BRKTXTS := \
+    char_in.brk \
+    char.brk \
+    count_word_fi.brk \
+    count_word.brk \
+    dict_word_ca.brk \
+    dict_word_fi.brk \
+    dict_word_he.brk \
+    dict_word_hu.brk \
+    dict_word_nodash.brk \
+    dict_word_prepostdash.brk \
+    dict_word.brk \
+    edit_word_he.brk \
+    edit_word_hu.brk \
+    edit_word.brk \
+    line.brk \
+    sent.brk
 
 # 'gencmn', 'genbrk' and 'genccode' are tools generated and delivered by icu project to process icu breakiterator rules.
 # The output of gencmn generates warnings under Windows. We want to minimize the patches to external tools,
 # so the output (OpenOffice_dat.c) is changed here to include a pragma to disable the warnings.
 # Output of gencmn is redirected to OpenOffice_tmp.c with the -t switch.
-$(i18npool_BIDIR)/OpenOffice_dat.c : \
-		$(patsubst %.brk,$(i18npool_BIDIR)/%_brk.c,$(i18npool_BRKFILES)) \
+$(i18npool_BIDIR)/OpenOffice_dat.c : $(SRCDIR)/i18npool/CustomTarget_breakiterator.mk \
+		$(patsubst %.brk,$(i18npool_BIDIR)/%_brk.c,$(i18npool_BRKTXTS)) \
 		$(i18npool_GENCMNTARGET)
 	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CMN,1)
 	$(call gb_Helper_abbreviate_dirs,\
 		RESPONSEFILE=$(shell $(gb_MKTEMP)) && \
-		$(foreach brk,$(i18npool_BRKFILES),echo '$(brk)' >> $${RESPONSEFILE} && ) \
+		$(foreach brk,$(i18npool_BRKTXTS),echo '$(brk)' >> $${RESPONSEFILE} && ) \
 		$(i18npool_GENCMN) -n OpenOffice -t tmp -S -d $(i18npool_BIDIR)/ 0 $${RESPONSEFILE} && \
 		rm -f $${RESPONSEFILE} && \
 		echo '#ifdef _MSC_VER' > $@ && \
diff --git a/i18npool/CustomTarget_collator.mk b/i18npool/CustomTarget_collator.mk
index 95cf190..2613f67 100644
--- a/i18npool/CustomTarget_collator.mk
+++ b/i18npool/CustomTarget_collator.mk
@@ -29,9 +29,28 @@
 $(eval $(call gb_CustomTarget_CustomTarget,i18npool/collator))
 
 i18npool_CODIR := $(call gb_CustomTarget_get_workdir,i18npool/collator)
-i18npool_COTXTS := $(notdir $(wildcard $(SRCDIR)/i18npool/source/collator/data/*.txt))
+i18npool_COTXTS := \
+    ca_charset.txt \
+    dz_charset.txt \
+    hu_charset.txt \
+    ja_charset.txt \
+    ja_phonetic_alphanumeric_first.txt \
+    ja_phonetic_alphanumeric_last.txt \
+    ko_charset.txt \
+    ku_alphanumeric.txt \
+    ln_charset.txt \
+    my_dictionary.txt \
+    ne_charset.txt \
+    zh_charset.txt \
+    zh_pinyin.txt \
+    zh_radical.txt \
+    zh_stroke.txt \
+    zh_TW_charset.txt \
+    zh_TW_radical.txt \
+    zh_TW_stroke.txt \
+    zh_zhuyin.txt
 
-$(call gb_CustomTarget_get_target,i18npool/collator) : \
+$(call gb_CustomTarget_get_target,i18npool/collator) : $(SRCDIR)/i18npool/CustomTarget_collator.mk \
 	$(i18npool_CODIR)/lrl_include.hxx $(foreach txt,$(i18npool_COTXTS), \
 		$(patsubst %.txt,$(i18npool_CODIR)/collator_%.cxx,$(txt)))
 
diff --git a/i18npool/CustomTarget_indexentry.mk b/i18npool/CustomTarget_indexentry.mk
index 8a6a63c..03a8ff5 100644
--- a/i18npool/CustomTarget_indexentry.mk
+++ b/i18npool/CustomTarget_indexentry.mk
@@ -28,9 +28,20 @@
 
 $(eval $(call gb_CustomTarget_CustomTarget,i18npool/indexentry))
 
-$(call gb_CustomTarget_get_target,i18npool/indexentry) : \
-	$(patsubst %.txt,$(call gb_CustomTarget_get_workdir,i18npool/indexentry)/%.cxx,$(notdir \
-		$(wildcard $(SRCDIR)/i18npool/source/indexentry/data/*.txt)))
+i18npool_IDXTXTS := \
+    indexdata_ko_dict.txt \
+    indexdata_zh_pinyin.txt \
+    indexdata_zh_radical.txt \
+    indexdata_zh_stroke.txt \
+    indexdata_zh_TW_radical.txt \
+    indexdata_zh_TW_stroke.txt \
+    indexdata_zh_zhuyin.txt \
+    ko_phonetic.txt \
+    zh_pinyin.txt \
+    zh_zhuyin.txt
+
+$(call gb_CustomTarget_get_target,i18npool/indexentry) : $(SRCDIR)/i18npool/CustomTarget_indexentry.mk \
+	$(patsubst %.txt,$(call gb_CustomTarget_get_workdir,i18npool/indexentry)/%.cxx,$(i18npool_IDXTXTS))
 
 $(call gb_CustomTarget_get_workdir,i18npool/indexentry)/%.cxx : \
 		$(SRCDIR)/i18npool/source/indexentry/data/%.txt \
commit 6c1f7aa4b8c8448eb1e3bc1a91fd07c73773eb43
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Jul 27 15:01:19 2012 +0200

    fdo#35973: XConfigurationController:
    
    Remove that horrible IsDisposing method, much easier to just put the
    call to SaveResourceState into the disposing() handler that is called
    anyway (well, should be called now, previously the ResourceManager
    wasn't registered...))
    
    Change-Id: Ia81f6bf47602b195c0326f2151393542f5f8b9ec

diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationController.idl b/offapi/com/sun/star/drawing/framework/XConfigurationController.idl
index 1e7cdb2..4c0fd46 100644
--- a/offapi/com/sun/star/drawing/framework/XConfigurationController.idl
+++ b/offapi/com/sun/star/drawing/framework/XConfigurationController.idl
@@ -154,12 +154,6 @@ interface XConfigurationController
     interface XConfigurationControllerBroadcaster;
     interface XResourceFactoryManager;
 
-    /** Check if the ConfigurationController is disposing
-        @return
-            When the ConfigurationController is disposing then true else false
-    */
-    boolean IsDisposing ();
-
     /** Request the activation of a resource.
         <p>The request is processed asynchronously.  Notifications about
         configuration changes are sent after this call returns.</p>
diff --git a/sd/source/ui/framework/configuration/ConfigurationController.cxx b/sd/source/ui/framework/configuration/ConfigurationController.cxx
index 6eb4299..0eafd67 100644
--- a/sd/source/ui/framework/configuration/ConfigurationController.cxx
+++ b/sd/source/ui/framework/configuration/ConfigurationController.cxx
@@ -153,32 +153,22 @@ ConfigurationController::Lock::~Lock (void)
 //===== ConfigurationController ===============================================
 
 ConfigurationController::ConfigurationController (void) throw()
-    : ConfigurationControllerInterfaceBase(MutexOwner::maMutex),
-      mpImplementation(),
-      mbIsDisposed(false),
-      mbIsDisposing(false)
+    : ConfigurationControllerInterfaceBase(MutexOwner::maMutex)
+    , mpImplementation()
+    , mbIsDisposed(false)
 {
 }
 
-
-
-
 ConfigurationController::~ConfigurationController (void) throw()
 {
 }
 
-sal_Bool ConfigurationController::IsDisposing (void) throw (com::sun::star::uno::RuntimeException)
-{
-    return mbIsDisposing;
-}
-
 
 void SAL_CALL ConfigurationController::disposing (void)
 {
     if (mpImplementation.get() == NULL)
         return;
 
-    mbIsDisposing = true;
     SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": ConfigurationController::disposing");
     SAL_INFO("sd.fwk", OSL_THIS_FUNC << ":     requesting empty configuration");
     // To destroy all resources an empty configuration is requested and then,
@@ -191,7 +181,6 @@ void SAL_CALL ConfigurationController::disposing (void)
     // Now that all resources have been deactivated, mark the controller as
     // disposed.
     mbIsDisposed = true;
-    mbIsDisposing = false;
 
     // Release the listeners.
     lang::EventObject aEvent;
diff --git a/sd/source/ui/framework/module/ResourceManager.cxx b/sd/source/ui/framework/module/ResourceManager.cxx
index 548d596..0cf323c 100644
--- a/sd/source/ui/framework/module/ResourceManager.cxx
+++ b/sd/source/ui/framework/module/ResourceManager.cxx
@@ -66,8 +66,7 @@ ResourceManager::ResourceManager (
       mxMainViewAnchorId(FrameworkHelper::Instance(rxController)->CreateResourceId(
           FrameworkHelper::msCenterPaneURL)),
       msCurrentMainViewURL(),
-      mbIsEnabled(true),
-      mbConfigurationControllerIsDisposing(false)
+      mbIsEnabled(true)
 {
     Reference<XControllerManager> xControllerManager (rxController, UNO_QUERY);
     if (xControllerManager.is())
@@ -76,6 +75,9 @@ ResourceManager::ResourceManager (
 
         if (mxConfigurationController.is())
         {
+            uno::Reference<lang::XComponent> const xComppnent(
+                    mxConfigurationController, UNO_QUERY_THROW);
+            xComppnent->addEventListener(this);
             mxConfigurationController->addConfigurationChangeListener(
                 this,
                 FrameworkHelper::msResourceActivationRequestEvent,
@@ -152,8 +154,6 @@ void SAL_CALL ResourceManager::notifyConfigurationChange (
 
     sal_Int32 nEventType = 0;
     rEvent.UserData >>= nEventType;
-    if (!mxConfigurationController->IsDisposing())
-        mbConfigurationControllerIsDisposing = false;
     switch (nEventType)
     {
         case ResourceActivationRequestEvent:
@@ -186,11 +186,6 @@ void SAL_CALL ResourceManager::notifyConfigurationChange (
         case ResourceDeactivationRequestEvent:
             if (rEvent.ResourceId->compareTo(mxMainViewAnchorId) == 0)
             {
-                if (mxConfigurationController->IsDisposing() && !mbConfigurationControllerIsDisposing)
-                {
-                    mbConfigurationControllerIsDisposing = true;
-                    SaveResourceState();
-                }
                 HandleMainViewSwitch(
                     OUString(),
                     rEvent.Configuration,
@@ -198,11 +193,6 @@ void SAL_CALL ResourceManager::notifyConfigurationChange (
             }
             else if (rEvent.ResourceId->compareTo(mxResourceId) == 0)
             {
-                if (mxConfigurationController->IsDisposing() && !mbConfigurationControllerIsDisposing)
-                {
-                    mbConfigurationControllerIsDisposing = true;
-                    SaveResourceState();
-                }
                 // The resource managed by this ResourceManager has been
                 // explicitly been requested to be hidden (maybe by us).
                 // Remember this setting.
@@ -296,6 +286,7 @@ void SAL_CALL ResourceManager::disposing (
     if (mxConfigurationController.is()
         && rEvent.Source == mxConfigurationController)
     {
+        SaveResourceState();
         // Without the configuration controller this class can do nothing.
         mxConfigurationController = NULL;
         dispose();
diff --git a/sd/source/ui/framework/module/ResourceManager.hxx b/sd/source/ui/framework/module/ResourceManager.hxx
index caffc98..cd69661 100644
--- a/sd/source/ui/framework/module/ResourceManager.hxx
+++ b/sd/source/ui/framework/module/ResourceManager.hxx
@@ -109,7 +109,6 @@ private:
 
     ::rtl::OUString msCurrentMainViewURL;
     bool mbIsEnabled;
-    bool mbConfigurationControllerIsDisposing;
 
     void HandleMainViewSwitch (
         const ::rtl::OUString& rsViewURL,
diff --git a/sd/source/ui/inc/framework/ConfigurationController.hxx b/sd/source/ui/inc/framework/ConfigurationController.hxx
index 05ae745..93c73fc 100644
--- a/sd/source/ui/inc/framework/ConfigurationController.hxx
+++ b/sd/source/ui/inc/framework/ConfigurationController.hxx
@@ -71,8 +71,6 @@ public:
     ConfigurationController (void) throw();
     virtual ~ConfigurationController (void) throw();
 
-    sal_Bool IsDisposing (void) throw (com::sun::star::uno::RuntimeException);
-
     virtual void SAL_CALL disposing (void);
 
     void ProcessEvent (void);
@@ -206,7 +204,6 @@ private:
     class Implementation;
     ::boost::scoped_ptr<Implementation> mpImplementation;
     bool mbIsDisposed;
-    bool mbIsDisposing;
 
     /** When the called object has already been disposed this method throws
         an exception and does not return.
commit fe9767b9422d1eacc6c9630ab27120fc9ec51f96
Author: David Tardon <dtardon at redhat.com>
Date:   Fri Jul 27 14:51:24 2012 +0200

    update mdds check
    
    Change-Id: I652d84f60a92369466f153a502022ac519312b22

diff --git a/configure.in b/configure.in
index 8cc14bc..6782015 100644
--- a/configure.in
+++ b/configure.in
@@ -7488,29 +7488,9 @@ if test "$with_system_mdds" = "yes"; then
     CPPFLAGS="$CPPFLAGS $MDDS_CPPFLAGS"
     AC_CHECK_HEADER(mdds/flat_segment_tree.hpp, [],
         [AC_MSG_ERROR(mdds/flat_segment_tree.hpp not found. install mdds)], [])
-    AC_CHECK_HEADER(mdds/mixed_type_matrix.hpp, [],
-        [AC_MSG_ERROR(mdds/mixed_type_matrix.hpp not found. install mdds >= 0.4.0)], [])
+    AC_CHECK_HEADER(mdds/multi_type_matrix.hpp, [],
+        [AC_MSG_ERROR(mdds/multi_type_matrix.hpp not found. install mdds >= 0.6.0)], [])
     CPPFLAGS="$save_CPPFLAGS"
-    save_CXXFLAGS="$CXXFLAGS"
-    CXXFLAGS="$CXXFLAGS $MDDS_CPPFLAGS"
-    AC_MSG_CHECKING([for correct signature of ::mdds::flat_segment_tree])
-    AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <mdds/flat_segment_tree.hpp>
-
-    int main(int argc, char **argv) {
-        ::mdds::flat_segment_tree<long, short> db(0, 100, 0);
-        short val;
-        if (!db.search(5, val).second)
-            return 1;
-        return 0;
-    }
-]])],[ac_cv_cxx_mdds_flat_segment_tree_correct=yes],[ac_cv_cxx_mdds_flat_segment_tree_correct=no],[])
-
-    if test "$ac_cv_cxx_mdds_flat_segment_tree_correct" = "yes"; then
-        AC_MSG_RESULT([yes])
-    else
-        AC_MSG_ERROR([no, install mdds >= 0.5.0])
-    fi
-    CXXFLAGS=$save_CXXFLAGS
     AC_LANG_POP([C++])
 else
     AC_MSG_RESULT([internal])
commit 526d9ca5e88acfa3f4020b5c360f0bc6427187fb
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Jul 27 14:03:09 2012 +0200

    unify return type in this method
    
    Change-Id: I8db70cff48ce900db0710b30f94090ebd7d77c0a

diff --git a/sc/inc/scerrors.hxx b/sc/inc/scerrors.hxx
index 83636dc..3115cc2 100644
--- a/sc/inc/scerrors.hxx
+++ b/sc/inc/scerrors.hxx
@@ -22,6 +22,8 @@
 
 #include <tools/errcode.hxx>
 
+#define SCERR_NONE 0
+
 // ERRCODE_CLASS_READ - file related, displays "Read-Error" in MsgBox
 #define SCERR_IMPORT_CONNECT        (   1 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
 #define SCERR_IMPORT_OPEN           (   2 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
diff --git a/sc/source/filter/xml/xmlwrap.cxx b/sc/source/filter/xml/xmlwrap.cxx
index 22c4b64..acbc1fa 100644
--- a/sc/source/filter/xml/xmlwrap.cxx
+++ b/sc/source/filter/xml/xmlwrap.cxx
@@ -135,7 +135,7 @@ sal_uInt32 ScXMLImportWrapper::ImportFromComponent(uno::Reference<lang::XMultiSe
                 sStream = sOldDocName;
             }
             else
-                return false;
+                return SCERR_NONE;
 
             aParserInput.aInputStream = xDocStream->getInputStream();
             uno::Reference < beans::XPropertySet > xSet( xDocStream, uno::UNO_QUERY );
@@ -170,7 +170,7 @@ sal_uInt32 ScXMLImportWrapper::ImportFromComponent(uno::Reference<lang::XMultiSe
         xInfoSet->setPropertyValue( sPropName, uno::makeAny( sStream ) );
     }
 
-    sal_uInt32 nReturn(0);
+    sal_uInt32 nReturn = SCERR_NONE;
     rDoc.SetRangeOverflowType(0);   // is modified by the importer if limits are exceeded
 
     uno::Reference<xml::sax::XDocumentHandler> xDocHandler(
commit b177b3e20270a83bef69fa0ad714cd5dbfa439f8
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Jul 27 13:58:56 2012 +0200

    this explicit conversion is unnecessary, use the implicit one
    
    Change-Id: I798a1cd56baa86c7ee08b5f47ec5149d8a4815de

diff --git a/sc/source/filter/xml/xmlwrap.cxx b/sc/source/filter/xml/xmlwrap.cxx
index 4aeb8b1..22c4b64 100644
--- a/sc/source/filter/xml/xmlwrap.cxx
+++ b/sc/source/filter/xml/xmlwrap.cxx
@@ -331,7 +331,7 @@ sal_Bool ScXMLImportWrapper::Import(sal_Bool bStylesOnly, ErrCode& nError)
 
     xml::sax::InputSource aParserInput;
     if (pMedium)
-        aParserInput.sSystemId = OUString(pMedium->GetName());
+        aParserInput.sSystemId = pMedium->GetName();
 
     if ( !xStorage.is() && pMedium )
         xStorage = pMedium->GetStorage();
commit 645c44dcc812a688395b4fb10c8e605cc354dbb6
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Jul 27 00:45:56 2012 +0200

    don't need to get this one for each cell
    
    Change-Id: I9aab49c7604add1d574949909f0ab8b867341b27

diff --git a/sc/source/core/data/fillinfo.cxx b/sc/source/core/data/fillinfo.cxx
index f3a01e9..743aa26 100644
--- a/sc/source/core/data/fillinfo.cxx
+++ b/sc/source/core/data/fillinfo.cxx
@@ -362,6 +362,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX
         }
     }
 
+    ScConditionalFormatList* pCondFormList = GetCondFormList(nTab);
     for (nArrX=0; nArrX<=nX2+2; nArrX++)                    // links & rechts + 1
     {
         nX = (nArrX>0) ? nArrX-1 : MAXCOL+1;                    // negativ -> ungueltig
@@ -476,7 +477,6 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX
                         sal_uLong nConditional = ((const SfxUInt32Item&)pPattern->
                                                 GetItem(ATTR_CONDITIONAL)).GetValue();
 
-                        ScConditionalFormatList* pCondFormList = GetCondFormList(nTab);
                         const ScConditionalFormat* pCondForm = NULL;
                         if ( nConditional && pCondFormList )
                             pCondForm = pCondFormList->GetFormat( nConditional );

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list