[ooo-build-commit] .: patches/dev300 patches/vba

Jan Holesovsky kendy at kemper.freedesktop.org
Fri Apr 23 07:45:50 PDT 2010


 patches/dev300/apply                                                        |  373 
 patches/dev300/basegfx-boxclipper-m13.diff                                  | 3359 
 patches/dev300/bridges-testcppu-x86_64-fixes.diff                           |  172 
 patches/dev300/buildfix-extensions-npwrap-no-gtk.diff                       |   12 
 patches/dev300/calc-note-position-fix.diff                                  |   31 
 patches/dev300/calc-perf-filtering-with-notes-m14.diff                      |   62 
 patches/dev300/calc-perf-page-and-manual-breaks-m14.diff                    | 1595 
 patches/dev300/calc-perf-speedup-pagebreak-update-m14.diff                  | 1263 
 patches/dev300/calc-perf-table-hidden-flags-m14.diff                        | 3736 
 patches/dev300/connectivity-build-fix-mac.diff                              |    9 
 patches/dev300/connectivity-build-fix.diff                                  |   49 
 patches/dev300/cws-impressmedia01-backport-m13.diff                         | 2662 
 patches/dev300/cws-impressmedia01-backport-m14.diff                         | 2605 
 patches/dev300/debian-splash-m12.diff                                       |   11 
 patches/dev300/default-no-registration-menu-m13.diff                        |  197 
 patches/dev300/default-no-startup-wizard-m13.diff                           |   47 
 patches/dev300/desktop-config-migration-m13.diff                            |  478 
 patches/dev300/docx-export-enable-m13.diff                                  |  433 
 patches/dev300/docx-export-enable-m14.diff                                  |  433 
 patches/dev300/extensions_deliver-m13.diff                                  |   31 
 patches/dev300/find-moved-help.diff                                         |  160 
 patches/dev300/fit-list-to-size-m7.diff                                     | 1224 
 patches/dev300/fix-es-accelerators-m14.diff                                 |  241 
 patches/dev300/fix-gtk-a11y-gail-version-warning.diff                       |   13 
 patches/dev300/helpcontent-scalc-01-localize-m7.diff                        |  428 
 patches/dev300/helpcontent2-auxiliary-cfg-m13.diff                          |  336 
 patches/dev300/i107917.diff                                                 |   25 
 patches/dev300/i109407_BUSCAR.diff                                          |   20 
 patches/dev300/layout-post-cws-layoutdialogs2-mysteriously-missing-m13.diff |  229 
 patches/dev300/libxmlsec-findcerts.diff                                     |   11 
 patches/dev300/mysqlc-from-OOO320_m14.diff                                  |12132 --
 patches/dev300/mysqlc-missing-buildfixes-from-DEV300.diff                   |   30 
 patches/dev300/novell-palette-m13.diff                                      |   25 
 patches/dev300/novell-win32-installer-branding-m14.diff                     |  100 
 patches/dev300/novell-win32-odma-m12.diff                                   | 2501 
 patches/dev300/ooo83878.unopkg.enablelinking-m13.diff                       |  372 
 patches/dev300/oox-fix-list-style-apply-m14.diff                            |   14 
 patches/dev300/oox-fix-placeholder-layout-m14.diff                          |  105 
 patches/dev300/oox-import-drawing-font-spacing-m14.diff                     |   83 
 patches/dev300/oox-import-text-vert-anchor-and-anchorctr-m14.diff           |  130 
 patches/dev300/oox-pptx-import-fix-placeholder-text-style-m14.diff          |  168 
 patches/dev300/oox-pptx-import-fix-subtitle-placeholder-m14.diff            |   17 
 patches/dev300/oox-pptx-import-fix-text-body-properties-priority-m14.diff   |   60 
 patches/dev300/oox-pptx-import-fix-text-body-vert-2-m14.diff                |   26 
 patches/dev300/oox-pptx-import-fix-text-body-vert-m14.diff                  |   13 
 patches/dev300/oox-smartart-import-m13.diff                                 | 6081 -
 patches/dev300/pdfimport-no-license-m13.diff                                |   20 
 patches/dev300/pptx-filter-as-a-separate-lib-m12.diff                       |12701 --
 patches/dev300/pptx-gfx-layout-fix-m14.diff                                 |  351 
 patches/dev300/presentation-minimizer-no-license-m13.diff                   |   20 
 patches/dev300/presenterscreen-no-license-m13.diff                          |   55 
 patches/dev300/redirect-extensions-m12.diff                                 |  181 
 patches/dev300/reduced-disable-auto-spellcheck.diff                         |   11 
 patches/dev300/reportdesign-mention-package-l10n-m7.diff                    | 1160 
 patches/dev300/reportdesigner-no-license-m13.diff                           |   14 
 patches/dev300/scp2-user-config-ooo3-m13.diff                               |   22 
 patches/dev300/scp2_extensions-m13.diff                                     | 2187 
 patches/dev300/sd-sound-m13.diff                                            |  743 
 patches/dev300/sdext-minimizer-docked.diff                                  |   24 
 patches/dev300/sfx2-qstart-nocrash.diff                                     |  164 
 patches/dev300/slideshow-effect-rewind-sdext-m13.diff                       |   72 
 patches/dev300/solenv-installer-unopkg-call-m13.diff                        |   11 
 patches/dev300/speed-local-link-except-m13.diff                             |  227 
 patches/dev300/sw-uno-fix.diff                                              |   12 
 patches/dev300/unxsplash-rework-m13.diff                                    | 2317 
 patches/dev300/vcl-drawtransparent-fix.diff                                 |   14 
 patches/dev300/vcl-free-renderpicture.diff                                  |   79 
 patches/dev300/vcl-gtk-2.8-unsupported-link-colors.diff                     |   25 
 patches/dev300/vcl-xinerama-clone-fix.diff                                  |   47 
 patches/dev300/win32-cygwin-1.7-m13.diff                                    |   61 
 patches/dev300/writerfilter-docx-numbering-m13.diff                         | 4016 
 patches/dev300/xlsx-shared-import-and-export-m14.diff                       |  544 
 patches/dev300/xmlhelp-build-without-java.diff                              |   22 
 patches/vba/cws-npower12-m13.diff                                           |54516 ----------
 patches/vba/cws-vbasupportdev300-m13.diff                                   |48656 --------
 75 files changed, 33 insertions(+), 170341 deletions(-)

New commits:
commit 4642aed1eb34556299293152c9f9fd4fb043bcec
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Fri Apr 23 16:43:49 2010 +0200

    OLDEST_SUPPORTED=ooo320-m15 + the appropriate cleanup.
    
    * patches/dev300/apply: Kill everything older than m15.
    * patches/dev300/basegfx-boxclipper-m13.diff:
    * patches/dev300/bridges-testcppu-x86_64-fixes.diff:
    * patches/dev300/buildfix-extensions-npwrap-no-gtk.diff:
    * patches/dev300/calc-note-position-fix.diff:
    * patches/dev300/calc-perf-filtering-with-notes-m14.diff:
    * patches/dev300/calc-perf-page-and-manual-breaks-m14.diff:
    * patches/dev300/calc-perf-speedup-pagebreak-update-m14.diff:
    * patches/dev300/calc-perf-table-hidden-flags-m14.diff:
    * patches/dev300/connectivity-build-fix-mac.diff:
    * patches/dev300/connectivity-build-fix.diff:
    * patches/dev300/cws-impressmedia01-backport-m13.diff:
    * patches/dev300/cws-impressmedia01-backport-m14.diff:
    * patches/dev300/debian-splash-m12.diff:
    * patches/dev300/default-no-registration-menu-m13.diff:
    * patches/dev300/default-no-startup-wizard-m13.diff:
    * patches/dev300/desktop-config-migration-m13.diff:
    * patches/dev300/docx-export-enable-m13.diff:
    * patches/dev300/docx-export-enable-m14.diff:
    * patches/dev300/extensions_deliver-m13.diff:
    * patches/dev300/find-moved-help.diff:
    * patches/dev300/fit-list-to-size-m7.diff:
    * patches/dev300/fix-es-accelerators-m14.diff:
    * patches/dev300/fix-gtk-a11y-gail-version-warning.diff:
    * patches/dev300/helpcontent-scalc-01-localize-m7.diff:
    * patches/dev300/helpcontent2-auxiliary-cfg-m13.diff:
    * patches/dev300/i107917.diff:
    * patches/dev300/i109407_BUSCAR.diff:
    * patches/dev300/layout-post-cws-layoutdialogs2-mysteriously-missing-m13.diff:
    * patches/dev300/libxmlsec-findcerts.diff:
    * patches/dev300/mysqlc-from-OOO320_m14.diff:
    * patches/dev300/mysqlc-missing-buildfixes-from-DEV300.diff:
    * patches/dev300/novell-palette-m13.diff:
    * patches/dev300/novell-win32-installer-branding-m14.diff:
    * patches/dev300/novell-win32-odma-m12.diff:
    * patches/dev300/ooo83878.unopkg.enablelinking-m13.diff:
    * patches/dev300/oox-fix-list-style-apply-m14.diff:
    * patches/dev300/oox-fix-placeholder-layout-m14.diff:
    * patches/dev300/oox-import-drawing-font-spacing-m14.diff:
    * patches/dev300/oox-import-text-vert-anchor-and-anchorctr-m14.diff:
    * patches/dev300/oox-pptx-import-fix-placeholder-text-style-m14.diff:
    * patches/dev300/oox-pptx-import-fix-subtitle-placeholder-m14.diff:
    * patches/dev300/oox-pptx-import-fix-text-body-properties-priority-m14.diff:
    * patches/dev300/oox-pptx-import-fix-text-body-vert-2-m14.diff:
    * patches/dev300/oox-pptx-import-fix-text-body-vert-m14.diff:
    * patches/dev300/oox-smartart-import-m13.diff:
    * patches/dev300/pdfimport-no-license-m13.diff:
    * patches/dev300/pptx-filter-as-a-separate-lib-m12.diff:
    * patches/dev300/pptx-gfx-layout-fix-m14.diff:
    * patches/dev300/presentation-minimizer-no-license-m13.diff:
    * patches/dev300/presenterscreen-no-license-m13.diff:
    * patches/dev300/redirect-extensions-m12.diff:
    * patches/dev300/reduced-disable-auto-spellcheck.diff:
    * patches/dev300/reportdesign-mention-package-l10n-m7.diff:
    * patches/dev300/reportdesigner-no-license-m13.diff:
    * patches/dev300/scp2-user-config-ooo3-m13.diff:
    * patches/dev300/scp2_extensions-m13.diff:
    * patches/dev300/sd-sound-m13.diff:
    * patches/dev300/sdext-minimizer-docked.diff:
    * patches/dev300/sfx2-qstart-nocrash.diff:
    * patches/dev300/slideshow-effect-rewind-sdext-m13.diff:
    * patches/dev300/solenv-installer-unopkg-call-m13.diff:
    * patches/dev300/speed-local-link-except-m13.diff:
    * patches/dev300/sw-uno-fix.diff:
    * patches/dev300/unxsplash-rework-m13.diff:
    * patches/dev300/vcl-drawtransparent-fix.diff:
    * patches/dev300/vcl-free-renderpicture.diff:
    * patches/dev300/vcl-gtk-2.8-unsupported-link-colors.diff:
    * patches/dev300/vcl-xinerama-clone-fix.diff:
    * patches/dev300/win32-cygwin-1.7-m13.diff:
    * patches/dev300/writerfilter-docx-numbering-m13.diff:
    * patches/dev300/xlsx-shared-import-and-export-m14.diff:
    * patches/dev300/xmlhelp-build-without-java.diff:
    * patches/vba/cws-npower12-m13.diff:
    * patches/vba/cws-vbasupportdev300-m13.diff:

diff --git a/patches/dev300/apply b/patches/dev300/apply
index f76f257..c8f252d 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -7,7 +7,7 @@
 PATCHPATH=.:../evo2:../vba:../mono:../64bit:../cairo:../gstreamer:../ooxml:../postgresql:../emf+:../unittesting:../lwp
 
 # might be space separated list to support more MWS
-OLDEST_SUPPORTED=ooo320-m7
+OLDEST_SUPPORTED=ooo320-m15
 
 # -------- Functional sub-sets --------
 Common : PreprocessPatches, BuildBits, TemporaryHacks, FixesNotForUpstream, \
@@ -78,7 +78,6 @@ SUSE-11.0 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, PostgreSQL
 SUSE-11.1 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, ImpressFontSize, PostgreSQL
 SUSE-11.2 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, ImpressFontSize, PostgreSQL, OptionalIconThemes, SUSE112
 SUSE      : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, ImpressFontSize, PostgreSQL, OptionalIconThemes, SUSE112
-SUSE-reduced:NovellBase,BerkeleyDB43, ReducedDefaults
 # Slackware
 Slackware : LinuxCommon, SlackwareOnly, NotDebian, Mono, msaccess, CairoFonts
 # Debian
@@ -176,9 +175,7 @@ ooo-build-resources-svx-dialogs-hrc.diff, kohei
 [ HelpContent ]
 helpcontent-scalc-01.diff, kohei
 
-[ LocalizeFixes < ooo320-m8 ]
-helpcontent-scalc-01-localize-m7.diff, kohei
-[ LocalizeFixes >= ooo320-m8]
+[ LocalizeFixes ]
 helpcontent-scalc-01-localize.diff, kohei
 
 [ CWSBackports ]
@@ -280,10 +277,6 @@ fix-linkoo.diff, i#83548, jholesov
 # fix a11y bug
 fix-gtk-a11y.diff, i#98533, michael
 
-[ TemporaryHacks < ooo320-m14 ]
-fix-gtk-a11y-gail-version-warning.diff, pmladek
-
-[ TemporaryHacks ]
 # Update linkoo for dev300 TODO file upstream
 linkoo-dev300.diff, jholesov
 
@@ -398,47 +391,23 @@ writerperfect-nocondensedparagraphs.diff, fridrich
 
 offapi-typecheck-whitelist.diff, thorsten
 
-[ FixesNotForUpstream < ooo320-m13 ]
-# re-direct to plugins via http://extensions.go-oo.org/
-redirect-extensions-m12.diff
-[ FixesNotForUpstream >= ooo320-m13 ]
 # re-direct to plugins via http://extensions.go-oo.org/
 redirect-extensions.diff
 
-[ ExtensionFixes < ooo320-m14]
-reportdesigner-no-license-m13.diff
-presenterscreen-no-license-m13.diff
-presentation-minimizer-no-license-m13.diff
-pdfimport-no-license-m13.diff
-
-[ ExtensionFixes >= ooo320-m14 ]
+[ ExtensionFixes ]
 reportdesigner-no-license.diff
 presenterscreen-no-license.diff
 presentation-minimizer-no-license.diff
 pdfimport-no-license.diff
-
-[ ExtensionFixes ]
 wiki-publisher-no-license.diff
 
 # Fixing build breake in apache-common module when you use UTF-8 based locale in the build system
 apache-commons-build-fix-invalid-chars.diff, kami
 build-java-target-extensions.diff, i#93115, pmladek
 
-[ ExtensionFixes < ooo320-m14 ]
-# ooo320-m14 fortunately has no toolbar at all anymore
-sdext-minimizer-docked.diff, thorsten
-
-[ ExtensionFixes < ooo320-m14 ]
-# Fix from Andre, allows to step back one animation effect
-slideshow-effect-rewind-sdext-m13.diff, i#48179, thorsten
-[ ExtensionFixes >= ooo320-m14 ]
 # Fix from Andre, allows to step back one animation effect
 slideshow-effect-rewind-sdext.diff, i#48179, thorsten
 
-[ Fixes < ooo320-m8 ]
-# gtk quickstarter crashes on disable/exit
-sfx2-qstart-nocrash.diff, i#101245, michael
-
 [ Fixes ]
 # Fix from Andre, allows to step back one animation effect
 slideshow-effect-rewind.diff, i#48179, thorsten
@@ -459,19 +428,14 @@ sdext-noarch-identifier.diff, pmladek
 # IMPORTANT: the second part of the patch is build-ant-1.6-swext.diff
 build-ant-1.6.diff, i#90830, pmladek
 
-[ Fixes < ooo320-m8 ]
-# find the moved help when registering extension
-find-moved-help.diff, rene, i#107283
-
-[ Fixes ]
-# printf arguments cleanup
-buildfix-fmtargs.diff, cabral
-
 [ Fixes < ooo320-m16 ]
 # fix mozilla plugin on 64bit archs
 plugin.long.diff, i#110747, cmc
 
 [ Fixes ]
+# printf arguments cleanup
+buildfix-fmtargs.diff, cabral
+
 # sd printing fixes
 printing-bugfix-254573.diff, n#254573, rodo
 
@@ -493,16 +457,10 @@ wizards-source-importwizard-filesmodul-xba.diff, i#56633, noelpwer
 # ooo-build only fix n#145906#
 automation-testtool-oobuildfix.diff, n#145906, noelpwer
 
-[ Fixes < ooo320-m14 ]
-# fixes some .cfg files in helpcontent2/source/auxiliary to use right
-# lang code instead of en-US..
-helpcontent2-auxiliary-cfg-m13.diff, pmladek
-[ Fixes >= ooo320-m14 ]
 # fixes some .cfg files in helpcontent2/source/auxiliary to use right
 # lang code instead of en-US..
 helpcontent2-auxiliary-cfg.diff, pmladek
 
-[ Fixes]
 # .. and add eu
 helpcontent2-auxiliary-eu.diff, i#108534
 
@@ -525,13 +483,6 @@ xmlsecurity-verify-usages.diff, i#76871, pmladek
 # do not force to do it the user manually
 jvmfwk-modified-javavendors-xml.diff, i#99619, pmladek
 
-[ Fixes < ooo320-m2 ]
-# find locked certs, fix by Jacob Berkman <jberkman at novell.com>
-# FIXME: 2009-10-16: Don't know if some corresponding fix is needed
-# for the libxmlsec 1.2.12 now used in ooo320-m2. --tml
-libxmlsec-findcerts.diff, i#76870, pmladek
-
-[ Fixes ]
 # avoid error messages about missing directories with templates
 sfx2-check-existing-template-dirs.diff, i#100518, pmladek
 
@@ -539,9 +490,6 @@ sfx2-check-existing-template-dirs.diff, i#100518, pmladek
 # FIXME: temporarily disabled as this causes a race condition in calc's cell format dialog.
 #vcl-kerning-fix.diff, n#464436, i#26519, cbosdo
 
-[ Fixes < ooo320-m9 ]
-i107917.diff, i#107917
-
 [ LinuxOnly ]
 # fix that allows OOo to work with a standard (unpatched) libjpeg,
 jpegc.c.diff, i#80674, n#272574, flr
@@ -575,13 +523,6 @@ customunittext-pixel.diff, i#61043, atimar
 # make CustomUnitText "%" consistent
 customunittext-percent.diff, i#80784, atimar
 
-[ Fixes < ooo320-m15 ]
-# x86_64 doesn't pass SmallStructs and AllFloats testcppu tests
-# NLPSolver do not work on x86_64 without this fix
-# fix by Caolan
-bridges-testcppu-x86_64-fixes.diff, i#98028, n#575704, pmladek
-
-[ Fixes ]
 # fix ARM bridges
 branch_directly_to_cpp_vtable_call_on_arm.diff, i#105359
 
@@ -671,12 +612,8 @@ gnome-vfs-late-init.diff, i#84137, jholesov
 # due to being unused. fix properly.
 hack-readd-GetStringParam.diff
 
-[ QuickStarter < ooo320-m14 ]
-unxsplash-rework-m13.diff, i#60696, michael/jholesov
-[ QuickStarter >= ooo320-m14 ]
 unxsplash-rework.diff, i#60696, michael/jholesov
 
-[ QuickStarter ]
 # handling of osl pipe has changed, see i#84045
 unxsplash-new-osl-pipe.diff, i#60696, jholesov
 
@@ -695,7 +632,6 @@ unxsplash-3layer.diff, i#60696, jholesov
 # fix bitmap reading; the lines are aliased to 4 bytes
 unxsplash-bmp-alias.diff, i#60696, jholesov
 
-[ QuickStarter >= ooo320-m14 ]
 # FIXME: we need to install also the intro.bmp because the splash supports only the bmp file format
 unxsplash-install-bmp-intro.diff, pmladek
 
@@ -712,10 +648,6 @@ sfx2-qstartfixes.diff, i#108846, caolan
 sw-ww8-field-fix.diff, i#61075, i#89667, cbosdo
 sw-ww8font-fix.diff, cbosdo
 
-[ WriterFixes < ooo320-m12 ]
-sw-uno-fix.diff, i#108426, cbosdo
-
-[ WriterFixes ]
 # Added by Octavio Alvarez <alvarezp at alvarezp.ods.org>
 # The first patch is to prevent losing functionality because
 # of the second patch.
@@ -928,13 +860,11 @@ calc-general-type-auto-decimal-svtools.diff,   n#541973, i#46511, kohei
 calc-general-type-auto-decimal-officecfg.diff, n#541973, i#46511, kohei
 calc-general-type-auto-decimal-sc-dbf-fix.diff, i#111074, kohei
 
-[ CalcFixes >= dev300-m61 >= ooo320-m1 ]
 # FIXME. hack. readd XclExpInterfaceEnd::WriteBody as in m60 as 
 # calc-xls-export-encryption-condfmt-fix.diff patches it. Kohei, please check
 # --rengelhard
 hack-readd-XclExpInterfaceEnd-WriteBody.diff
 
-[ CalcFixes ]
 # Correctly encrypt zero bytes in the conditional formatting records.
 calc-xls-export-encryption-condfmt-fix.diff, n#541058, i#105933, kohei
 
@@ -948,15 +878,9 @@ calc-xls-import-slanted-border-oox.diff, n#549728, i#38709, kohei
 # TAB key to auto-complete word and move the cell cursor.
 calc-auto-tab-complete.diff, i#18748, muthusuba/kohei
 
-[ CalcFixes < ooo320-m15 ]
-# Speed up filtering performance with notes.
-calc-perf-filtering-with-notes-m14.diff, n#556927, kohei
-
-[ CalcFixes >= ooo320-m15 ]
 # Speed up filtering performance with notes.
 calc-perf-filtering-with-notes.diff, n#556927, kohei
 
-[ CalcFixes ]
 # Use current range separator for range lists.
 calc-formula-range-separator-fix.diff, n#556268, kohei
 
@@ -997,16 +921,6 @@ calc-perf-ods-import-properties.diff, n#498547, i#109384, kohei
 # squash USHORT where SCROW or SCCOL should have been used.
 calc-row-limit-bad-ushort.diff, n#509768, i#109385, kohei
 
-[ CalcRowLimit < ooo320-m15 ]
-# better algorithm to search for best-fit zoom level during page break calculation,
-# and to optimize pagenations by as much as 900% by using better data structure
-# for flag storage.
-calc-perf-page-and-manual-breaks-m14.diff, n#503482, i#109386, kohei
-
-# refactor to store hidden and filtered flags in flat_segment_tree structure.
-calc-perf-table-hidden-flags-m14.diff, n#495140, i#109387, kohei
-
-[ CalcRowLimit >= ooo320-m15 ]
 # better algorithm to search for best-fit zoom level during page break calculation,
 # and to optimize pagenations by as much as 900% by using better data structure
 # for flag storage.
@@ -1015,7 +929,6 @@ calc-perf-page-and-manual-breaks.diff, n#503482, i#109386, kohei
 # refactor to store hidden and filtered flags in flat_segment_tree structure.
 calc-perf-table-hidden-flags.diff, n#495140, i#109387, kohei
 
-[ CalcRowLimit ]
 # type cast to SCROW and SCCOL for row and column, not to USHORT!
 calc-ods-export-no-more-ushort.diff, n#501029, i#109385, kohei
 
@@ -1035,15 +948,9 @@ calc-perf-rowheight-no-progress-bar.diff, n#514156, kohei
 # speed up row's hidden state query during pagenation.
 calc-perf-page-and-manual-breaks-fwd-iterator.diff, n#503482, i#109386, kohei
 
-[ CalcRowLimit < ooo320-m15 ]
-# Refactor row height storage to speed up page break updates.
-calc-perf-speedup-pagebreak-update-m14.diff, n#554955, i#109391, kohei
-
-[ CalcRowLimit >= ooo320-m15 ]
 # Refactor row height storage to speed up page break updates.
 calc-perf-speedup-pagebreak-update.diff, n#554955, i#109391, kohei
 
-[ CalcRowLimit ]
 # Use manual breaks hidden/filtered flags when querying for last flagged row.
 calc-perf-last-rowflags-fix.diff, n#568146, i#109391, kohei
 
@@ -1056,16 +963,11 @@ calc-xls-export-row-height-wrapped-text.diff, n#580094, kohei
 # fix for print selected cells functionality.
 calc-print-selected-cells-fix.diff, n#569328, i#109386, kohei
 
-[ LinuxOnly < ooo320-m14 ]
-# accelerate linking, by extreme cunning i#63927
-# this is an increasingly marginal win ...
-speed-local-link-except-m13.diff, i#63927, michael
-[ LinuxOnly >= ooo320-m14 ]
+[ LinuxOnly ]
 # accelerate linking, by extreme cunning i#63927
 # this is an increasingly marginal win ...
 speed-local-link-except.diff, i#63927, michael
 
-[ LinuxOnly ]
 # the file this one patches ends with CR chars... :-(
 speed-local-link-except-offuh.diff
 
@@ -1127,13 +1029,9 @@ go-oo-team.diff, michael
 # add in an entry for a corporate common dictionary
 corporate-dictionary.diff, michael
 
-[ NovellOnly < ooo320-m14 ]
 # Some Novell colors ...
-novell-palette-m13.diff, michael
-[ NovellOnly >= ooo320-m14 ]
 novell-palette.diff, michael
 
-[ NovellOnly ]
 # finally disable -fsigned-char on pcc
 solenv-really-use-unsinged-char-on-ppc.diff, i#81127, n#169875, pmladek
 
@@ -1160,10 +1058,6 @@ SectionOwner => kohei
 # Swap the delete and backspace key bindings but leave the menus alone.
 sc-default-delete-backspace-key.diff, i#17965, kohei
 
-[ CustomUserConfig < ooo320-m14 ]
-# migrate keyboard shortcuts & reset character set for CSV import dialog.
-desktop-config-migration-m13.diff n#367160, n#376473, n#421070, n#466064, kohei/jholesov
-[ CustomUserConfig >= ooo320-m14 ]
 # migrate keyboard shortcuts & reset character set for CSV import dialog.
 desktop-config-migration.diff n#367160, n#376473, n#421070, n#466064, kohei/jholesov
 
@@ -1197,14 +1091,10 @@ jdbc-driver-classpaths-debian.diff
 # build using -O2 on x86 and sparc according to Debian policy.
 debian-opt.diff
 
-[ LocalizeFixes and DebianBaseOnly >= ooo320-m8 ]
+[ LocalizeFixes and DebianBaseOnly ]
 # mention openoffice.org-report-builder instead of getting people
 # to download it from elsewhere
 reportdesign-mention-package-l10n.diff, rengelha
-[ LocalizeFixes and DebianBaseOnly < ooo320-m8 ]
-# mention openoffice.org-report-builder instead of getting people
-# to download it from elsewhere
-reportdesign-mention-package-l10n-m7.diff, rengelha
 
 [ GoOoSplash ]
 # move progress bar for go-oo splash
@@ -1215,15 +1105,9 @@ reportdesign-mention-package-l10n-m7.diff, rengelha
 SectionOwner => Slackware
 
 pushfont-psstream.diff
-[ SlackwareOnly < ooo320-m14 ]
-scp2-user-config-ooo3-m13.diff
-[ SlackwareOnly >= ooo320-m14 ]
 scp2-user-config-ooo3.diff
 
-[ DebianBaseOnly < ooo320-m13 ]
-# fix the splash progressbar colors
-debian-splash-m12.diff
-[ DebianBaseOnly >= ooo320-m13 ]
+[ DebianBaseOnly ]
 # fix the splash progressbar colors
 debian-splash.diff
 
@@ -1231,9 +1115,6 @@ debian-splash.diff
 SectionOwner => DropLine
 
 pushfont-psstream.diff, i#84481
-[ DroplineGNOMEOnly < ooo320-m14 ]
-scp2-user-config-ooo3-m13.diff
-[ DroplineGNOMEOnly >= ooo320-m14 ]
 scp2-user-config-ooo3.diff
 
 
@@ -1259,10 +1140,6 @@ mdv-exceptcxx-include-string.diff, cabral
 
 SectionOwner => gghibo
 help-support-mdv.diff
-[ MandrivaOnlyUnix <  ooo320-m14 ]
-# change user config dir name from ~/.openoffice.org3 to ~/.ooo3
-scp2-user-config-ooo3-m13.diff, pmladek
-[ MandrivaOnlyUnix >=  ooo320-m14 ]
 scp2-user-config-ooo3.diff, pmladek
 
 
@@ -1270,12 +1147,10 @@ scp2-user-config-ooo3.diff, pmladek
 
 # Help Support page
 help-support.diff, michael
+
 # change user config dir name from ~/.openoffice.org3 to ~/.ooo3
-[ NovellOnlyUnix <  ooo320-m14 ]
-scp2-user-config-ooo3-m13.diff, pmladek
-[ NovellOnlyUnix >=  ooo320-m14 ]
 scp2-user-config-ooo3.diff, pmladek
-[ NovellOnlyUnix ]
+
 # Push fonts into the ps stream always
 pushfont-psstream.diff, i#84481, michael
 
@@ -1328,11 +1203,6 @@ ucb-neon-0.24.diff, pmladek
 # it builds fine with boost-1,36 here
 build-enable-boost-1.36.diff, i#105772, pmladek
 
-[ BuildBits < ooo320-m15 ]
-# fix npwrap.cxx build without gtk
-buildfix-extensions-npwrap-no-gtk.diff, i#110833, gentoo#306181, pmladek
-
-[ BuildBits ]
 # don't break dmake with environment variables containing space in the name
 # [which is a broken setup, but apparently most apps don't break with that ;-)] 
 dmake-space-in-envvar-name.diff, i#101786, jholesov
@@ -1343,7 +1213,7 @@ db4.8.diff, rengelha
 # find gsicheck in the solver
 transex3-localize-gsicheck-path.diff, i#109378, pmladek
 
-[ BuildBits < dev300-m66 ]
+# upstreamed in m66
 armeabi-softfp-buildfix.diff, i#105302, doko
 
 [ BuildBits ]
@@ -1384,12 +1254,6 @@ build-java-1.4-regcomp.diff, i#12345, pmladek
 # another fallback to load libhsqldb with JRE 1.4
 connectivity-load-libhsqldb-with-jre-1.4.diff, n#431360, pmladek
 
-[ GTK28 < ooo320-m14 ]
-
-# clean solution is included in ooo320-m14
-# gtk-2.8 does not know the link-color properties;
-# do not try to read them to avoid annoying warning messages
-vcl-gtk-2.8-unsupported-link-colors.diff, n#440514, pmladek
 
 [ GoOoOnlyWin32 ]
 SectionOwner => tml
@@ -1407,10 +1271,6 @@ SectionOwner => tml
 novell-win32-vrb-branding.diff, n#191913, i#68817
 novell-win32-registry-branding.diff, n#191913
 
-[ NovellOnlyWin32 < ooo320-m14 ]
-novell-win32-installer-branding-m14.diff
-
-[ NovellOnlyWin32 >= ooo320-m14 ]
 novell-win32-installer-branding.diff
 
 # drop stuff that is needed only on Win9x
@@ -1434,14 +1294,9 @@ recovery-report.diff, i#53531, martink
 # Controversial bits - no use filing up-stream
 #
 
-[ Defaults < ooo320-m14 ]
-# automatically do any migration we can, with no wizard
-default-no-startup-wizard-m13.diff, michael
-[ Defaults >= ooo320-m14 ]
 # automatically do any migration we can, with no wizard
 default-no-startup-wizard.diff, michael
 
-[ Defaults ]
 # don't throw up the style dialog on 1st run
 default-no-style-dialog.diff, michael
 
@@ -1453,13 +1308,9 @@ default-no-registration.diff, michael
 # => Tango should be preferred over Industrial.
 tango-prefer-over-industrial.diff, n#304615, pmladek
 
-[ Defaults < ooo320-m14 ]
-# no Help->registration dialog by default
-default-no-registration-menu-m13.diff, michael
-[ Defaults >= ooo320-m14 ]
 # no Help->registration dialog by default
 default-no-registration-menu.diff, michael
-[ Defaults ]
+
 # CR line endings again...
 default-no-registration-menu-sd.diff, michael/kohei
 
@@ -1560,7 +1411,6 @@ open-url-support-iceanimals.diff
 # FIXME: is anybody using this feature?
 #FIXME src680: separate-helpcontent.diff, jholesov
 
-[ BuildBits >= dev300-m61 >= ooo320-m1 ]
 # use --hash-style=gnu linking when supported
 speed-hash-style.diff, pmladek
 
@@ -1863,19 +1713,13 @@ mono-climaker-config.diff
 
 mono-climaker-bridgetest.diff
 
-[ VBAObjects < ooo320-m14 ]
-cws-npower12-m13.diff
-[ VBAObjects >= ooo320-m14 ]
-cws-npower12.diff
-
 [ VBAObjects ]
 SectionOwner => noelpwer
-[ VBAObjects < ooo320-m14 ]
-cws-vbasupportdev300-m13.diff
-[ VBAObjects >= ooo320-m14 ]
+
+cws-npower12.diff
+
 cws-vbasupportdev300.diff
 
-[ VBAObjects ]
 eventhelper-closecrash-fix.diff, n#438606, i#106270
 # make sure no vba libraries are loaded ( if not filtering )
 vba-dont-load-for-odf.diff
@@ -2325,28 +2169,17 @@ writerfilter-source-dmapper-domainmapper-debug.diff
 docx-fixes01.diff, cbosdo
 docx-vml-import.diff, cbosdo
 
-[ OOXML < ooo320-m14 ]
-writerfilter-docx-numbering-m13.diff, n#536407, cbosdo
-[ OOXML >= ooo320-m14 ]
 writerfilter-docx-numbering.diff, n#536407, cbosdo
 
-[ OOXML ]
 # Ugly temporary fix
 docx-ugly-fix.diff, n#548701, cbosdo
 
 buildfix-oox-depends-on-unotools.diff
 
-[ OOXML < ooo320-m15 ]
-oox-fix-placeholder-layout-m14.diff, n#485316, n#480223, rodo
-[ OOXML >= ooo320-m15 ]
 oox-fix-placeholder-layout.diff, n#485316, n#480223, rodo
 
-[ OOXML < ooo320-m15 ]
-oox-fix-list-style-apply-m14.diff, n#485417, rodo
-[ OOXML >= ooo320-m15 ]
 oox-fix-list-style-apply.diff, n#485417, rodo
 
-[ OOXML ]
 # FIXME: 2009-09-02: Applies but causes compilation errors. --tml
 # oox-import-chart-externalref.diff, n#480868, janneke
 
@@ -2370,32 +2203,20 @@ oox-custom-shape-polygons.diff, n#485418, rodo
 # FIXME_ 2009-09-02: Applies but causes compilation errors. --tml
 # oox-import-sheet-protect.diff, n#481317, janneke
 
-[ OOXML < ooo320-m15 ]
-oox-import-drawing-font-spacing-m14.diff, n#479822, rodo
-oox-import-text-vert-anchor-and-anchorctr-m14.diff, n#479829, rodo
-[ OOXML >= ooo320-m15 ]
 oox-import-drawing-font-spacing.diff, n#479822, rodo
 oox-import-text-vert-anchor-and-anchorctr.diff, n#479829, rodo
 
-[ OOXML ]
 oox-pptx-import-fix-layout.diff, n#480223, rodo
 oox-pptx-import-fix-wipe-transition.diff, n#480243, rodo
 
 [ OpenGLTransitions and OOXML ]
 oox-pptx-import-fix-transition-auto-advance.diff, n#480243, rodo
 
-[ OOXML < ooo320-m15 ]
-oox-pptx-import-fix-subtitle-placeholder-m14.diff, n#480243, rodo
-oox-pptx-import-fix-text-body-vert-m14.diff, n#479829, rodo
-[ OOXML >= ooo320-m15 ]
+[ OOXML ]
 oox-pptx-import-fix-subtitle-placeholder.diff, n#480243, rodo
 oox-pptx-import-fix-text-body-vert.diff, n#479829, rodo
-
-[ OOXML ]
 oox-pptx-import-fix-hidden-slides.diff, n#480229, rodo
 
-
-[ OOXML ]
 # FIXME: 2009-08-12: Does not apply, upstream code refactored, not
 # clear what to do. --tml
 # oox-import-zoom-setting-with-tab-color.diff, n#494603, janneke
@@ -2419,12 +2240,12 @@ sdbc-postgresql-config_office.diff
 # FIXME: still needed?
 kde4-buildfix-connectivity.diff
 
-[ Fixes < dev300-m68 ]
 # needed by optional-icon-themes.diff
+# upstreamed in m68
 kde4-oxygen-icons.diff, i#103482
 
-[ KDE4 < dev300-m65 ]
 # Further fixes on top of existing kde4 support
+# upstreamed in m65
 kde4_fpicker_fixes.diff
 kde4_vcl_fixes.diff
 
@@ -2447,10 +2268,11 @@ qt-moc-detect.diff
 # Not yet ported to co-exist with the KDE3 stuff
 kde4-kab.diff
 
-[ OptionalIconThemes < dev300-m68 ]
+[ OptionalIconThemes ]
 # FIXME: seems to work well but I am not brave enough to put it into common section at this stage
 # fallback to any installed icon theme
 # show only the installed icon themes in Tools/Options.../OpenOffice.org/View
+# upstreamed in m68
 optional-icon-themes.diff, i#105062, bnc#529404, pmladek
 
 # search also /usr/share for icons
@@ -2564,11 +2386,6 @@ ooo86080.unopkg.bodge.diff
 
 oooXXXX.partial-revert-ooo95118.diff
 
-[ FedoraCommonFixes < ooo320-m14 ]
-# add unopkg add --link option to register uncompressed extensions
-# it helps to get automatic depencies when packaging extensions in RPMs
-ooo83878.unopkg.enablelinking-m13.diff, i#83878, bnc#493994, caolan
-[ FedoraCommonFixes >= ooo320-m14 ]
 # add unopkg add --link option to register uncompressed extensions
 # it helps to get automatic depencies when packaging extensions in RPMs
 ooo83878.unopkg.enablelinking.diff, i#83878, bnc#493994, caolan
@@ -2628,7 +2445,7 @@ binfilter-dont-extern-sRTF-sHTML.diff, i#86772, jholesov
 # search also gij32, ..., so the 32-bit package works on 64-bit
 jvmfwk-gij32.diff, n#222708, pmladek
 
-[ SUSE101 >= ooo320-m14 ]
+[ SUSE101 ]
 sled10-splash.diff, i#123456, pmladek
 
 [ SUSE112 ]
@@ -2722,11 +2539,7 @@ wmf-pattern-brush.diff, n#232232, rodo
 
 # FIXME: these bits are part of layoutdialogs2 -- some things got
 # removed upstream, apparently.
-[ LayoutDialogs < ooo320-m14 ]
-layout-post-cws-layoutdialogs2-mysteriously-missing-m13.diff
-[ LayoutDialogs >= ooo320-m14 ]
 layout-post-cws-layoutdialogs2-mysteriously-missing.diff
-[ LayoutDialogs ]
 layout-post-cws-layoutdialogs2-edit-noop-reversal.diff, n#552450
 
 layout-localize-fix-sc.diff
@@ -2872,15 +2685,7 @@ unit-deliver.diff
 unit-comphelper.diff
 unit-sc.diff
 
-[ ReducedDefaults ]
-SectionOwner => jholesov
-
-# disable automatic spellchecking by default
-reduced-disable-auto-spellcheck.diff
-
-[ Features < ooo320-m13 ]
-novell-win32-odma-m12.diff, i#6885, i#32741, tml
-[ Features >= ooo320-m13 ]
+[ Features ]
 novell-win32-odma.diff, i#6885, i#32741, tml
 
 [ VOSremoval ]
@@ -2991,13 +2796,7 @@ linkwarn-sd-no-dnd-links.diff, n#348149, thorsten
 [ IntegrateExtensions ]
 scp2_build_extensions.diff
 scp2_makefile_extensions.diff
-
-[ IntegrateExtensions < ooo320-m14 ]
-scp2_extensions-m13.diff
-[ IntegrateExtensions >= ooo320-m14 ]
 scp2_extensions.diff
-
-[ IntegrateExtensions ]
 scp2_extensions_templates.diff
 extensions_configure.diff
 extensions_packinfo.diff
@@ -3006,9 +2805,6 @@ premium-splitted-language-packages.diff
 scp2_accessories_templates.diff
 scp2_accessories_templates_makefile.diff
 
-[ IntegrateExtensions < ooo320-m14 ]
-extensions_deliver-m13.diff
-[ IntegrateExtensions >= ooo320-m14 ]
 extensions_deliver.diff
 
 
@@ -3132,17 +2928,9 @@ sd-view-zoom-fix.diff, n#380013, i#88939, thorsten
 
 sd-custom-show-fix.diff, n#355638, i#90145, thorsten
 
-[ Fixes > ooo320-m7 ]
 # have Impress outline text boxes shrink font automatically when text
 # starts to overflow
 fit-list-to-size.diff, i#94086, thorsten
-
-[ Fixes <= ooo320-m7 ]
-# have Impress outline text boxes shrink font automatically when text
-# starts to overflow
-fit-list-to-size-m7.diff, i#94086, thorsten
-
-[ Fixes ]
 fit-list-to-size-style-defaults.diff, i#94086, thorsten
 fit-list-to-size-popup.diff, i#94086, thorsten
 
@@ -3210,9 +2998,6 @@ l10n-build-only-selected-langs.diff, i#106185, pmladek
 # fix "buleano"
 es-fix-buleano.diff, deb#576842, i#110674, rengelha
 
-[ LocalizeFixes < ooo320-m13 ]
-i109407_BUSCAR.diff
-
 [ BFFixes ]
 fit-list-to-size-binfilter.diff, i#94086, thorsten
 
@@ -3246,13 +3031,9 @@ jurt-jnilib-deliver.diff, i#93516, thorsten
 timely-canvas-disposing.diff, i#94007, thorsten
 # only build full package for en_US, use langpacks for the rest
 instset-prefer-langpacks.diff, thorsten
-[ Fixes < ooo320-m14 ]
-# call unopkg such that java does not require interactive session
-solenv-installer-unopkg-call-m13.diff, thorsten
-[ Fixes >= ooo320-m14 ]
 # call unopkg such that java does not require interactive session
 solenv-installer-unopkg-call.diff, thorsten
-[ Fixes ]
+
 # (disabled) debug code extracting SdrOLE streams to some tmp location
 svx-debug-sdrolestreams.diff, thorsten
 sal-disable-backtrace.diff, thorsten
@@ -3265,9 +3046,6 @@ svtools-svrtf-token-ignore-case.diff, n#417818, flr
 # fix wrong en-US accelerators in Impress
 fix-sd-accelerators.diff, n#463733, i#97088, jholesov
 
-[ Fixes < ooo320-m15 ]
-fix-es-accelerators-m14.diff, i#102645
-[ Fixes >= ooo320-m15]
 fix-es-accelerators.diff, i#102645
 
 [ MinGW ]
@@ -3290,14 +3068,9 @@ sw-insert-pagebreak-in-numbered-paragraph.diff, n#396648, Amelia Wang
 # and in the Start Menu on Windows
 win32-tooltips.diff, tml
 
-[ Fixes < ooo320-m14 ]
-# In Cygwin 1.7 the trailing dot hack from i#59477 is harmful
-win32-cygwin-1.7-m13.diff, i#59477, tml
-[ Fixes >= ooo320-m14 ]
 # In Cygwin 1.7 the trailing dot hack from i#59477 is harmful
 win32-cygwin-1.7.diff, i#59477, tml
 
-[ Fixes ]
 # Recognize Windows SDK 7
 win32-sdk7.diff, tml
 
@@ -3307,7 +3080,6 @@ win32-dxsdk-200908.diff, tml
 # Experimental support for Interix
 win32-interix.diff, tml
 
-[ Fixes ]
 # fix problem with calling private and protected members in layout code
 sfx2-privateprotectedpublic.diff
 # UI + core to make OLE editing optionally outplace
@@ -3341,9 +3113,10 @@ ooop-langpack-policy.diff
 [ NovellOnly ]
 mail-document-subject.diff, n#459176
 
-[ OOXMLExport < ooo320-m13 ]
-pptx-filter-as-a-separate-lib-m12.diff
-[ OOXMLExport >= ooo320-m13 ]
+[ OOXMLExport ]
+# Enable the DOCX export (and few related features in oox)
+docx-export-enable.diff, jholesov
+
 pptx-filter-as-a-separate-lib.diff
 
 [ OOXMLExport and not OpenGLTransitions ]
@@ -3352,17 +3125,6 @@ pptx-filter-as-a-separate-lib-sd-build-lst-without-transogl.diff
 [ OOXMLExport and OpenGLTransitions ]
 pptx-filter-as-a-separate-lib-sd-build-lst-with-transogl.diff
 
-[ OOXMLExport < ooo320-m14 ]
-# Enable the DOCX export (and few related features in oox)
-docx-export-enable-m13.diff, jholesov
-[ OOXMLExport == ooo320-m14 ]
-# Enable the DOCX export (and few related features in oox)
-docx-export-enable-m14.diff, jholesov
-[ OOXMLExport >= ooo320-m15 ]
-# Enable the DOCX export (and few related features in oox)
-docx-export-enable.diff, jholesov
-
-
 [ OOXMLExport ]
 # Snapshot of the pptx export filter at the time of creation of ooxml03
 # This is until 0475--fix-crash-introduced-by-Jonathan-s-changes-in-eppt.patch
@@ -3376,16 +3138,10 @@ pptx-snapshot-at-ooxml03-creation.diff
 pptx-the-rest-from-git.diff
 pptx-export-empty-animations-node-and-groupshape-fix.diff, rodo
 
-[ OOXMLExport < ooo320-m15 ]
-# ugly temp fix to make GraphicShapeContext recognise layout
-pptx-gfx-layout-fix-m14.diff, thorsten
-[ OOXMLExport >= ooo320-15 ]
 # ugly temp fix to make GraphicShapeContext recognise layout
 pptx-gfx-layout-fix.diff, thorsten
 
-[ OOXMLExport ]
 # handles case where a connector shape is not connected
-
 pptx-fix-connector-crash.diff, n#499129, thorsten
 
 [ OOXMLExport321 ]
@@ -3406,11 +3162,6 @@ xlsx-filter-as-a-separate-lib-guards.diff
 # should contain all the available changes.
 xlsx-snapshot.diff
 
-[ OOXMLExport321 < ooo320-m15 ]
-# Make the xlsx export and import work at the same time
-# (converts the xlsx export to a UNO filter)
-xlsx-shared-import-and-export-m14.diff
-[ OOXMLExport321 >= ooo320-m15 ]
 # Make the xlsx export and import work at the same time
 # (converts the xlsx export to a UNO filter)
 xlsx-shared-import-and-export.diff
@@ -3478,10 +3229,8 @@ xlsx-shared-xlsx-export-no-more-svstream-sotstorage.diff
 # hack to ignore writerfilter when odf-converter is present
 odf-converter-ignore-writerfilter.diff, n#348471, n#502173, jholesov
 
-[ OOXMLExport < ooo320-m14 ]
-oox-smartart-import-m13.diff, thorsten
-[ OOXMLExport >= ooo320-m14 ]
 oox-smartart-import.diff, thorsten
+
 [ OOXMLExportDevel ]
 xlsx-shared-oox-smartart-import-m13.diff
 
@@ -3528,10 +3277,6 @@ edit-links-decode-unicode-uri.diff, i#104166, kohei
 # cache fontconfig's pre-substitution result for better rendering performance.
 fontconfig-cache-pre-substitution.diff, n#529532, kohei
 
-[ OOXML < ooo320-m15 ]
-oox-pptx-import-fix-placeholder-text-style-m14.diff, n#479834, rodo
-oox-pptx-import-fix-text-body-properties-priority-m14.diff, n#403402, rodo
-[ OOXML >= ooo320-m15 ]
 oox-pptx-import-fix-placeholder-text-style.diff, n#479834, rodo
 oox-pptx-import-fix-text-body-properties-priority.diff, n#403402, rodo
 
@@ -3584,13 +3329,7 @@ writer-doc-comparison.diff, tzvetelina
 writer-doc-comparison-help.diff, tzvetelina
 
 
-[ MySQL < ooo320-m14 ]
-mysqlc-from-OOO320_m14.diff
-[ MySQL < ooo320-m15 ]
-mysqlc-missing-buildfixes-from-DEV300.diff
-[ MySQL < ooo320-m14 ]
-mysqlc-no-license.diff
-[ ExtensionFixes >= ooo320-m14 ]
+[ ExtensionFixes ]
 mysqlc-no-license.diff
 
 [ MySQL and DebianBaseOnly ]
@@ -3644,9 +3383,6 @@ sd-no-macro-recorder-in-ui.diff, fridrich
 starmath-no-macro-recorder-in-ui.diff, fridrich
 sw-no-macro-recorder-in-ui.diff, fridrich
 
-[ Fixes < ooo320-m8 ]
-xmlhelp-build-without-java.diff, rodo
-
 [ Fixes ]
 filter-fix-build-FCFGMerge.cfg.diff, rodo
 store-crash-fix.diff, thorsten
@@ -3679,11 +3415,6 @@ ww8-image-position.diff
 # add missing patch to upstreamed ppt gradient fix
 ppt-customshape-shading-fix.diff, i#102797, thorsten
 
-[ Fixes < ooo320-m8 ]
-# fix RenderBadPicture crash in xinerama cases
-vcl-free-renderpicture.diff, i#107248, thorsten
-
-[ Fixes ]
 # fix fullscreen window manager hints
 vcl-fullscreenmode-fix.diff, n#551402, i#107249, thorsten
 
@@ -3744,7 +3475,8 @@ docx-fixes02.diff, n#581604, cbosdo
 [ kFreeBSD ]
 cws-kfreebsdport01v2.diff, rengelha
 
-[ HPPA < dev300-m66 ]
+[ HPPA ]
+# upstreamed in m66
 cws-linuxhppa1.diff, i#107051
 
 [ AXP ]
@@ -3792,9 +3524,7 @@ piece-io.diff
 piece-l10n.diff
 piece-remotebridges.diff
 piece-rsc.diff
-[ PieceBits >= ooo320-m15 ]
 piece-postprocess.diff
-[ PieceBits ]
 piece-scp2.diff
 piece-solenv.diff
 piece-services.diff
@@ -3956,11 +3686,6 @@ calc-english-func-names-sc.diff,        i#38765, kohei
 calc-english-func-names-formula.diff,   i#38765, kohei
 calc-english-func-names-officecfg.diff, i#38765, kohei
 
-[ CalcFixes < ooo320-m15 ]
-# Fix incorrect positioning of cell notes during row insertion.
-calc-note-position-fix.diff, n#579454, kohei
-
-[ CalcFixes ]
 # Insert current date or time to current cell
 calc-insert-current-time-framework.diff, kohei
 calc-insert-current-time-offapi.diff,    kohei
@@ -4010,15 +3735,6 @@ framework-menubar-fix.diff, thorsten
 # backport from 3.3 - prevent crash in headless svp mode
 cws-sb118-headless-fix.diff, i#108681, thorsten
 
-[ Fixes < ooo320-m12 ]
-vcl-drawtransparent-fix.diff, i#107763, thorsten
-
-[ BuildBits == ooo320-m11 ]
-connectivity-build-fix.diff, i#107957, fridrich
-
-[ BuildBits < ooo320-m14 ]
-connectivity-build-fix-mac.diff, thorsten
-
 [ BuildBits ]
 # Allow oowintool to detect java sdk 1.6.x
 oowintool-java6.diff, fridrich
@@ -4047,46 +3763,26 @@ SectionOwner => thorsten
 # make opengl transitions work on OSX, too
 transogl-crossplatform.diff, ericb
 
-[ Features < ooo320-m14 ]
-# embed generic media files inside odf docs, 1st part
-# FIXME: svx-sound.diff depends on this diff
-cws-impressmedia01-backport-m13.diff, i#83753, thorsten
-[ Features == ooo320-m14 ]
-# embed generic media files inside odf docs, 1st part
-# FIXME: svx-sound.diff depends on this diff
-cws-impressmedia01-backport-m14.diff, i#83753, thorsten
-[ Features >= ooo320-m15 ]
+[ Features ]
 # embed generic media files inside odf docs, 1st part
 # FIXME: svx-sound.diff depends on this diff
 cws-impressmedia01-backport.diff, i#83753, thorsten
 
-[ Features ]
 cws-impressmedia01-crash-fix.diff, n#588570, thorsten
 
 [ Fixes ]
 svx-sound.diff, n#515553, rodo
-[ Fixes < ooo320-m14 ]
-sd-sound-m13.diff, n#515553, rodo
-[ Fixes >= ooo320-m14 ]
 sd-sound.diff, n#515553, rodo
-[ Fixes ]
 slideshow-sound.diff, n#515553, rodo
 sd-avoid-looping-fix.diff, thorsten
 svx-validate-paradepth.diff, thorsten
 vcl-pngread-greypalette-fix.diff, thorsten
 svx-textpropreader-limit-fix.diff, thorsten
-[ Fixes < ooo320-m14 ]
-vcl-xinerama-clone-fix.diff, n#578730, thorsten
-[ Fixes ]
 basegfx-colorspace-fix.diff, i#109364, thorsten
 vbahelper-optionality-fix.diff, i#108853, ericb
 vcl-gtk-process-events-on-exit.diff, rodo
 sfx2-add-to-recently-used-after-save.diff, rodo
-[ Fixes < ooo320-m14 ]
-basegfx-boxclipper-m13.diff, i#72418, thorsten
-[ Fixes >= ooo320-m14 ]
 basegfx-boxclipper.diff, i#72418, thorsten
-[ Fixes ]
 basegfx-clipstate.diff, i#72418, thorsten
 slideshow-clipstate.diff, i#72418, thorsten
 svtools-wmf-clipperf.diff, n#535304, thorsten
@@ -4138,7 +3834,4 @@ magyarlinuxlibertine-fonts.diff
 
 [ OOXML ]
 oox-import-helper-property-map-dump.diff, rodo
-[ OOXML < ooo320-m15 ]
-oox-pptx-import-fix-text-body-vert-2-m14.diff, n#479829, rodo
-[ OOXML >= ooo320-m15 ]
 oox-pptx-import-fix-text-body-vert-2.diff, n#479829, rodo
diff --git a/patches/dev300/basegfx-boxclipper-m13.diff b/patches/dev300/basegfx-boxclipper-m13.diff
deleted file mode 100644
index af8f967..0000000
--- a/patches/dev300/basegfx-boxclipper-m13.diff
+++ /dev/null
@@ -1,3359 +0,0 @@
-The new boxclipper code from 3.3
-
-From: Thorsten Behrens <tbehrens at novell.com>
-
-
----
-
- basegfx/inc/basegfx/polygon/b2dpolygon.hxx     |   10 
- basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx |    6 
- basegfx/inc/basegfx/range/b2dmultirange.hxx    |  117 ---
- basegfx/inc/basegfx/range/b2dpolyrange.hxx     |  139 ++++
- basegfx/inc/basegfx/range/b2drangeclipper.hxx  |   53 +
- basegfx/qa/mkpolygons.pl                       |  344 +++++++++
- basegfx/source/polygon/b2dpolygon.cxx          |  102 ++-
- basegfx/source/polygon/b2dpolypolygon.cxx      |   40 +
- basegfx/source/range/b2dmultirange.cxx         |  282 -------
- basegfx/source/range/b2dpolyrange.cxx          |  371 +++++++++
- basegfx/source/range/b2drangeclipper.cxx       |  950 ++++++++++++++++++++++++
- basegfx/source/range/makefile.mk               |    3 
- basegfx/test/basegfx2d.cxx                     |  248 +-----
- basegfx/test/boxclipper.cxx                    |  426 +++++++++++
- basegfx/test/makefile.mk                       |    5 
- 15 files changed, 2457 insertions(+), 639 deletions(-)
- delete mode 100644 basegfx/inc/basegfx/range/b2dmultirange.hxx
- create mode 100644 basegfx/inc/basegfx/range/b2dpolyrange.hxx
- create mode 100644 basegfx/inc/basegfx/range/b2drangeclipper.hxx
- create mode 100644 basegfx/qa/mkpolygons.pl
- delete mode 100644 basegfx/source/range/b2dmultirange.cxx
- create mode 100644 basegfx/source/range/b2dpolyrange.cxx
- create mode 100644 basegfx/source/range/b2drangeclipper.cxx
- create mode 100644 basegfx/test/boxclipper.cxx
-
-
-diff --git basegfx/inc/basegfx/polygon/b2dpolygon.hxx basegfx/inc/basegfx/polygon/b2dpolygon.hxx
-index 067680e..e7f60c1 100644
---- basegfx/inc/basegfx/polygon/b2dpolygon.hxx
-+++ basegfx/inc/basegfx/polygon/b2dpolygon.hxx
-@@ -83,7 +83,7 @@ namespace basegfx
-         sal_uInt32 count() const;
- 
-         /// Coordinate interface
--        basegfx::B2DPoint getB2DPoint(sal_uInt32 nIndex) const;
-+        const basegfx::B2DPoint& getB2DPoint(sal_uInt32 nIndex) const;
-         void setB2DPoint(sal_uInt32 nIndex, const basegfx::B2DPoint& rValue);
- 
-         /// Coordinate insert/append
-@@ -201,7 +201,7 @@ namespace basegfx
-             @return
-             The outer range of the bezier curve/polygon
-         */
--        B2DRange getB2DRange() const;
-+        const B2DRange& getB2DRange() const;
- 
-         /** insert other 2D polygons
- 
-@@ -261,6 +261,12 @@ namespace basegfx
- 
-         /// apply transformation given in matrix form
-         void transform(const basegfx::B2DHomMatrix& rMatrix);
-+
-+        // point iterators
-+        const B2DPoint* begin() const;
-+        const B2DPoint* end() const;
-+        B2DPoint* begin();
-+        B2DPoint* end();
-     };
- } // end of namespace basegfx
- 
-diff --git basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx
-index 38048f8..1b8ba65 100644
---- basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx
-+++ basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx
-@@ -128,6 +128,12 @@ namespace basegfx
- 
-         // apply transformation given in matrix form to the polygon
-         void transform(const basegfx::B2DHomMatrix& rMatrix);
-+
-+        // polygon iterators
-+        const B2DPolygon* begin() const;
-+        const B2DPolygon* end() const;
-+        B2DPolygon* begin();
-+        B2DPolygon* end();
-     };
- } // end of namespace basegfx
- 
-diff --git basegfx/inc/basegfx/range/b2dmultirange.hxx basegfx/inc/basegfx/range/b2dmultirange.hxx
-deleted file mode 100644
-index 447b0bf..0000000
---- basegfx/inc/basegfx/range/b2dmultirange.hxx
-+++ /dev/null
-@@ -1,117 +0,0 @@
--/*************************************************************************
-- *
-- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-- * 
-- * Copyright 2008 by Sun Microsystems, Inc.
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile: b2dmultirange.hxx,v $
-- * $Revision: 1.6 $
-- *
-- * This file is part of OpenOffice.org.
-- *
-- * OpenOffice.org is free software: you can redistribute it and/or modify
-- * it under the terms of the GNU Lesser General Public License version 3
-- * only, as published by the Free Software Foundation.
-- *
-- * OpenOffice.org is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- * GNU Lesser General Public License version 3 for more details
-- * (a copy is included in the LICENSE file that accompanied this code).
-- *
-- * You should have received a copy of the GNU Lesser General Public License
-- * version 3 along with OpenOffice.org.  If not, see
-- * <http://www.openoffice.org/license.html>
-- * for a copy of the LGPLv3 License.
-- *
-- ************************************************************************/
--
--#ifndef _BGFX_RANGE_B2DMULTIRANGE_HXX
--#define _BGFX_RANGE_B2DMULTIRANGE_HXX
--
--#include <o3tl/cow_wrapper.hxx>
--#include <memory>
--
--
--namespace basegfx
--{
--    class B2DTuple;
--    class B2DRange;
--    class B2DPolyPolygon;
--    class ImplB2DMultiRange;
--
--    /** Multiple ranges in one object.
--
--        This class combines multiple ranges in one object, providing a
--        total, enclosing range for it.
--
--        You can use this class e.g. when updating views containing
--        rectangular objects. Add each modified object to a
--        B2DMultiRange, then test each viewable object against
--        intersection with the multi range.
--     */
--    class B2DMultiRange
--    {
--    public:
--        B2DMultiRange();
--        ~B2DMultiRange();
--
--        /** Create a multi range with exactly one containing range
--         */
--        explicit B2DMultiRange( const B2DRange& rRange );
--
--        B2DMultiRange( const B2DMultiRange& );
--        B2DMultiRange& operator=( const B2DMultiRange& );
--
--        /** Check whether range is empty.
--
--            @return true, if this object either contains no ranges at
--            all, or all contained ranges are empty.
--         */
--        bool 			isEmpty() const;
--
--        /** Reset to empty.
--
--            After this call, the object will not contain any ranges,
--            and isEmpty() will return true.
--         */
--        void 			reset();
--
--        /** Test whether given tuple is inside one or more of the
--            included ranges.
--         */
--        bool 			isInside( const B2DTuple& rTuple ) const;
--
--        /** Test whether given range is inside one or more of the
--            included ranges.
--         */
--        bool 			isInside( const B2DRange& rRange ) const;
--
--        /** Test whether given range overlaps one or more of the
--            included ranges.
--         */
--        bool 			overlaps( const B2DRange& rRange ) const;
--
--        /** Add given range to the number of contained ranges.
--         */
--        void 			addRange( const B2DRange& rRange );
--
--        /** Get overall bound rect for all included ranges.
--         */ 
--        B2DRange 		getBounds() const;
--
--        /** Request poly-polygon representing the added ranges.
--
--            This method creates a poly-polygon, consisting exactly out
--            of the contained ranges.
--         */
--        B2DPolyPolygon	getPolyPolygon() const;
--
--    private:
--        o3tl::cow_wrapper< ImplB2DMultiRange > mpImpl;
--    };
--}
--
--#endif /* _BGFX_RANGE_B2DMULTIRANGE_HXX */
-diff --git basegfx/inc/basegfx/range/b2dpolyrange.hxx basegfx/inc/basegfx/range/b2dpolyrange.hxx
-new file mode 100644
-index 0000000..0c07dc2
---- /dev/null
-+++ basegfx/inc/basegfx/range/b2dpolyrange.hxx
-@@ -0,0 +1,139 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: b2dmultirange.hxx,v $
-+ * $Revision: 1.6 $
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * version 3 along with OpenOffice.org.  If not, see
-+ * <http://www.openoffice.org/license.html>
-+ * for a copy of the LGPLv3 License.
-+ *
-+ ************************************************************************/
-+
-+#ifndef _BGFX_RANGE_B2DPOLYRANGE_HXX
-+#define _BGFX_RANGE_B2DPOLYRANGE_HXX
-+
-+#include <o3tl/cow_wrapper.hxx>
-+#include <boost/tuple/tuple.hpp>
-+#include <basegfx/vector/b2enums.hxx>
-+
-+namespace basegfx
-+{
-+    class B2DTuple;
-+    class B2DRange;
-+    class B2DPolyPolygon;
-+    class ImplB2DPolyRange;
-+
-+    /** Multiple ranges in one object.
-+
-+        This class combines multiple ranges in one object, providing a
-+        total, enclosing range for it.
-+
-+        You can use this class e.g. when updating views containing
-+        rectangular objects. Add each modified object to a
-+        B2DMultiRange, then test each viewable object against
-+        intersection with the multi range.
-+
-+        Similar in spirit to the poly-polygon vs. polygon relationship.
-+
-+        Note that comparable to polygons, a poly-range can also
-+        contain 'holes' - this is encoded via polygon orientation at
-+        the poly-polygon, and via explicit flags for the poly-range.
-+     */
-+    class B2DPolyRange
-+    {
-+    public:
-+        typedef boost::tuple<B2DRange,B2VectorOrientation> ElementType ;
-+
-+        B2DPolyRange();
-+        ~B2DPolyRange();
-+
-+        /** Create a multi range with exactly one containing range
-+         */
-+        explicit B2DPolyRange( const ElementType& rElement );
-+        B2DPolyRange( const B2DRange& rRange, B2VectorOrientation eOrient );
-+        B2DPolyRange( const B2DPolyRange& );
-+        B2DPolyRange& operator=( const B2DPolyRange& );
-+
-+        /// unshare this poly-range with all internally shared instances
-+        void makeUnique();
-+
-+        bool operator==(const B2DPolyRange&) const;
-+        bool operator!=(const B2DPolyRange&) const;
-+
-+        /// Number of included ranges
-+        sal_uInt32 count() const;
-+
-+        ElementType getElement(sal_uInt32 nIndex) const;
-+        void        setElement(sal_uInt32 nIndex, const ElementType& rElement );
-+        void        setElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient );
-+
-+        // insert/append a single range
-+        void insertElement(sal_uInt32 nIndex, const ElementType& rElement, sal_uInt32 nCount = 1);
-+        void insertElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount = 1);
-+        void appendElement(const ElementType& rElement, sal_uInt32 nCount = 1);
-+        void appendElement(const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount = 1);
-+
-+        // insert/append multiple ranges
-+        void insertPolyRange(sal_uInt32 nIndex, const B2DPolyRange&);
-+        void appendPolyRange(const B2DPolyRange&);
-+
-+        void remove(sal_uInt32 nIndex, sal_uInt32 nCount = 1);
-+        void clear();
-+
-+        // flip range orientations - converts holes to solids, and vice versa
-+        void flip();
-+
-+        /** Get overall range
-+
-+            @return
-+            The union range of all contained ranges
-+        */
-+        B2DRange getBounds() const;
-+
-+        /** Test whether given tuple is inside one or more of the
-+            included ranges. Does *not* use overall range, but checks
-+            individually.
-+         */
-+        bool isInside( const B2DTuple& rTuple ) const;
-+
-+        /** Test whether given range is inside one or more of the
-+            included ranges. Does *not* use overall range, but checks
-+            individually.
-+         */
-+        bool isInside( const B2DRange& rRange ) const;
-+
-+        /** Test whether given range overlaps one or more of the
-+            included ranges. Does *not* use overall range, but checks
-+            individually.
-+         */
-+        bool overlaps( const B2DRange& rRange ) const;
-+
-+        /** Request a poly-polygon with solved cross-overs
-+         */
-+        B2DPolyPolygon solveCrossovers() const;
-+
-+    private:
-+        o3tl::cow_wrapper< ImplB2DPolyRange > mpImpl;
-+    };
-+}
-+
-+#endif /* _BGFX_RANGE_B2DPOLYRANGE_HXX */
-diff --git basegfx/inc/basegfx/range/b2drangeclipper.hxx basegfx/inc/basegfx/range/b2drangeclipper.hxx
-new file mode 100644
-index 0000000..1b08bbf
---- /dev/null
-+++ basegfx/inc/basegfx/range/b2drangeclipper.hxx
-@@ -0,0 +1,53 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: b2dmultirange.hxx,v $
-+ * $Revision: 1.6 $
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * version 3 along with OpenOffice.org.  If not, see
-+ * <http://www.openoffice.org/license.html>
-+ * for a copy of the LGPLv3 License.
-+ *
-+ ************************************************************************/
-+
-+#ifndef _BGFX_RANGE_B2DRANGECLIPPER_HXX
-+#define _BGFX_RANGE_B2DRANGECLIPPER_HXX
-+
-+#include <basegfx/range/b2dpolyrange.hxx>
-+#include <vector>
-+
-+namespace basegfx
-+{
-+    namespace tools
-+    {
-+        /** Extract poly-polygon w/o self-intersections from poly-range
-+            
-+            Similar to the solveCrossovers(const B2DPolyPolygon&)
-+            method, this one calculates a self-intersection-free
-+            poly-polygon with the same topology, and encoding
-+            inside/outsidedness via polygon orientation and layering.
-+         */
-+        B2DPolyPolygon solveCrossovers(const std::vector<B2DRange>& rRanges, 
-+                                       const std::vector<B2VectorOrientation>& rOrientations);
-+    }
-+}
-+
-+#endif /* _BGFX_RANGE_B2DRANGECLIPPER_HXX */
-diff --git basegfx/qa/mkpolygons.pl basegfx/qa/mkpolygons.pl
-new file mode 100644
-index 0000000..47ef7ba
---- /dev/null
-+++ basegfx/qa/mkpolygons.pl
-@@ -0,0 +1,344 @@
-+:
-+eval 'exec perl -wS $0 ${1+"$@"}'
-+    if 0; 
-+
-+#
-+# 2009 Copyright Novell, Inc. & Sun Microsystems, Inc.
-+#
-+# OpenOffice.org is free software: you can redistribute it and/or modify
-+# it under the terms of the GNU Lesser General Public License version 3
-+# only, as published by the Free Software Foundation.
-+#
-+
-+use	IO::File;
-+use	Cwd;
-+use File::Spec;
-+use File::Spec::Functions;
-+use File::Temp;
-+use File::Path;
-+
-+$TempDir = "";
-+
-+
-+# all the XML package generation is a blatant rip from AF's
-+# write-calc-doc.pl
-+
-+
-+###############################################################################
-+#	Open a file with the given name.
-+#	First it is checked if the temporary directory, in which all files for
-+#	the document are gathered, is already present and create it if it is not.
-+#	Then create the path to the file inside the temporary directory.
-+#	Finally open the file and return a file handle to it.
-+#
-+sub	open_file
-+{
-+    my	$filename = pop @_;
-+    
-+    #	Create base directory of temporary directory tree if not alreay
-+    #	present.
-+    if ($TempDir eq "")
-+    {
-+        $TempDir = File::Temp::tempdir (CLEANUP => 1);
-+    }
-+    
-+    #	Create the path to the file.
-+    my $fullname = File::Spec->catfile ($TempDir, $filename);
-+    my ($volume,$directories,$file) = File::Spec->splitpath ($fullname);
-+    mkpath (File::Spec->catpath ($volume,$directories,""));
-+    
-+    #	Open the file and return a file handle to it.
-+    return new IO::File ($fullname, "w");
-+}
-+
-+
-+###############################################################################
-+#	Zip the files in the directory tree into the given file.
-+#
-+sub	zip_dirtree
-+{
-+    my	$filename = pop @_;
-+    
-+    my	$cwd = getcwd;
-+    my	$zip_name = $filename;
-+    
-+    #	We are about to change the directory.
-+    #	Therefore create an absolute pathname for the zip archive.
-+    
-+    #	First transfer the drive from $cwd to $zip_name.  This is a
-+    #	workaround for a bug in file_name_is_absolute which thinks
-+    #	the the path \bla is an absolute path under DOS.
-+    my ($volume,$directories,$file) = File::Spec->splitpath ($zip_name);
-+    my ($volume_cwd,$directories_cwd,$file_cwd) = File::Spec->splitpath ($cwd);
-+    $volume = $volume_cwd if ($volume eq "");
-+    $zip_name = File::Spec->catpath ($volume,$directories,$file);
-+    
-+    #	Add the current working directory to a relative path.
-+    if ( ! file_name_is_absolute ($zip_name))
-+    {
-+        $zip_name = File::Spec->catfile ($cwd, $zip_name);
-+        
-+        #	Try everything to clean up the name.
-+        $zip_name = File::Spec->rel2abs ($filename);
-+        $zip_name = File::Spec->canonpath ($zip_name);
-+        
-+        #	Remove .. directories from the middle of the path.
-+        while ($zip_name =~ /\/[^\/][^\.\/][^\/]*\/\.\.\//)
-+        {
-+            $zip_name = $` . "/" . $';
-+        }
-+    }
-+
-+    #	Just in case the zip program gets confused by an existing file with the
-+    #	same name as the one to be written that file is removed first.
-+    if ( -e $filename)
-+    {
-+        if (unlink ($filename) == 0)
-+        {
-+            print "Existing file $filename could not be deleted.\n";
-+            print "Please close the application that uses it, then try again.\n";
-+            return;
-+        }
-+    }
-+    
-+    #	Finally create the zip file.  First change into the temporary directory
-+    #	so that the resulting zip file contains only paths relative to it.
-+    print "zipping [$ZipCmd $ZipFlags $zip_name *]\n";
-+    chdir ($TempDir);
-+    system ("$ZipCmd $ZipFlags $zip_name *");
-+    chdir ($cwd);
-+}
-+
-+
-+sub writeHeader
-+{
-+    print $OUT qq~<?xml version="1.0" encoding="UTF-8"?>
-+
-+<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:fo
 rm:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0">
-+ <office:scripts/>
-+ <office:automatic-styles>
-+  <style:style style:name="dp1" style:family="drawing-page">
-+   <style:drawing-page-properties presentation:background-visible="true" presentation:background-objects-visible="true" presentation:display-footer="true" presentation:display-page-number="false" presentation:display-date-time="true"/>
-+  </style:style>
-+  <style:style style:name="gr1" style:family="graphic" style:parent-style-name="standard">
-+   <style:graphic-properties draw:textarea-horizontal-align="center" draw:fill="none" draw:stroke="none" draw:textarea-vertical-align="middle"/>
-+  </style:style>
-+  <style:style style:name="gr2" style:family="graphic" style:parent-style-name="standard">
-+   <style:graphic-properties draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle"/>
-+  </style:style>
-+  <style:style style:name="pr1" style:family="presentation" style:parent-style-name="Default-title">
-+   <style:graphic-properties draw:fill-color="#ffffff" draw:auto-grow-height="true" fo:min-height="3.508cm"/>
-+  </style:style>
-+  <style:style style:name="pr2" style:family="presentation" style:parent-style-name="Default-notes">
-+   <style:graphic-properties draw:fill-color="#ffffff" draw:auto-grow-height="true" fo:min-height="13.367cm"/>
-+  </style:style>
-+  <style:style style:name="P1" style:family="paragraph">
-+   <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0cm"/>
-+  </style:style>
-+  <style:style style:name="P2" style:family="paragraph">
-+   <style:paragraph-properties fo:margin-left="0.6cm" fo:margin-right="0cm" fo:text-indent="-0.6cm"/>
-+  </style:style>
-+  <text:list-style style:name="L1">
-+   <text:list-level-style-bullet text:level="1" text:bullet-char="●">
-+    <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
-+   </text:list-level-style-bullet>
-+   <text:list-level-style-bullet text:level="2" text:bullet-char="●">
-+    <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
-+    <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
-+   </text:list-level-style-bullet>
-+   <text:list-level-style-bullet text:level="3" text:bullet-char="●">
-+    <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
-+    <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
-+   </text:list-level-style-bullet>
-+   <text:list-level-style-bullet text:level="4" text:bullet-char="●">
-+    <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
-+    <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
-+   </text:list-level-style-bullet>
-+   <text:list-level-style-bullet text:level="5" text:bullet-char="●">
-+    <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
-+    <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
-+   </text:list-level-style-bullet>
-+   <text:list-level-style-bullet text:level="6" text:bullet-char="●">
-+    <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
-+    <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
-+   </text:list-level-style-bullet>
-+   <text:list-level-style-bullet text:level="7" text:bullet-char="●">
-+    <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
-+    <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
-+   </text:list-level-style-bullet>
-+   <text:list-level-style-bullet text:level="8" text:bullet-char="●">
-+    <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
-+    <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
-+   </text:list-level-style-bullet>
-+   <text:list-level-style-bullet text:level="9" text:bullet-char="●">
-+    <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
-+    <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
-+   </text:list-level-style-bullet>
-+  </text:list-style>
-+ </office:automatic-styles>
-+ <office:body>
-+  <office:presentation>
-+~;
-+
-+}
-+
-+sub writeSlideHeader
-+{
-+    my $titleText = pop @_;
-+    my $slideNum = pop @_;
-+
-+    print $OUT "    <draw:page draw:name=\"page1\" draw:style-name=\"dp1\" draw:master-page-name=\"Default\">\n";
-+    print $OUT "     <office:forms form:automatic-focus=\"false\" form:apply-design-mode=\"false\"/>\n";
-+    print $OUT "     <draw:rect draw:style-name=\"gr1\" draw:text-style-name=\"P1\" draw:id=\"id$slideNum\" draw:layer=\"layout\" svg:width=\"17.5cm\" svg:height=\"6cm\" svg:x=\"5cm\" svg:y=\"4cm\">\n";
-+    print $OUT "      <text:p text:style-name=\"P2\">Slide: $slideNum</text:p>\n";
-+    print $OUT "      <text:p text:style-name=\"P2\">Path: $titleText</text:p>\n";
-+    print $OUT "     </draw:rect>\n";
-+}
-+
-+
-+sub writeSlideFooter
-+{
-+    print $OUT "    <presentation:notes draw:style-name=\"dp1\">\n";
-+    print $OUT "     <draw:page-thumbnail draw:style-name=\"gr1\" draw:layer=\"layout\" svg:width=\"14.851cm\" svg:height=\"11.138cm\" svg:x=\"3.068cm\" svg:y=\"2.257cm\" draw:page-number=\"1\" presentation:class=\"page\"/>\n";
-+    print $OUT "     <draw:frame presentation:style-name=\"pr3\" draw:layer=\"layout\" svg:width=\"16.79cm\" svg:height=\"13.116cm\" svg:x=\"2.098cm\" svg:y=\"14.109cm\" presentation:class=\"notes\" presentation:placeholder=\"true\">\n";
-+    print $OUT "      <draw:text-box/>\n";
-+    print $OUT "     </draw:frame>\n";
-+    print $OUT "    </presentation:notes>\n";
-+    print $OUT "   </draw:page>\n";
-+}
-+
-+sub writeFooter
-+{
-+    print $OUT qq~   <presentation:settings presentation:full-screen="false"/>
-+  </office:presentation>
-+ </office:body>
-+</office:document-content>
-+~;
-+
-+}
-+
-+sub writePath
-+{
-+    my $pathAry = pop @_;
-+    my $path = $pathAry->[1];
-+    my $viewBox = $pathAry->[0];
-+
-+    print $OUT "       <draw:path draw:style-name=\"gr2\" draw:text-style-name=\"P1\" draw:layer=\"layout\" svg:width=\"10cm\" svg:height=\"10cm\" svg:x=\"5cm\" svg:y=\"5cm\" svg:viewBox=\"";
-+    print $OUT $viewBox;
-+    print $OUT "\" svg:d=\"";
-+    print $OUT $path;
-+    print $OUT "\">\n";
-+    print $OUT "         <text:p/>\n";
-+    print $OUT "       </draw:path>\n";
-+}
-+
-+sub writeManifest
-+{
-+    my $outFile = open_file("META-INF/manifest.xml");
-+
-+    print $outFile qq~<?xml version="1.0" encoding="UTF-8"?>
-+<!DOCTYPE manifest:manifest PUBLIC "-//OpenOffice.org//DTD Manifest 1.0//EN" "Manifest.dtd">
-+<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">
-+ <manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.presentation" manifest:full-path="/"/>
-+ <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/>
-+</manifest:manifest>
-+~;
-+
-+    $outFile->close;
-+}
-+
-+
-+###############################################################################
-+#	Print usage information.
-+#
-+sub	usage	()
-+{
-+    print <<END_OF_USAGE;
-+usage: $0 <option>* [<SvgD-values>]
-+
-+output-file-name defaults to polygons.odp.
-+
-+         -h    Print this usage information.
-+         -o    output-file-name
-+END_OF_USAGE
-+}
-+
-+###############################################################################
-+#	Process the command line.
-+#
-+sub	process_command_line
-+{
-+    foreach (@ARGV)
-+    {
-+        if (/^-h/)
-+        {
-+            usage;
-+            exit 0;
-+        }
-+    }
-+    
-+    $global_output_name = "polygons.odp";
-+    my	$j = 0, $noMoreOptions = 0;
-+    for (my $i=0; $i<$#ARGV; $i++)
-+    {
-+        if ( !$noMoreOptions and $ARGV[$i] eq "-o")
-+        {
-+			$i++;
-+			$global_output_name = $ARGV[$i];
-+        }
-+        elsif ( !$noMoreOptions and $ARGV[$i] eq "--")
-+        {
-+			$noMoreOptions = 1;
-+        }
-+        elsif ( !$noMoreOptions and $ARGV[$i] =~ /^-/)
-+        {
-+            print "Unknown option $ARGV[$i]\n";
-+            usage;
-+            exit 1;
-+        }
-+        else
-+        {
-+            push(@paths, [$ARGV[$i],$ARGV[$i+1]]);
-+			$i++;
-+        }
-+    }
-+
-+    print "output to $global_output_name\n";
-+}
-+
-+###############################################################################
-+#	Main
-+###############################################################################
-+
-+$ZipCmd = $ENV{LOG_FILE_ZIP_CMD};
-+$ZipFlags = $ENV{LOG_FILE_ZIP_FLAGS};
-+#	Provide default values for the zip command and it's flags.
-+if ( ! defined $ZipCmd)
-+{
-+    $ZipCmd = "zip" unless defined $ZipCmd;
-+    $ZipFlags = "-r -q" unless defined $ZipFlags;
-+}
-+
-+process_command_line();
-+
-+writeManifest();
-+
-+$OUT = open_file( "content.xml" );
-+
-+writeHeader();
-+
-+$pathNum=0;
-+foreach $path (@paths)
-+{
-+	writeSlideHeader($pathNum, $path->[1]);
-+	writePath($path);
-+	writeSlideFooter();
-+	$pathNum++;
-+}
-+
-+writeFooter();
-+
-+$OUT->close;
-+
-+zip_dirtree ($global_output_name);
-+
-diff --git basegfx/source/polygon/b2dpolygon.cxx basegfx/source/polygon/b2dpolygon.cxx
-index 02a25e6..c30d070 100644
---- basegfx/source/polygon/b2dpolygon.cxx
-+++ basegfx/source/polygon/b2dpolygon.cxx
-@@ -44,38 +44,24 @@
- 
- //////////////////////////////////////////////////////////////////////////////
- 
--class CoordinateData2D
-+struct CoordinateData2D : public basegfx::B2DPoint
- {
--    basegfx::B2DPoint								maPoint;
--
- public:
--    CoordinateData2D()
--    :	maPoint() 
--    {}
--    
-+    CoordinateData2D() {}
-+
-     explicit CoordinateData2D(const basegfx::B2DPoint& rData) 
--    :	maPoint(rData) 
-+    :	B2DPoint(rData) 
-     {}
- 
--    const basegfx::B2DPoint& getCoordinate() const 
--    { 
--        return maPoint; 
-+    CoordinateData2D& operator=(const basegfx::B2DPoint& rData)
-+    {
-+        B2DPoint::operator=(rData);
-+        return *this;
-     }
- 
--    void setCoordinate(const basegfx::B2DPoint& rValue) 
--    { 
--        if(rValue != maPoint) 
--            maPoint = rValue; 
--    }
--    
--    bool operator==(const CoordinateData2D& rData ) const 
--    {	
--        return (maPoint == rData.getCoordinate()); 
--    }
--    
-     void transform(const basegfx::B2DHomMatrix& rMatrix) 
-     { 
--        maPoint *= rMatrix; 
-+        *this *= rMatrix; 
-     }
- };
- 
-@@ -115,12 +101,12 @@ public:
- 
-     const basegfx::B2DPoint& getCoordinate(sal_uInt32 nIndex) const
-     {
--        return maVector[nIndex].getCoordinate();
-+        return maVector[nIndex];
-     }
- 
-     void setCoordinate(sal_uInt32 nIndex, const basegfx::B2DPoint& rValue)
-     {
--        maVector[nIndex].setCoordinate(rValue);
-+        maVector[nIndex] = rValue;
-     }
- 
-     void insert(sal_uInt32 nIndex, const CoordinateData2D& rValue, sal_uInt32 nCount)
-@@ -221,6 +207,26 @@ public:
-             aStart->transform(rMatrix);
-         }
-     }
-+
-+    const basegfx::B2DPoint* begin() const
-+    {
-+        return &maVector.front();
-+    }
-+
-+    const basegfx::B2DPoint* end() const
-+    {
-+        return &maVector[maVector.size()];
-+    }
-+
-+    basegfx::B2DPoint* begin()
-+    {
-+        return &maVector.front();
-+    }
-+
-+    basegfx::B2DPoint* end()
-+    {
-+        return &maVector[maVector.size()];
-+    }
- };
- 
- //////////////////////////////////////////////////////////////////////////////
-@@ -1113,6 +1119,28 @@ public:
-             maPoints.transform(rMatrix);
-         }
-     }
-+
-+    const basegfx::B2DPoint* begin() const
-+    {
-+        return maPoints.begin();
-+    }
-+
-+    const basegfx::B2DPoint* end() const
-+    {
-+        return maPoints.end();
-+    }
-+
-+    basegfx::B2DPoint* begin()
-+    {
-+       mpBufferedData.reset();
-+       return maPoints.begin();
-+    }
-+
-+    basegfx::B2DPoint* end()
-+    {
-+        mpBufferedData.reset();
-+        return maPoints.end();
-+    }
- };
- 
- //////////////////////////////////////////////////////////////////////////////
-@@ -1173,7 +1201,7 @@ namespace basegfx
-         return mpPolygon->count();
-     }
- 
--    B2DPoint B2DPolygon::getB2DPoint(sal_uInt32 nIndex) const
-+    const B2DPoint& B2DPolygon::getB2DPoint(sal_uInt32 nIndex) const
-     {
-         OSL_ENSURE(nIndex < mpPolygon->count(), "B2DPolygon access outside range (!)");
-         
-@@ -1432,7 +1460,7 @@ namespace basegfx
-         return mpPolygon->getDefaultAdaptiveSubdivision(*this);
-     }
- 
--    B2DRange B2DPolygon::getB2DRange() const
-+    const B2DRange& B2DPolygon::getB2DRange() const
-     {
-         return mpPolygon->getB2DRange(*this);
-     }
-@@ -1540,6 +1568,26 @@ namespace basegfx
-             mpPolygon->transform(rMatrix);
-         }
-     }
-+
-+    const B2DPoint* B2DPolygon::begin() const
-+    {
-+        return mpPolygon->begin();
-+    }
-+
-+    const B2DPoint* B2DPolygon::end() const
-+    {
-+        return mpPolygon->end();
-+    }
-+
-+    B2DPoint* B2DPolygon::begin()
-+    {
-+        return mpPolygon->begin();
-+    }
-+
-+    B2DPoint* B2DPolygon::end()
-+    {
-+        return mpPolygon->end();
-+    }
- } // end of namespace basegfx
- 
- //////////////////////////////////////////////////////////////////////////////
-diff --git basegfx/source/polygon/b2dpolypolygon.cxx basegfx/source/polygon/b2dpolypolygon.cxx
-index 67cd079..4be35f7 100644
---- basegfx/source/polygon/b2dpolypolygon.cxx
-+++ basegfx/source/polygon/b2dpolypolygon.cxx
-@@ -166,6 +166,26 @@ public:
-                        maPolygons.end(),
-                        std::mem_fun_ref( &basegfx::B2DPolygon::makeUnique ));
-     }
-+
-+    const basegfx::B2DPolygon* begin() const
-+    {
-+        return &maPolygons.front();
-+    }
-+
-+    const basegfx::B2DPolygon* end() const
-+    {
-+        return &maPolygons[maPolygons.size()];
-+    }
-+
-+    basegfx::B2DPolygon* begin()
-+    {
-+        return &maPolygons.front();
-+    }
-+
-+    basegfx::B2DPolygon* end()
-+    {
-+        return &maPolygons[maPolygons.size()];
-+    }
- };
- 
- //////////////////////////////////////////////////////////////////////////////
-@@ -378,6 +398,26 @@ namespace basegfx
-             mpPolyPolygon->transform(rMatrix);
-         }
-     }
-+
-+    const B2DPolygon* B2DPolyPolygon::begin() const
-+    {
-+        return mpPolyPolygon->begin();
-+    }
-+
-+    const B2DPolygon* B2DPolyPolygon::end() const
-+    {
-+        return mpPolyPolygon->end();
-+    }
-+
-+    B2DPolygon* B2DPolyPolygon::begin()
-+    {
-+        return mpPolyPolygon->begin();
-+    }
-+
-+    B2DPolygon* B2DPolyPolygon::end()
-+    {
-+        return mpPolyPolygon->end();
-+    }
- } // end of namespace basegfx
- 
- // eof
-diff --git basegfx/source/range/b2dmultirange.cxx basegfx/source/range/b2dmultirange.cxx
-deleted file mode 100644
-index 738c5d1..0000000
---- basegfx/source/range/b2dmultirange.cxx
-+++ /dev/null
-@@ -1,282 +0,0 @@
--/*************************************************************************
-- *
-- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-- * 
-- * Copyright 2008 by Sun Microsystems, Inc.
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile: b2dmultirange.cxx,v $
-- * $Revision: 1.8 $
-- *
-- * This file is part of OpenOffice.org.
-- *
-- * OpenOffice.org is free software: you can redistribute it and/or modify
-- * it under the terms of the GNU Lesser General Public License version 3
-- * only, as published by the Free Software Foundation.
-- *
-- * OpenOffice.org is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- * GNU Lesser General Public License version 3 for more details
-- * (a copy is included in the LICENSE file that accompanied this code).
-- *
-- * You should have received a copy of the GNU Lesser General Public License
-- * version 3 along with OpenOffice.org.  If not, see
-- * <http://www.openoffice.org/license.html>
-- * for a copy of the LGPLv3 License.
-- *
-- ************************************************************************/
--
--// MARKER(update_precomp.py): autogen include statement, do not remove
--#include "precompiled_basegfx.hxx"
--#include <basegfx/range/b2drange.hxx>
--#include <basegfx/tuple/b2dtuple.hxx>
--#include <basegfx/polygon/b2dpolypolygon.hxx>
--#include <basegfx/range/b2dmultirange.hxx>
--#include <basegfx/polygon/b2dpolygontools.hxx>
--#include <basegfx/polygon/b2dpolypolygontools.hxx>
--#include <basegfx/polygon/b2dpolypolygoncutter.hxx>
--#include <boost/bind.hpp>
--#include <boost/mem_fn.hpp>
--#include <algorithm>
--#include <vector>
--
--
--namespace basegfx
--{
--    class ImplB2DMultiRange
--    {
--    public:
--        ImplB2DMultiRange() :
--            maBounds(),
--            maRanges()
--        {
--        }
--
--        explicit ImplB2DMultiRange( const B2DRange& rRange ) :
--            maBounds(),
--            maRanges( 1, rRange )
--        {
--        }
--
--        bool isEmpty() const
--        {
--            // no ranges at all, or all ranges empty
--            return maRanges.empty() || 
--                ::std::count_if( maRanges.begin(), 
--                                 maRanges.end(), 
--                                 ::boost::mem_fn( &B2DRange::isEmpty ) )
--                == static_cast<VectorOfRanges::difference_type>(maRanges.size());
--        }
--
--        void reset()
--        {
--            // swap in empty vector
--            VectorOfRanges aTmp;
--            maRanges.swap( aTmp );
--
--            maBounds.reset();
--        }
--
--        template< typename ValueType > bool isInside( const ValueType& rValue ) const
--        {
--            if( !maBounds.isInside( rValue ) )
--                return false;
--
--            // cannot use ::boost::bind here, since isInside is overloaded.
--            // It is currently not possible to resolve the overload
--            // by considering one of the other template arguments.
--            VectorOfRanges::const_iterator 		 aCurr( maRanges.begin() );
--            const VectorOfRanges::const_iterator aEnd ( maRanges.end() );
--            while( aCurr != aEnd )
--                if( aCurr->isInside( rValue ) )
--                    return true;
--
--            return false;
--        }
--
--        bool overlaps( const B2DRange& rRange ) const
--        {
--            if( !maBounds.overlaps( rRange ) )
--                return false;
--
--            const VectorOfRanges::const_iterator aEnd( maRanges.end() );
--            return ::std::find_if( maRanges.begin(), 
--                                   aEnd,
--                                   ::boost::bind<bool>( ::boost::mem_fn( &B2DRange::overlaps ),
--                                                        _1,
--                                                        rRange ) ) != aEnd;
--        }
--
--        void addRange( const B2DRange& rRange )
--        {
--            maRanges.push_back( rRange );
--            maBounds.expand( rRange );
--        }
--
--        B2DRange getBounds() const
--        {
--            return maBounds;
--        }
--
--        B2DPolyPolygon getPolyPolygon() const
--        {
--            B2DPolyPolygon aRes;
--
--            // Make range vector unique ( have to avoid duplicate
--            // rectangles. The polygon clipper will return an empty
--            // result in this case).
--            VectorOfRanges	aUniqueRanges;
--            aUniqueRanges.reserve( maRanges.size() );
--
--            VectorOfRanges::const_iterator 		 aCurr( maRanges.begin() );
--            const VectorOfRanges::const_iterator aEnd ( maRanges.end() );
--            while( aCurr != aEnd )
--            {
--                // TODO(F3): It's plain wasted resources to apply a
--                // general clipping algorithm to the problem at
--                // hand. Go for a dedicated, scan-line-based approach.
--                VectorOfRanges::const_iterator aCurrScan( aCurr+1 );
--                VectorOfRanges::const_iterator aFound( aEnd );
--                while( aCurrScan != aEnd )
--                {
--                    if( aCurrScan->equal( *aCurr ) ||
--                        aCurrScan->isInside( *aCurr ) )
--                    {
--                        // current probe is equal to aCurr, or
--                        // completely contains aCurr. Thus, stop
--                        // searching, because aCurr is definitely not
--                        // a member of the unique rect list
--                        aFound = aCurrScan;
--                        break;
--                    }
--
--                    ++aCurrScan;
--                }
--
--                if( aFound == aEnd )
--                {
--                    // check whether aCurr is fully contained in one
--                    // of the already added rects. If yes, we can skip
--                    // it.
--                    bool bUnique( true );
--                    VectorOfRanges::const_iterator aCurrUnique( aUniqueRanges.begin() );
--                    VectorOfRanges::const_iterator aEndUnique ( aUniqueRanges.end() );                    
--                    while( aCurrUnique != aEndUnique )
--                    {
--                        if( aCurrUnique->isInside( *aCurr ) )
--                        {
--                            // fully contained, no need to add
--                            bUnique = false;
--                            break; 
--                        }
--
--                        ++aCurrUnique;
--                    }
--
--                    if( bUnique )
--                        aUniqueRanges.push_back( *aCurr );
--                }
--
--                ++aCurr;
--            }            
--
--            VectorOfRanges::const_iterator 		 aCurrUnique( aUniqueRanges.begin() );
--            const VectorOfRanges::const_iterator aEndUnique ( aUniqueRanges.end() );
--            while( aCurrUnique != aEndUnique )
--            {
--                // simply merge all unique parts (OR)
--                aRes.append( tools::createPolygonFromRect( *aCurrUnique++ ) );
--            }            
--
--            // remove redundant intersections. Note: since all added
--            // rectangles are positively oriented, this method cannot
--            // generate any holes.
--            aRes = basegfx::tools::solveCrossovers(aRes);
--            aRes = basegfx::tools::stripNeutralPolygons(aRes);
--            aRes = basegfx::tools::stripDispensablePolygons(aRes, false);
--
--            return aRes;
--        }
--
--    private:
--        typedef ::std::vector< B2DRange > 	VectorOfRanges;
--
--        B2DRange		maBounds;
--        VectorOfRanges	maRanges;
--    };
--
--
--    // ====================================================================
--
--
--    B2DMultiRange::B2DMultiRange() :
--        mpImpl()
--    {
--    }
--
--    B2DMultiRange::B2DMultiRange( const B2DRange& rRange ) :
--        mpImpl( ImplB2DMultiRange( rRange ) )
--    {
--    }
--
--    B2DMultiRange::~B2DMultiRange()
--    {
--        // otherwise, ImplB2DMultiRange would be an incomplete type
--    }
--
--    B2DMultiRange::B2DMultiRange( const B2DMultiRange& rSrc ) : 
--        mpImpl( rSrc.mpImpl )
--    {
--    }
--
--    B2DMultiRange& B2DMultiRange::operator=( const B2DMultiRange& rSrc )
--    {
--        mpImpl = rSrc.mpImpl;
--        return *this;
--    }
--
--    bool B2DMultiRange::isEmpty() const
--    {
--        return mpImpl->isEmpty();
--    }
--
--    void B2DMultiRange::reset()
--    {
--        mpImpl->reset();
--    }
--
--    bool B2DMultiRange::isInside( const B2DTuple& rTuple ) const
--    {
--        return mpImpl->isInside( rTuple );
--    }
--
--    bool B2DMultiRange::isInside( const B2DRange& rRange ) const
--    {
--        return mpImpl->isInside( rRange );
--    }
--
--    bool B2DMultiRange::overlaps( const B2DRange& rRange ) const
--    {
--        return mpImpl->overlaps( rRange );
--    }
--
--    void B2DMultiRange::addRange( const B2DRange& rRange )
--    {
--        mpImpl->addRange( rRange );
--    }
--
--    B2DRange B2DMultiRange::getBounds() const
--    {
--        return mpImpl->getBounds();
--    }
--
--    B2DPolyPolygon B2DMultiRange::getPolyPolygon() const
--    {
--        return mpImpl->getPolyPolygon();
--    }
--
--} // end of namespace basegfx
--
--// eof
-diff --git basegfx/source/range/b2dpolyrange.cxx basegfx/source/range/b2dpolyrange.cxx
-new file mode 100644
-index 0000000..ae94f14
---- /dev/null
-+++ basegfx/source/range/b2dpolyrange.cxx
-@@ -0,0 +1,371 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: b2dmultirange.cxx,v $
-+ * $Revision: 1.8 $
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * version 3 along with OpenOffice.org.  If not, see
-+ * <http://www.openoffice.org/license.html>
-+ * for a copy of the LGPLv3 License.
-+ *
-+ ************************************************************************/
-+
-+// MARKER(update_precomp.py): autogen include statement, do not remove
-+#include "precompiled_basegfx.hxx"
-+#include <basegfx/range/b2dpolyrange.hxx>
-+
-+#include <basegfx/range/b2drange.hxx>
-+#include <basegfx/range/b2drangeclipper.hxx>
-+#include <basegfx/tuple/b2dtuple.hxx>
-+#include <basegfx/polygon/b2dpolypolygon.hxx>
-+
-+#include <boost/bind.hpp>
-+#include <boost/tuple/tuple.hpp>
-+#include <algorithm>
-+#include <vector>
-+
-+static basegfx::B2VectorOrientation flipOrientation( 
-+    basegfx::B2VectorOrientation eOrient)
-+{
-+    return eOrient == basegfx::ORIENTATION_POSITIVE ? 
-+        basegfx::ORIENTATION_NEGATIVE : basegfx::ORIENTATION_POSITIVE;
-+}
-+
-+namespace basegfx
-+{
-+    class ImplB2DPolyRange
-+    {
-+        void updateBounds()
-+        {
-+            maBounds.reset();
-+            std::for_each(maRanges.begin(),
-+                          maRanges.end(),
-+                          boost::bind(
-+                              (void (B2DRange::*)(const B2DRange&))(
-+                 &B2DRange::expand),
-+                              boost::ref(maBounds),
-+                              _1));
-+        }
-+
-+    public:
-+        ImplB2DPolyRange() :
-+            maBounds(),
-+            maRanges(),
-+            maOrient()
-+        {}
-+
-+        explicit ImplB2DPolyRange( const B2DPolyRange::ElementType& rElem ) :
-+            maBounds( boost::get<0>(rElem) ),
-+            maRanges( 1, boost::get<0>(rElem) ),
-+            maOrient( 1, boost::get<1>(rElem) )
-+        {}
-+
-+        explicit ImplB2DPolyRange( const B2DRange& rRange, B2VectorOrientation eOrient ) :
-+            maBounds( rRange ),
-+            maRanges( 1, rRange ),
-+            maOrient( 1, eOrient )
-+        {}
-+
-+        bool operator==(const ImplB2DPolyRange& rRHS) const
-+        {
-+            return maRanges == rRHS.maRanges && maOrient == rRHS.maOrient;
-+        }
-+
-+        sal_uInt32 count() const
-+        {
-+            return maRanges.size();
-+        }
-+
-+        B2DPolyRange::ElementType getElement(sal_uInt32 nIndex) const
-+        {
-+            return boost::make_tuple(maRanges[nIndex],
-+                                     maOrient[nIndex]);
-+        }
-+
-+        void setElement(sal_uInt32 nIndex, const B2DPolyRange::ElementType& rElement )
-+        {
-+            maRanges[nIndex] = boost::get<0>(rElement);
-+            maOrient[nIndex] = boost::get<1>(rElement);
-+            updateBounds();
-+        }
-+
-+        void setElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient )
-+        {
-+            maRanges[nIndex] = rRange;
-+            maOrient[nIndex] = eOrient;
-+            updateBounds();
-+        }
-+
-+        void insertElement(sal_uInt32 nIndex, const B2DPolyRange::ElementType& rElement, sal_uInt32 nCount)
-+        {
-+            maRanges.insert(maRanges.begin()+nIndex, nCount, boost::get<0>(rElement));
-+            maOrient.insert(maOrient.begin()+nIndex, nCount, boost::get<1>(rElement));
-+            maBounds.expand(boost::get<0>(rElement));
-+        }
-+
-+        void insertElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount)
-+        {
-+            maRanges.insert(maRanges.begin()+nIndex, nCount, rRange);
-+            maOrient.insert(maOrient.begin()+nIndex, nCount, eOrient);
-+            maBounds.expand(rRange);
-+        }
-+
-+        void appendElement(const B2DPolyRange::ElementType& rElement, sal_uInt32 nCount)
-+        {
-+            maRanges.insert(maRanges.end(), nCount, boost::get<0>(rElement));
-+            maOrient.insert(maOrient.end(), nCount, boost::get<1>(rElement));
-+            maBounds.expand(boost::get<0>(rElement));
-+        }
-+
-+        void appendElement(const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount)
-+        {
-+            maRanges.insert(maRanges.end(), nCount, rRange);
-+            maOrient.insert(maOrient.end(), nCount, eOrient);
-+            maBounds.expand(rRange);
-+        }
-+
-+        void insertPolyRange(sal_uInt32 nIndex, const ImplB2DPolyRange& rPolyRange)
-+        {
-+            maRanges.insert(maRanges.begin()+nIndex, rPolyRange.maRanges.begin(), rPolyRange.maRanges.end());
-+            maOrient.insert(maOrient.begin()+nIndex, rPolyRange.maOrient.begin(), rPolyRange.maOrient.end());
-+            updateBounds();
-+        }
-+
-+        void appendPolyRange(const ImplB2DPolyRange& rPolyRange)
-+        {
-+            maRanges.insert(maRanges.end(), 
-+                            rPolyRange.maRanges.begin(), 
-+                            rPolyRange.maRanges.end());
-+            maOrient.insert(maOrient.end(), 
-+                            rPolyRange.maOrient.begin(), 
-+                            rPolyRange.maOrient.end());
-+            updateBounds();
-+        }
-+
-+        void remove(sal_uInt32 nIndex, sal_uInt32 nCount)
-+        {
-+            maRanges.erase(maRanges.begin()+nIndex,maRanges.begin()+nIndex+nCount);
-+            maOrient.erase(maOrient.begin()+nIndex,maOrient.begin()+nIndex+nCount);
-+            updateBounds();
-+        }
-+
-+        void clear()
-+        {
-+            std::vector<B2DRange> aTmpRanges;
-+            std::vector<B2VectorOrientation> aTmpOrient;
-+
-+            maRanges.swap(aTmpRanges);
-+            maOrient.swap(aTmpOrient);
-+
-+            maBounds.reset();
-+        }
-+
-+        void flip()
-+        {
-+            std::for_each(maOrient.begin(),
-+                          maOrient.end(),
-+                          boost::bind(
-+                              &flipOrientation,
-+                              _1));
-+        }
-+
-+        B2DRange getBounds() const
-+        {
-+            return maBounds;
-+        }
-+
-+		template< typename ValueType > bool isInside( const ValueType& rValue ) const
-+        {
-+            if( !maBounds.isInside( rValue ) )
-+                return false;
-+
-+            // cannot use boost::bind here, since isInside is overloaded.
-+            // It is currently not possible to resolve the overload
-+            // by considering one of the other template arguments.
-+            std::vector<B2DRange>::const_iterator 		aCurr( maRanges.begin() );
-+            const std::vector<B2DRange>::const_iterator aEnd ( maRanges.end() );
-+            while( aCurr != aEnd )
-+                if( aCurr->isInside( rValue ) )
-+                    return true;
-+
-+            return false;
-+        }
-+
-+		bool overlaps( const B2DRange& rRange ) const
-+        {
-+            if( !maBounds.overlaps( rRange ) )
-+                return false;
-+
-+            const std::vector<B2DRange>::const_iterator aEnd( maRanges.end() );
-+            return std::find_if( maRanges.begin(), 
-+                                 aEnd,
-+                                 boost::bind<bool>( boost::mem_fn( &B2DRange::overlaps ),
-+                                                    _1,
-+                                                    boost::cref(rRange) ) ) != aEnd;
-+        }
-+
-+        B2DPolyPolygon solveCrossovers() const
-+        {
-+            return tools::solveCrossovers(maRanges,maOrient);
-+        }
-+
-+    private:
-+        B2DRange						 maBounds;
-+        std::vector<B2DRange>			 maRanges;
-+        std::vector<B2VectorOrientation> maOrient;
-+    };
-+
-+    B2DPolyRange::B2DPolyRange() :
-+        mpImpl()
-+    {}
-+
-+    B2DPolyRange::~B2DPolyRange()
-+    {}
-+
-+    B2DPolyRange::B2DPolyRange( const ElementType& rElem ) :
-+        mpImpl( ImplB2DPolyRange( rElem ) )
-+    {}
-+    
-+    B2DPolyRange::B2DPolyRange( const B2DRange& rRange, B2VectorOrientation eOrient ) :
-+        mpImpl( ImplB2DPolyRange( rRange, eOrient ) )
-+    {}
-+
-+    B2DPolyRange::B2DPolyRange( const B2DPolyRange& rRange ) :
-+        mpImpl( rRange.mpImpl )
-+    {}
-+
-+    B2DPolyRange& B2DPolyRange::operator=( const B2DPolyRange& rRange )
-+    {
-+        mpImpl = rRange.mpImpl;
-+        return *this;
-+    }
-+
-+    void B2DPolyRange::makeUnique()
-+    {
-+        mpImpl.make_unique();
-+    }
-+
-+    bool B2DPolyRange::operator==(const B2DPolyRange& rRange) const
-+    {
-+        if(mpImpl.same_object(rRange.mpImpl))
-+            return true;
-+
-+        return ((*mpImpl) == (*rRange.mpImpl));
-+    }
-+
-+    bool B2DPolyRange::operator!=(const B2DPolyRange& rRange) const
-+    {
-+        return !(*this == rRange);
-+    }
-+
-+    sal_uInt32 B2DPolyRange::count() const
-+    {
-+        return mpImpl->count();
-+    }
-+
-+    B2DPolyRange::ElementType B2DPolyRange::getElement(sal_uInt32 nIndex) const
-+    {
-+        return mpImpl->getElement(nIndex);
-+    }
-+
-+    void B2DPolyRange::setElement(sal_uInt32 nIndex, const ElementType& rElement )
-+    {
-+        mpImpl->setElement(nIndex, rElement);
-+    }
-+
-+    void B2DPolyRange::setElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient )
-+    {
-+        mpImpl->setElement(nIndex, rRange, eOrient );
-+    }
-+
-+    void B2DPolyRange::insertElement(sal_uInt32 nIndex, const ElementType& rElement, sal_uInt32 nCount)
-+    {
-+        mpImpl->insertElement(nIndex, rElement, nCount );
-+    }
-+
-+    void B2DPolyRange::insertElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount)
-+    {
-+        mpImpl->insertElement(nIndex, rRange, eOrient, nCount );
-+    }
-+
-+    void B2DPolyRange::appendElement(const ElementType& rElement, sal_uInt32 nCount)
-+    {
-+        mpImpl->appendElement(rElement, nCount);
-+    }
-+
-+    void B2DPolyRange::appendElement(const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount)
-+    {
-+        mpImpl->appendElement(rRange, eOrient, nCount );
-+    }
-+
-+    void B2DPolyRange::insertPolyRange(sal_uInt32 nIndex, const B2DPolyRange& rRange)
-+    {
-+        mpImpl->insertPolyRange(nIndex, *rRange.mpImpl);
-+    }
-+
-+    void B2DPolyRange::appendPolyRange(const B2DPolyRange& rRange)
-+    {
-+        mpImpl->appendPolyRange(*rRange.mpImpl);
-+    }
-+
-+    void B2DPolyRange::remove(sal_uInt32 nIndex, sal_uInt32 nCount)
-+    {
-+        mpImpl->remove(nIndex, nCount);
-+    }
-+
-+    void B2DPolyRange::clear()
-+    {
-+        mpImpl->clear();
-+    }
-+
-+    void B2DPolyRange::flip()
-+    {
-+        mpImpl->flip();
-+    }
-+
-+    B2DRange B2DPolyRange::getBounds() const
-+    {
-+        return mpImpl->getBounds();
-+    }
-+
-+    bool B2DPolyRange::isInside( const B2DTuple& rTuple ) const
-+    {
-+        return mpImpl->isInside(rTuple);
-+    }
-+    
-+    bool B2DPolyRange::isInside( const B2DRange& rRange ) const
-+    {
-+        return mpImpl->isInside(rRange);
-+    }
-+
-+    bool B2DPolyRange::overlaps( const B2DRange& rRange ) const
-+    {
-+        return mpImpl->overlaps(rRange);
-+    }
-+
-+    B2DPolyPolygon B2DPolyRange::solveCrossovers() const
-+    {
-+        return mpImpl->solveCrossovers();
-+    }
-+
-+} // end of namespace basegfx
-+
-+// eof
-diff --git basegfx/source/range/b2drangeclipper.cxx basegfx/source/range/b2drangeclipper.cxx
-new file mode 100644
-index 0000000..de5c040
---- /dev/null
-+++ basegfx/source/range/b2drangeclipper.cxx
-@@ -0,0 +1,950 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: b2dmultirange.cxx,v $
-+ * $Revision: 1.8 $
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * version 3 along with OpenOffice.org.  If not, see
-+ * <http://www.openoffice.org/license.html>
-+ * for a copy of the LGPLv3 License.
-+ *
-+ ************************************************************************/
-+
-+// MARKER(update_precomp.py): autogen include statement, do not remove
-+#include "precompiled_basegfx.hxx"
-+
-+#include <rtl/math.hxx>
-+
-+#include <basegfx/tuple/b2dtuple.hxx>
-+#include <basegfx/range/b2drange.hxx>
-+#include <basegfx/range/b2dpolyrange.hxx>
-+#include <basegfx/polygon/b2dpolypolygon.hxx>
-+#include <basegfx/polygon/b2dpolygontools.hxx>
-+#include <basegfx/polygon/b2dpolypolygontools.hxx>
-+
-+#include <o3tl/vector_pool.hxx>
-+#include <boost/bind.hpp>
-+#include <boost/utility.hpp>
-+
-+#include <algorithm>
-+#include <deque>
-+#include <list>
-+
-+
-+namespace basegfx
-+{
-+    namespace
-+    {
-+        // Generating a poly-polygon from a bunch of rectangles 
-+        // 
-+        // Helper functionality for sweep-line algorithm
-+        // ====================================================
-+
-+        typedef std::vector<B2DRange> VectorOfRanges;
-+
-+        class ImplPolygon;
-+        typedef o3tl::vector_pool<ImplPolygon> VectorOfPolygons;
-+
-+
-+        /** This class represents an active edge
-+
-+        	As the sweep line traverses across the overall area,
-+        	rectangle edges parallel to it generate events, and
-+        	rectangle edges orthogonal to it generate active
-+        	edges. This class represents the latter.
-+         */
-+        class ActiveEdge
-+        {
-+        public:
-+            /** The two possible active rectangle edges differ by one
-+                coordinate value - the upper edge has the lower, the
-+                lower edge the higher value.
-+             */
-+            enum EdgeType {
-+                /// edge with lower coordinate value
-+                UPPER=0,
-+                /// edge with higher coordinate value
-+                LOWER=1
-+            };
-+
-+            enum EdgeDirection {
-+                /// edge proceeds to the left
-+                PROCEED_LEFT=0,
-+                /// edge proceeds to the right
-+                PROCEED_RIGHT=1
-+            };
-+
-+            /** Create active edge 
-+
-+            	@param rRect
-+                Rectangle this edge is part of
-+
-+                @param fInvariantCoord
-+                The invariant ccordinate value of this edge 
-+
-+                @param eEdgeType
-+                Is fInvariantCoord the lower or the higher value, for
-+                this rect?
-+             */

... etc. - the rest is truncated


More information about the ooo-build-commit mailing list